2009-02-28 78 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功能来实现这一目标。