WM_QUERYENDSESSION時にShellExecute()でDOSコマンド(net.exe)実行をすると、
「アプリケーションを正しく初期化できませんでした 0xc0000142」というエラーが
表示されてしまいます。
WM_COMMAND時に同様の処理を行なった場合(メニューから等)はエラーが出ません。
DOSコマンドではなく、メモ帳(notepad.exe)ではいずれのケースもエラーが出ませ
ん。
これは何が原因なのでしょうか?
この問題を解決する方法があればご教授下さい。
よろしくお願いします。
WindowsXP VC6
タイトルの日本語が変ですが、よろしくお願いします。orz
理由はわかりませんので、推測です。
WM_QUERYENDSESSIONのメッセージが受け取った時は、Windowsはログオフする為、
各APPから終了していいかの応答を待っている状態だと思います。
それなのに、プログラム起動しますって言われても
ログオフする処理中ですので、許可できません!と言われているのでは?
「アプリケーションを正しく初期化できませんでした」とはそういうことだと思います。。。
Windowsがログオフしようとしている状態なのが原因かなぁ。。。
返事が遅くなりましてすみません。
>それなのに、プログラム起動しますって言われても
>ログオフする処理中ですので、許可できません!と言われているのでは?
そういう気はするのですが、メモ帳などは起動出来てしまうので判断に迷っています。
メモ帳はたまたま起動したとも判断出来ますが。
ログオフスクリプトのようなものを作りたいのですが、実行タイミングが間違っていま
すでしょうか?
うまくいくかどうかわかりませんが、Winlogon Notification Packages とかどうです
か?
http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/secauthn/security/winlogon_notification_packages.asp
>Winlogon Notification Packages とかどうですか?
出来るかどうか試してみます。
なんだか面白そうな機能ですね。
ありがとうございました。