在某些应用程序中, 例如, 编写了一些屏幕截图工具, 为了从特定窗口创建屏幕截图, 需要使用该窗口的当前标题, 因为它们可能不是用C#编写的, 因此它们没有检查进程ID或可以简化过滤的内容。
如果你使用这些CLI工具之一作为C#工具的依赖项, 则可以在任务栏上列出所有具有Window的进程, 这样你就可以从所有进程中获取标题, 从而可以提取标题。创建你的屏幕截图。
通过获取Windows所有进程的列表并验证它们是否具有窗口标题, 可以轻松完成此操作:
// 1. Import System Diagnostics
using System.Diagnostics;
// 2. Create a list of the active processes of Windows
Process[] processlist = Process.GetProcesses();
// Iterate over them
foreach (Process process in processlist)
{
// If the process appears on the Taskbar (if has a title)
// print the information of the process
if (!String.IsNullOrEmpty(process.MainWindowTitle))
{
Console.WriteLine("Process: {0}", process.ProcessName);
Console.WriteLine(" ID : {0}", process.Id);
Console.WriteLine(" Title: {0} \n", process.MainWindowTitle);
}
}
上一个代码片段将在终端中输出以下输出:
Process: chrome
ID : 11896
Title: c# - get the titles of all open windows - Stack Overflow - Google Chrome
Process: WinStore.App
ID : 15348
Title: Microsoft Store
Process: SystemSettings
ID : 11020
Title: Settings
Process: ApplicationFrameHost
ID : 8848
Title: Settings
Process: Code
ID : 7852
Title: ? Untitled-2 - electron-quick-start - Visual Studio Code
Process: WindowsInternal.ComposableShell.Experiences.TextInput.InputApp
ID : 13864
Title: Microsoft Text Input Application
Process: devenv
ID : 16860
Title: Sandbox (Running) - Microsoft Visual Studio
Process: Sandbox
ID : 15524
Title: Form1
Process: NVIDIA Share
ID : 13076
Title: NVIDIA GeForce Overlay
就是这样, 你现在应该能够按Windows中所有打开的应用程序的窗口标题进行过滤。
评论前必须登录!
注册