【发布时间】:2013-03-18 13:21:20
【问题描述】:
最近有人问我如何/如果可能的话,可以做到这一点。我不确定它是否可能,我已经搜索了一段时间了。
基本上让我们以Windows 为例,有一个系统命令可以关闭计算机。假设shutdown -s -t 30 -c "Shutdown"
有没有办法编写一个程序来侦听shutdown 命令,然后运行shutdown -a 以响应中止该命令?
简而言之,你能让它监听计算机上的某些系统命令并执行系统命令作为响应吗?
【问题讨论】:
-
Windows 有它传递的各种消息。一个是
WM_QUERYENDSESSION。当你得到它时,你可以主动打电话给shutdown -a。查看此页面以获取有关 API 挂钩的更多详细信息 codeproject.com/Articles/2082/API-hooking-revealed -
请注意,Windows 级别没有
shutdowncommand。有一个 Windows 程序Shutdown.EXE,它知道要调用哪个基本的 Windows API。但它不是唯一知道这一点的程序。例如。 Explorer.EXE(负责开始菜单)也知道这一点。所以检测shutdown.EXE不会影响Explorer.EXE的关闭。