Csharp/C#教程:通过窗口的句柄查找进程ID分享


通过窗口的句柄查找进程ID

获取进程的特定PID时遇到问题,此进程的问题在于它是一个隐藏的进程,它没有显示在任务管理器/ powershell上,完全隐藏。

我所做的远是这个过程的主要窗口句柄,问题是,我怎样才能得到它的pid。

我想要做的是读取这个过程的内存并编辑它,但如果没有PID我不能这样做(因为我需要在内存中获取它的基地址)。

所以,如果任何人有任何解决方法或某些东西给我,它会很棒。

PS:此过程未在Process.GetProcesses()中显示。

TY!

您可以使用以下Windows API:

[DllImport("user32.dll", SetLastError=true)] static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint processId); 

传入HWND并使用out参数返回PID。

您可以在MSDN上阅读有关此function的更多信息 – https://msdn.microsoft.com/en-us/library/windows/desktop/ms633522(v=vs.85).aspx

您需要在Windows API中使用P / invoke。

在你的类中声明一个函数就像

  [DllImport("User32.dll")] static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId); 

然后在你的课堂上调用它。

见PInvoke 。

上述就是C#学习教程:通过窗口的句柄查找进程ID分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/952877.html

(0)
上一篇 2021年11月18日
下一篇 2021年11月18日

精彩推荐