C# 通过单击流程的';窗口

C# 通过单击流程的';窗口,c#,.net,C#,.net,例如,我在屏幕录制程序中见过类似的功能。例如,单击一个游戏窗口,程序将关注该游戏 所以我想做一些类似的事情,但是我不想记录窗口,而是想从进程/程序中获取进程ID/HWID/window句柄 我希望这不会让你们看得太乱 我在查看时找不到任何东西,但也许可以通过某种方式看到哪个窗口设置了前景(显然是从您单击它时开始) 有人有什么想法吗?从WindowFromPoint开始: 然后GetWindowThreadProcessId 最后,GetProcessIdOfThread 您必须pinvok

例如,我在屏幕录制程序中见过类似的功能。例如,单击一个游戏窗口,程序将关注该游戏

所以我想做一些类似的事情,但是我不想记录窗口,而是想从进程/程序中获取进程ID/HWID/window句柄

我希望这不会让你们看得太乱

我在查看时找不到任何东西,但也许可以通过某种方式看到哪个窗口设置了前景(显然是从您单击它时开始)


有人有什么想法吗?

WindowFromPoint
开始:

然后
GetWindowThreadProcessId

最后,
GetProcessIdOfThread


您必须pinvoke这些,我不确定.NET库是否有它们(第一个肯定不在基类库中)。

+1…只是不要忘记鼠标钩子来知道哪个点必须传递给WindowFromPoint()!几年前,我在C#中编写了一个小屏幕抓取应用程序,它展示了如何在C#中注册全局钩子,以便您可以进一步进行:GetWindowThreadProcessId已经返回了进程ID。不要使用鼠标钩子,显示屏幕截图位图的无边界窗口效果更好。