none
デスクトップの表示完了を検知する方法 RRS feed

  • 質問

  • お世話になります。

    サービスプログラム ( c言語、 visual studio 2013 で開発 )でユーザーのログインを検知し、ユーザーセッションでプログラムを起動させています。
    ログインの検知には、

    SERVICE_CONTROL_SESSIONCHANGE メッセージを受信
          → dwEventType == WTS_SESSION_LOGON だった場合にプログラムをユーザーセッションの中で起動する

    という処理を行っています。
    1つ問題がありまして、ユーザーログインを SERVICE_CONTROL_SESSIONCHANGE によって検出した場合、
    タイミングによってはデスクトップがまだ表示されていない状態がありまして ( デスクトップの準備中などの状態 )
    作成しているプログラムの都合上、デスクトップが表示された後にプログラムを起動したく考えております。

    そこで質問なのですが、ユーザーのログイン後に、デスクトップが表示されたことを何らかの方法で
    検知することは可能でしょうか?

    宜しくお願い致します。

    2017年2月28日 12:31

回答

すべての返信

  • すみません、質問する際のカテゴリを誤ってしまいました。

    windows server -> windows server 2012 のカテゴリへ移動をお願いできますでしょうか。

    宜しくお願い致します。

    2017年2月28日 12:35
  • 純粋にデスクトップの表示という意味では explorer.exe がシェルとして担っているので、explorer.exe の起動を確認するというのはどうでしょうか。

    2017年3月1日 1:11
  • フォーラム オペレーターの栗下 望です。
    supao さん、こんにちは。
     
    投稿いただいたスレッドにつきましては"Windows Server 2012"カテゴリに後ほど移動させていただきます。
     
    windows server -> windows server 2012
     
    ただ、今回いただいた内容ですと、サーバー OS に依存した内容ではないように見受けられますので
    "Windows クライアント開発"フォーラムのほうが情報が集まりやすいかもしれません。
    移動先の変更やリクエストがあれば、再度お知らせください。
     
    ご自身のスレッドは画面左上の[クイック アクセス]の[マイ スレッド]から確認いただけます。
    どうぞよろしくお願いいたします。

    MSDN/TechNet Community Support 栗下 望

    2017年3月1日 2:42
    モデレータ
  • LazyDogg さま

    返信ありがとうございます。
    たしかに Explorer.exe の起動を確認すればデスクトップの表示が検出できそうな気がします。

    やってみます。

    2017年3月1日 8:05
  • 栗下 望さま

    カテゴリ移動ありがとうございます。
    ご指摘頂いた通り、 windows クライアント開発フォーラムの方が良いかと思いますので、
    大変お手数ですが移動をお願いできますでしょうか。

    どうぞよろしくお願い致します。

    2017年3月1日 8:06
  • フォーラム オペレーターの栗下 望です。
    supao さん、ご返信いただきありがとうございます。

    投稿いただいたスレッドについてはMSDN フォーラムの
    "Windows クライアント開発"フォーラムに移動させていただきました。

    フォーラム ユーザーから参考になる情報がございましたら、
    投稿者からの[回答としてマーク]をお願いいたします。

    本件について情報をお持ちの方がいらっしゃいましたら、
    お寄せいただければ幸いです。

    どうぞよろしくお願いいたします。


    MSDN/TechNet Community Support 栗下 望


    2017年3月1日 8:55
    モデレータ
  • LazyDogg さま

    お世話になります。
    Explorer.exeの確認で何とかなりそうです。

    ありがとうございました。

    2017年3月2日 9:28