怎么过通过句柄获得进程名称?

ahui_net 2012-01-17 11:07:26

这个句柄是一个窗口的句柄,很奇怪这个窗口句柄没有在进程列表中显示出来,通过Process.GetProcesses();穷举不到。


不知道有没有非托管的动态连接库能够有方法能找出来。

请教,谢谢。
...全文
525 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
叶子 2012-01-18
  • 打赏
  • 举报
回复
ahui_net 2012-01-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 gomoku 的回复:]

C# code

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


具体见:
http://msdn.microsoft.com/zh-cn/library/windows/des……
[/Quote]

很感谢你的回复。通过轮询我可以通过进程id地址循环Process.GetProcesses();找到其进程名,但是我发现Process.GetProcesses();的效率极低,很费cpu,有能通过进程id查出进程名的方法吗?再请教下。
wushuai1346 2012-01-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 gomoku 的回复:]

C# code

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


具体见:
http://msdn.microsoft.com/zh-cn/library/windows/des……
[/Quote]学习了
足球中国 2012-01-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 gomoku 的回复:]

C# code

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


具体见:
http://msdn.microsoft.com/zh-cn/library/windows/des……
[/Quote]
这个就是了。
qq4004229 2012-01-18
  • 打赏
  • 举报
回复
好贴,好问题,好回答
gomoku 2012-01-18
  • 打赏
  • 举报
回复

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


具体见:
http://msdn.microsoft.com/zh-cn/library/windows/desktop/ms633522(v=vs.85).aspx
ahui_net 2012-01-18
  • 打赏
  • 举报
回复
找到方法了。谢谢大家。
wy811007 2012-01-18
  • 打赏
  • 举报
回复
你要找什么东西额 具体点啊..用spy+ 查看下 窗体类 窗体名 什么的 还有进程信息
足球中国 2012-01-17
  • 打赏
  • 举报
回复
可以。我原来做的一个系统辅助工具就是通过窗口句柄找的进程。
太久了。记不住是哪个API了。
好象enumwindows之类的吧。

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧