我想在运行后关闭标题、名称或文本框中包含一些目标词的应用程序。
例如,如果应用程序的标题包含“keylog”,则运行第三方应用程序后会检测到它并将其关闭。其文件名也是如此。
是否有第三方应用程序可以执行此操作?
答案1
自动识别是我最好的推荐。它能够轮询窗口标题或文本(隐藏和可见窗口)和进程名称(WinExists()、ProcessExists()),并且具有按进程或按窗口关闭应用程序的选项(WinKill()、WinClose()、ProcessClose())。因为它是一种脚本语言,所以它非常易于配置,可以过滤出您想要的内容,但学习难度可能比其他应用程序更高。
注意:它不会阻止它们奔跑,但一旦它们试图奔跑,它会立即杀死它们。
以下是一些示例代码:
Opt("WinTitleMatchMode", 2)
While 1
If ProcessExists("notepad.exe") Then
ProcessClose("notepad.exe")
EndIf
If WinExists("Paint","") = 1 Then
WinClose("Paint","")
EndIf
Sleep(100)
WEnd
这将关闭标题中带有“Paint”的所有窗口以及 notepad.exe 进程。
答案2
如果没有第三方软件(我真的不推荐任何第三方软件),使用 Windows 的内置功能很难实现这一点。最接近的方法是使用 Windows 的商业版本(专业版及更高版本),并使用组策略来限制可以运行的应用程序列表。
话虽如此,这是一个包含列表,而不是排除列表。
然而,这些应用程序很有可能通过重命名自身或类似操作来绕过您的安全措施。
通过应用程序的标题进行保护是不可能的,因为应用程序此时已经运行了 - 除非您事先进行某种反编译/资源查找 - 但是,这很可能是低效的,非常慢并且并不总是有效(在混淆的情况下)。
如果你想继续使用允许列表,这是 XP 指南,Windows Vista/7 非常相似,但是,如果您需要帮助,请告诉我,我会为您编写指南。