【发布时间】:2014-11-02 20:03:10
【问题描述】:
我想知道使用 .net 语言(C# 或 VB)是否可以检测到新应用程序何时启动。 例如:用户从桌面打开 Firefox.exe(不是从我的应用程序!),是否可以从我的应用程序检测到此事件?也可以在运行之前“暂停”它吗? 因此,例如,当用户双击应用程序时,我的应用程序首先出现,然后如果他确定使用“是”和“否”按钮打开该文件,它会显示一条消息。 我不需要所有的代码,我只需要知道如何捕捉系统中任何地方都可能发生的事件。
【问题讨论】:
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
-
你可以尝试用系统级别的钩子来捕捉一些系统库,所以当一个新的应用程序启动时,它会加载钩子库,你可以通知你的应用程序。但这可能并不容易。
-
您可以尝试启动一个定期调用“Process.GetProcesses()”的低优先级后台线程,并将列表与之前的调用进行比较。但是要暂停执行,我认为这是不可能的。