我想在给定程序运行之前进行拦截,并先运行我自己的程序

我想在给定程序运行之前进行拦截,并先运行我自己的程序

我将使用 Python 3,主要对 Windows 感兴趣。如果有什么不同,那么具体来说就是 Windows 10。

我希望发生的事情的示例:

  1. 用户启动我的脚本。
  2. 用户决定将游戏 Dota 2 列入黑名单。
  3. 用户尝试打开 Dota 2。
  4. 因为Dota 2在黑名单上,所以我的脚本代替Dota 2运行。
  5. 脚本完成后,Dota 2 可以运行也可以不运行,具体取决于脚本的选择。这最终将由用户控制。
  6. 用户关闭我的脚本。
  7. 用户尝试打开 Dota 2。
  8. Dota 2 立即打开,不会中断。

最后三行表示需要有一种打开和关闭它的方法,因此不是永久的解决方案。我的基本假设是,一旦我知道如何做第一部分,第二部分就会很容易。我仍然把它放在那里以澄清。

我确实只是想知道如何获取拦截程序的权限。

答案1

  1. 用户尝试打开 Dota 2。
  2. 因为Dota 2在黑名单上,所以我的脚本代替Dota 2运行。

视窗'图像文件执行选项允许您在启动您选择的可执行文件时运行您的程序。

假设我们想C:\My Folder\new app.exe在用户尝试启动时运行C:\Windows\old app.exe。为此,请运行以下命令:

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\old app.exe" /v Debugger /d "C:\My Folder\new app.exe" /f

笔记:如果名为的键old app.exe不存在(很可能),此命令将创建它。

这将创建一个新的注册表项,其名称与要“劫持”的程序名称相同,并创建一个名为调试器其数据设置为替换可执行文件的路径。这可以是任何可执行文件,包括.CMD批处理脚本。

此更改立即生效。现在,无论何时old app.exe运行名为的可执行文件,Windows 都会启动C:\My Folder\new app.exe

要恢复正常,请删除old app.exe密钥:

reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\old app.exe" /f

只需将这些命令合并到您的脚本中即可实现您想要的结果。

相关内容