gpt4 book ai didi

wpf - 如何确定特定进程是否正在运行 WPF 应用程序?

转载 作者:行者123 更新时间:2023-12-04 19:47:51 30 4
gpt4 key购买 nike

如何确定特定进程是否为 WPF 应用程序正在运行?

在Snoop中,作者使用下面这段代码来检查这个条件~

foreach (ProcessModule module in process.Modules)
{
if (module.ModuleName.Contains("PresentationFramework.dll") ||
module.ModuleName.Contains("PresentationFramework.ni.dll"))
{
isValid = true;
break;
}
}

最佳答案

显然 32 位进程无法枚举 64 位进程的模块。它引发了以下 Win32Exception:

Only part of a ReadProcessMemory or WriteProcessMemory request was completed

这可能是 Process 类的一个限制,必须有一种使用 API 方法的方法...

如果进程也是 64 位的,同样的事情也能正常工作......

关于 Snoop,没有 64 位版本可供下载,但由于源代码也可用,您可以将其编译为 x64

编辑:如果您的进程是 64 位的,而正在运行的 WPF 应用程序是 32 位的,那么 Process.Modules 似乎也不包含 PresentationFramework...

System.Diagnostics.ProcessModule (TheWPFApp.exe)
System.Diagnostics.ProcessModule (ntdll.dll)
System.Diagnostics.ProcessModule (wow64.dll)
System.Diagnostics.ProcessModule (wow64win.dll)
System.Diagnostics.ProcessModule (wow64cpu.dll)

关于wpf - 如何确定特定进程是否正在运行 WPF 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1415685/

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