在安装任何应用程序期间.通常要求用户在开始安装之前关闭所有窗口.如果没有,安装将停在中间并要求用户关闭所有打开的窗口.我被要求在XXX应用程序中添加代码.当应用程序运行并且用户打开任何其他窗口时(例如:浏览,浏览器,单词等),应用程序应抛出一个窗口,说明您已打开窗口列表.我请你告诉我如何从C#开始.
测试一下:
var openWindowProcesses = System.Diagnostics.Process.GetProcesses()
.Where(p => p.MainWindowHandle != IntPtr.Zero && p.ProcessName != "explorer");
Run Code Online (Sandbox Code Playgroud)
在openWindowProcesses是否应包含他们有一个活跃的主窗口中所有打开的应用程序.
我放入p.ProcessName != "explorer"了where表达式,因为资源管理器是桌面的主要进程,它永远不会被关闭.
要观察进程的执行,您可以使用ManagementEventWatcher类.请看到这个.
小智 0
尝试通过 P/Invoke SetWinEventHook WinAPI 函数。你可以挂钩EVENT_OBJECT_CREATE事件,但我不是 100% 确定。我从来没有用C#做过,只用过C/C++。
| 归档时间: |
|
| 查看次数: |
11941 次 |
| 最近记录: |