Python ctypes 模拟 ctrl+alt+delete 事件

3 投票
2 回答
2836 浏览
提问于 2025-04-18 08:31

我正在尝试用keybd_event来模拟按下ctrl+alt+del这个组合键,但它没有任何反应。像ctrl+esc或者alt+tab这些组合键都能正常工作,但ctrl+alt+del就是不行。

import ctypes
ctypes.windll.user32.keybd_event(0x11, 0, 0, 0) #CTRL is down
ctypes.windll.user32.keybd_event(0x12, 0, 0, 0) #ALT is down
ctypes.windll.user32.keybd_event(0x2E, 0, 0, 0) #DEL is down
ctypes.windll.user32.keybd_event(0x2E, 0, 0x0002, 0) #DEL is up
ctypes.windll.user32.keybd_event(0x12, 0, 0x0002, 0) #ALT is up
ctypes.windll.user32.keybd_event(0x11, 0, 0x0002, 0) #CTRL is up

2 个回答

1

这是Windows的一种安全机制。CTRL + ALT + DEL这个组合键是特别的。这样做的一个原因是“按下CTRL + ALT + DEL可以显示登录提示”,通过按这个组合键,你可以确保Windows确实在询问你的密码,而不是某个程序假装成Windows的提示。

5

CTRL + ALT + DEL 是一个特殊的按键组合,叫做安全注意序列。出于安全考虑,这个组合不能通过 keybd_inputSendInput 这样的方式伪造。

如果你想模拟这个组合,就需要使用SendSAS 这个API调用。记得仔细阅读相关文档,确保你遵循这个功能的严格要求。

撰写回答