gpt4 book ai didi

c# - 检测进程的两个窗口

转载 作者:可可西里 更新时间:2023-11-01 10:00:35 26 4
gpt4 key购买 nike

假设我有 2 个 pdf 文档,我已经用 acrobat fine reader 打开了它们。所以我有 2 个不同的窗口。但是当我使用这段代码时:

foreach (Process p in Process.GetProcesses("."))
{
try
{
Console.WriteLine("\r\n");
Console.WriteLine("\r\n Window Title:" + p.MainWindowTitle.ToString());
Console.WriteLine("\r\n Process Name:" + p.ProcessName.ToString());
Console.WriteLine("\r\n Window Handle:" + p.MainWindowHandle.ToString());
Console.WriteLine("\r\n Memory Allocation:" + p.PrivateMemorySize64.ToString());
}
catch { }
}

它只给我上次选择的 acrobat 窗口。但我需要它们,谢谢。

最佳答案

Process 将只提供“主”窗口句柄,而不是每个窗口。

不过,您可以通过 Windows API 和 PInvoke 完成此操作。 EnumWindows将使您枚举系统上打开的窗口。然后您可以使用 GetWindowThreadProcessId查看该窗口是否属于您的进程。

此时,您将拥有进程的每个窗口的窗口句柄。使用句柄,您可以调用 GetWindowText获取窗口标题。

关于c# - 检测进程的两个窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11420676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com