Windowsが更新プログラムを自動的にインストールして自動的に再起動すると、一部のプログラム(Microsoft Wordなど)が自動的に起動して元の状態に戻ります(Wordは以前に開いていたものと同じドキュメントを開きます)。私のプログラムはどのようにこれを行うことができますか?APIはありますか?
ユーザーが定期的に再起動する場合は、プログラムが自動的に返されることを望まないので、ユーザーには奇妙に見えます。しかし、ユーザーが就寝時にプログラムを開いたままにし、深夜にWindowsが更新のために再起動した場合、ユーザーが午前中にコンピューターに戻って、プログラムが実行されていることを確認したいと思います。
私はウィンドウ7以上が気になります。これは私が使用している言語であるため、質問にC#のタグを付けましたが、C / C ++に解決策がある場合は、適切なグルーコードを記述して、他の人が使用できるようにここに投稿します。
この単一の呼び出しに使用できるビスタから開始します
RegisterApplicationRestart
(L"some cmd line", RESTART_NO_CRASH|RESTART_NO_HANG);
XPで実行する場合、(@ GSergが提案するように)次のWM_ENDSESSION
メッセージをリッスンできます。
wParam != 0 && (lParam & ENDSESSION_CLOSEAPP) != 0
セルフリスタートを下に登録しますHKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
(ただし、下ではありませんRun
!)
explorer.exe
次回の開始時に、値キーとexecアプリケーションを削除してこれを処理します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加