• ベストアンサー

WINDOWS XPのシャットダウンを”U”で

WINDOWS XPのシャットダウンを”WINDOWS”+”U”+”U”でシャットダウンするプログラムを作ったのですが、スタート画面までしかいかず、うまく動きません。自動シャットダウンのプログラムのURLもご紹介受けたのですが、上記の方法でなぜできないのか知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • kouji_124
  • ベストアンサー率46% (283/605)
回答No.1

「”WINDOWS”+”U”+”U”」これはキーコードを送信して行っているのでしょうか? キーコードを送信している場合、その間隔は? 質問の内容からして、間隔を空けずに連続で送信していませんか? 「Winキー」送信後スタートメニューがアクティブにならないと次の「Uキー」を受け取らない為と思われます。 試しに、各キーの送信の間に「Sleep()」を入れてみてはいかがでしょうか? とりあえず時間は長めに、確実に実行させるために10秒以上入れてみてはいかがでしょう。 ただし、この方法だとPCが変わるとうまくいかない可能性があります。 理由は、スタートメニューや終了のダイアログの表示のタイミングが一定とは限らないからです。 スタートメニューがアクティブになった事を検知できればいいのですがそう簡単には行かなかった記憶があります。 それよりは、素直に「ExitWindowsEx()」関数を使った方がよほど簡単だと思いますが。。。。。

rairarai
質問者

補足

ありがとうございます。 間隔を大きくあけてもできませんでした。 とりあえずExitWindowsEx関数使わせてもらいます。

関連するQ&A