2016-12-02 21 views
0

私は以下の問題を解決したい:ユーザーがWindowsにログインした時間を確認するにはどうすればよいですか?

私のC++プログラムはユーザーのログイン時に自動的に起動しますが、非常に遅いコンピュータで数分間起動しないサービスがあります正しく

  • それは、私は、ユーザー彼が作業を開始する前に、もう少し待たなければならない通知を表示したいのですが、数分後、
  • は、プログラムがまだ動作しない場合は正常に動作しない場合(頻繁に起こる)、警告メッセージを表示する必要があります。何かが間違っていて、ユーザーのやりとりが必要です。

私はイベントビューアでエントリ(Winlogon)を見ましたが、ユーザーはSYSTEMであり、自分のプログラムを使用する特定のユーザーについて知りたいと思っています。

私のプログラムを起動したユーザーがログインしたことを確認する簡単な方法はありますか?

答えて

2

あなたのプログラムは、ユーザログインの一部として実行され、それがそのユーザーの前にいない実行がログインしています。ここ

適切な解決策は、依存関係が開始されているかどうかを確認することです。サービスコントロールマネージャ(OpenSCManager)を使用して、各サービス状態(QueryServiceStatusEx)を照会します。状態の開始点はとなり、の開始点はです。あなたは後者が必要です。

1

NetGetUserInfo()を使用すると、ユーザーアカウントに関する情報を取得できます。最後のログオン時刻はUSER_INFO_2構造体にあります。

最初のパラメータがNULLの場合、関数はローカルコンピュータのユーザーを参照します。

+0

質問の文句が間違っていると誤解されてしまいました。これはサーバーのログインに関係します。 – MSalters

+0

おそらく、この回答は私の質問にはうまく適合しますが、私の問題の根本はMSaltersの答えによってうまく解決されます。とにかく、私はNetGetUserInfo()の "2221"エラーを返す上で問題があったと私はhttp://stackoverflow.com/questions/3371807/get-current-users-last-logon/で似たような質問が見つかりましたが、答えは私のために複雑だったすべての状況について完全に理解し、確実に実装する。 –

関連する問題