在 Windows 个应用程序中捕获启动其他应用程序的用户事件

Catching user event of launching other app in Windows app

有没有办法捕捉用户在 Windows 中打开某个应用程序之类的事件?

我有一个要求,如果用户专门打开任何应用程序 windows 商店应用程序,那么我的应用程序应该能够捕获该事件。

我还没有开始使用它。我只想知道有没有可能?

C# 开发或 JavaScript 开发是否可行?

我更喜欢JavaScript。

最可靠的解决方案是编写一个 Windows 服务。您可以在 C# 中编写 Windows 服务,但我怀疑您是否可以使用 JavaScript 来完成它。 Windows 服务(也称为驱动程序)的优点是它作为应用程序不可见,因此不太可能妨碍或停止。 Hooking the native API and controlling process creation on a system-wide basis - CodeProject is an example in C++. Also see Detecting Windows NT/2K process execution - CodeProject 也使用 C++;显然它使用现有的服务(驱动程序)所以你不需要编写驱动程序部分。

如果不使用 Windows 服务,那么 C# 仍然是比 JavaScript 更好的解决方案。最简单的方法是使用 Windows Management Instrumentation (WMI). See Wes' Puzzling Blog - Using WMI to monitor process creation, deletion and modification in .NET for an example using C# outside of a Windows Service. Also see Constantly monitor processes. For JavaScript you will need to use a Permanent Event Consumer as described in Monitoring Events (Windows). For an example of that see Creating WMI Permanent Event Subscriptions Using MOF - CodeProject.