2009-02-28 72 views
2

發送郵件按Ctrl + Alt + Del組合我想要寫在MFC一個小工具,它發送的按Ctrl + Alt鍵+德爾消息到OS。任何人都可以幫我實現這個目標嗎?我試過了:從我的應用程序

::PostMessage(HWND_BROADCAST, WM_HOTKEY, 0, MAKELONG(MOD_CONTROL | MOD_ALT, VK_DELETE)); 

但是這不起作用。

我想送按Ctrl + Alt鍵+德爾調用TaskMgr.exe。另外,它適用於我的本地操作系統(Windows XP Service Pack 2)。基本上我想使用這個應用程序來鎖定我的機器並安排一些動作和鎖定。

+0

我聽說ctrl alt del組合不能從代碼中調用。微軟實施了這個計劃來對抗機器人。 幾年前聽說過。 (順便說一句,如果你想獲得任務控制窗口,請嘗試按Ctrl shift esc) – RvdK 2009-02-28 12:35:12

+0

我同意。當我們瞭解'鉤子'時聽到朋友的同樣的話。 – batbrat 2009-02-28 12:42:02

回答

5

這不是你可以模擬一個按鍵。它被稱爲「安全注意序列」。 下面是如何調用它從遠程桌面(XP +解決方案):

include <shldisp.h> 

IShellDispatch4 *pShell; 

CoInitialize(NULL); 

HRESULT hr = CoCreateInstance(CLSID_Shell, NULL, CLSCTX_INPROC_SERVER, 
IID_IShellDispatch, (void**)&pShell); 

if(SUCCEEDED(hr)) 
pShell->WindowsSecurity(); 

CoUninitialize(); 

唯一的解決辦法從本地桌面調用它是使用SASLib。這不是公開的。向[email protected]發送一條消息來請求它。

編輯:等等!你想鎖定機器?只需撥打LockWorkStation()!點擊鏈接瞭解更多關於頭文件,lib文件等等的信息。

+0

謝謝,LockWorkStation()是windows.h的一部分吧?我無法編譯。我需要別的東西嗎? – 2009-03-01 15:59:35

2

由於VNC可以讓您對遠程系統執行此操作,因此它必須是可能的。如果我是你,我會瀏覽source to UltraVNC。然後我會在這裏發佈答案:)

0

只要求機器關閉或註銷不是更容易嗎?這個關鍵組合不是一個好主意嗎?您可以發送這些消息。

2

你需要發送control + alt + delete還是隻是想調出任務管理器?

如果你只需要打開你可以簡單地運行\ Windows \ System32下\任務管理器的TaskMgr.exe

0

難道你不能啓動一個屏幕保護程序,它會照顧你的鎖?我現在沒有可用的Windows機器,但我記得可以像這樣鎖定工作站。

0

調用SendSAS功能來實現這一目標。