在某些应用程序中, 例如, 编写了一些屏幕截图工具, 为了从特定窗口创建屏幕截图, 需要使用该窗口的当前标题, 因为它们可能不是用C#编写的, 因此它们没有检查进程ID或可以简化过滤的内容。
如果你使用这些CLI工具之一作为C#工具的依赖项, 则可以在任务栏上列出所有具有Window的进程, 这样你就可以从所有进程中获取标题, 从而可以提取标题。创建你的屏幕截图。
通过获取Windows所有进程的列表并验证它们是否具有窗口标题, 可以轻松完成此操作:
// 1. Import System Diagnosticsusing System.Diagnostics;
// 2. Create a list of the active processes of WindowsProcess[] processlist = Process.GetProcesses();
// Iterate over themforeach (Process process in processlist){// If the process appears on the Taskbar (if has a title)// print the information of the processif (!String.IsNullOrEmpty(process.MainWindowTitle)){Console.WriteLine("Process:{0}", process.ProcessName);
Console.WriteLine("ID: {0}", process.Id);
Console.WriteLine("Title: {0} \n", process.MainWindowTitle);
}}
上一个代码片段将在终端中输出以下输出:
Process:chromeID: 11896Title: c# - get the titles of all open windows - Stack Overflow - Google Chrome Process:WinStore.AppID: 15348Title: Microsoft Store Process:SystemSettingsID: 11020Title: Settings Process:ApplicationFrameHostID: 8848Title: Settings Process:CodeID: 7852Title: ? Untitled-2 - electron-quick-start - Visual Studio Code Process:WindowsInternal.ComposableShell.Experiences.TextInput.InputAppID: 13864Title: Microsoft Text Input Application Process:devenvID: 16860Title: Sandbox (Running) - Microsoft Visual Studio Process:SandboxID: 15524Title: Form1 Process:NVIDIA ShareID: 13076Title: NVIDIA GeForce Overlay
【如何在WinForms中使用C#在Windows的任务栏中检索(列出)所有打开的应用程序的标题和进程ID】就是这样, 你现在应该能够按Windows中所有打开的应用程序的窗口标题进行过滤。
推荐阅读
- Android支持哪些字体文件类型()
- 如何使用AWS Lambda创建快照
- 如何使用插件有效地工作
- 使用React Native进行混合应用程序开发的关键原因
- MVP(任何移动应用程序成功的关键)
- 如何确定你的WinForms C#应用程序是否具有管理员权限
- 无声视频趋势(增加视频的可访问性)
- 如何在路由器上更改Wi-Fi频道
- 如何使用C#在WinForms中检索系统上可用的RAM量