我将使用Python 3,主要对Windows感兴趣。
我想要发生的事例:
A)
B)
与上述相同,但适用于网站。
最后三行表示需要有一种打开和关闭方式。我的基本假设是,一旦我知道如何做第一部分,第二部分将很容易。我仍然把它放在那里澄清。
我还没有在网上找到任何关于从哪里开始的东西。我对A)的猜测是它必须做一些事情进入文件夹,其中运行文件以某种方式覆盖它。
答案 0 :(得分:1)
您正在谈论覆盖操作系统行为,因此您需要挂钩操作系统功能(Python可以,也可能已经绑定了)。对于Windows,您可以使用某些功能(如WMI)来挂钩进程启动,但最简单的方法可能是使用Image File Execution Options(IFEO)在启动时劫持相关进程。这是一个注册表项,因此您需要Python 3的winreg模块。
我从未尝试将Python脚本设置为IFEO Debugger
值的目标,但它可能会起作用。有关IFEO如何工作以及预期使用它的“调试器”的基础知识,请参阅this StackOverflow question。在您的情况下,您可能会让脚本检查用户尝试运行的进程的名称,查看它当前是否在阻止列表中,如果是,则退出;否则它会启动这个过程。如果你希望它跟随打开和关闭一个长时间运行的脚本,你可以让该脚本创建一个临时锁定文件(当它的最后一个句柄关闭时它会消失)并让你的用户启动时调用 - {{ 1}}脚本检查该文件。
如果您在让IFEO做您想做的事情时遇到问题,我建议您另外提出问题(此处或超级用户,具体取决于是编码还是操作系统管理员问题)。请注意它在HKEY_LOCAL_MACHINE中;您需要以管理员身份运行才能在那里进行更改,但只有“控制”脚本才需要(“调试器”脚本只能以正常权限运行)。