【发布时间】:2016-10-03 19:15:11
【问题描述】:
我在 QB64 中使用以下代码来捕获 Control-Break:
ON TIMER(1) GOSUB breaktrap
TIMER ON
x = _EXIT ' disable break
DO
_LIMIT 50
x$ = INKEY$
LOOP
breaktrap:
v = _EXIT
IF v THEN
PRINT "*break*"
SLEEP 5
SYSTEM
END IF
RETURN
我想知道 QB64 中是否有办法捕获 Control-Alt-Delete。
【问题讨论】:
-
AFAIK,答案是否定的,或者至少你不应该没有很好的理由。按键序列生成操作系统处理的硬件中断。例如,如果我没记错的话,Windows XP 将启动任务管理器,Windows Vista 及更高版本将带您进入允许您注销、启动任务管理器或锁定计算机的屏幕。如果另一个程序失控,我希望能够停止它,而当你的捕获 Ctrl-Alt-Del 的程序正在运行时,我不能那么容易地做到这一点。
-
这个链接描述了为什么在不编写自己的 GINA dll 的情况下无法捕获 Control-Alt-Break:msdn.microsoft.com/en-us/library/aa375457(v=vs.85).aspx