Ctrl + Alt + Del のエミュレート

[戻る]
中級者X 2002/06/06(木) 18:51:01
「Ctrl + Alt + Del」をエミュレートできないかと考えています。
要は「Ctrl + Alt + Del」を押さず、何かボタンでも押したら
「Windows のセキュリティ」ダイアログを表示させたいという
ことです。

    keybd_event(VK_CONTROL, 0, 0, 0);    // Ctrl
    keybd_event(VK_MENU,    0, 0, 0);    // Alt
    keybd_event(VK_DELETE,  0, 0, 0);    // Del
    keybd_event(VK_DELETE,  0, KEYEVENTF_KEYUP, 0);
    keybd_event(VK_MENU,    0, KEYEVENTF_KEYUP, 0);
    keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);

のようにキーイベントを発行したのですができません。

どなたかご存知の方、ご教授願います。

環境はWin2000、VC++6.0です。

けみ 2002/06/07(金) 18:00:18
LockWorkStation();
というAPIでできましたが、WIN2000以降?のようです。
winuser.hには
#if(_WIN32_WINNT >= 0x0500)
って定義されていました。


また、他の方法では
PostMessage(HWND_BROADCAST, WM_HOTKEY, 0, MAKELONG(MOD_ALT | MOD_CONTROL, 
VK_DELETE));

のように書くと良いらしいのですが、こちらは権限の設定がうまくできなくて
試せませんでした。「ファイル名を指定して実行」が出てきてしまいました。

けみ 2002/06/07(金) 18:05:02
あ、すいません。
LockWorkStation();
はちょっと画面が違いますね。コンピュータのロック画面です。

うま 2002/06/07(金) 18:10:24
ホットキーを使えばよいような気がします
キーワード「WM_HOTKEY」辺りで検索してみてください

中級者X 2002/06/08(土) 22:37:52
確かに「ファイル名を指定して実行」がでますね...。
権限を変えるのって難しいんですよね...?

けみ 2002/06/09(日) 05:14:02
WinXP のリモート アシスタンスのような機能を持っている
VNCというツールがあってクライアント側からサーバー側に
CTRL+ALTL+DELを送信するという機能があります。

http://www.uk.research.att.com/vnc/ 
http://www.sra.co.jp/people/akira/vnc/  (VNCのページ(紹介・日本語))

ソースも公開されているので、それを参照してみたんですが
これのサーバー側の処理でPostMessage〜、の前に何かやっています。



また、
http://www1.linkclub.or.jp/~y-yazaki/Know_How/Programer/N0000001.html
このページではプログラムをサービスにしデスクトップとの対話を
可能にしてデスクトップを”Winlogon”にスレッドを切りかえてから
メッセージを送信すると書いてありました。


???
私は挫折してしまいました。すいません。

中級者X 2002/06/10(月) 21:18:58
[[解決]]
いろいろとありがとうございます
解決とはいきませんでしたが、とりあえず解決済みにしたいと思います
何か分かりましたら、ご報告します

古いスレッドには追加発言できません。