如何在给定程序启动前中断它并运行我的脚本?

2024-05-16 08:52:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我将使用python3,主要对Windows感兴趣。你知道吗

我想要发生的事情的例子:

(一)

  • 用户启动我的脚本。你知道吗
  • 用户决定将游戏dota2列入黑名单。你知道吗
  • 用户试图打开Dota 2。你知道吗
  • 因为dota2在黑名单上,所以我的脚本将代替dota2运行。你知道吗
  • 脚本完成后,dota2要么运行要么不运行,这取决于脚本选择的内容。这最终将由用户控制。你知道吗
  • 用户关闭我的脚本。你知道吗
  • 用户试图打开Dota 2。你知道吗
  • Dota 2立即打开,没有中断。你知道吗

(二)

同上,但适用于网站。你知道吗


最后三行表示需要有一种方法来打开和关闭它。我的基本假设是,一旦我知道如何做第一部分,第二部分将很容易。我还是把它放进去澄清一下。你知道吗

我还没有在网上找到任何关于这个的线索。我对A)的猜测是,它必须进入运行文件所在的文件夹以某种方式覆盖它。你知道吗


Tags: 文件方法用户脚本游戏内容网站windows
1条回答
网友
1楼 · 发布于 2024-05-16 08:52:30

您讨论的是重写操作系统行为,因此您需要钩住操作系统特性(Python可以而且可能已经有了这些特性的绑定)。具体来说,对于Windows,可以使用一些特性(如WMI)来钩住进程启动,但最简单的方法可能是使用Image File Execution Options(IFEO)在启动时劫持相关进程。这是一个注册表项,因此您需要python3的winreg模块。你知道吗

我从未尝试过将Python脚本设置为IFEODebugger值的目标,但它可能可以正常工作。请参阅this StackOverflow question,了解IFEO的工作原理以及使用它的“调试器”应该做什么。在您的例子中,您可能会让脚本检查用户试图运行的进程的名称,查看它当前是否在阻止列表中,如果在阻止列表中就退出;否则它将启动进程。如果您希望它跟随打开和关闭一个长时间运行的脚本,您可以让该脚本创建一个临时锁文件(当最后一个句柄关闭时该文件将消失),并在用户调用-dota2.exe脚本检查该文件时启动。你知道吗

如果你在让IFEO做你想做的事情时遇到问题,我建议你问一个单独的问题(这里或者超级用户,这取决于它是一个编码问题还是OS管理问题)。请注意,它在HKEY\ U LOCAL\ U MACHINE中;您需要以管理员身份运行才能在那里进行更改,尽管只有“control”脚本需要这样做(“debugger”脚本只能以正常权限运行)。你知道吗

相关问题 更多 >