从我的应用程序发送消息Ctrl + Alt + Del

时间:2009-02-28 12:26:12

标签: windows winapi mfc

我想在MFC中编写一个小实用程序,它将 Ctrl + Alt + Del 消息发送给OS。任何人都可以帮助我如何实现这一目标?我试过了:

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

但这不起作用。

我想发送 Ctrl + Alt + Del 不要调用TaskMgr.exe。此外,它适用于我的本地操作系统(Windows XP Service Pack 2)。基本上我想使用这个应用程序锁定我的机器并安排一些操作以及锁定。

7 个答案:

答案 0 :(得分: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。它不公开。写一封说明给saslib@microsoft.com进行申请。

编辑:等等!你想锁定机器?只需致电LockWorkStation()!单击链接以获取有关头文件,lib文件和所有其他详细信息的更多信息。

答案 1 :(得分:2)

由于VNC可以让您对远程系统执行此操作,因此必须可以。如果我是你,我会浏览source to UltraVNC。然后我会在这里发布答案:)

答案 2 :(得分:2)

你需要发送控制+ alt +删除,还是只想启动任务管理器?

如果您只需要启动任务管理器,只需运行\ Windows \ System32 \ taskmgr.exe

答案 3 :(得分:1)

我知道这是一个古老的问题,但我在这里发布我的解决方案,以防有人寻找解决方案到达这里。第1部分和第2部分文章解释了Winlogon如何注册CAD序列并提供有关如何使用它的代码示例。

答案 4 :(得分:0)

要求机器关闭或注销会不会更容易?那个关键组合真的不是一个好主意吗?您可以发送这些消息。

答案 5 :(得分:0)

你不能启动屏幕保护程序,它会照顾你的锁定吗?我现在没有可用的Windows机器,但我记得可以像这样锁定工作站。

答案 6 :(得分:0)

调用SendSAS函数来实现此目的。