| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2318 人关注过本帖
标题:窗口、窗口进程、窗口线程。我只想获得激活窗口的进程!
只看楼主 加入收藏
lkwudi222
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2009-10-27
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:2 
窗口、窗口进程、窗口线程。我只想获得激活窗口的进程!
想做一个程序的功能如下:
获取当前窗口的进程,然后找出进程的路径。
也就是找到激活窗口对应的EXE的路径。

目前已知的方法有
程序代码:
 [DllImport("user32.dll")]
 public static extern IntPtr GetForegroundWindow();
//此方法有问题,我用FindWindow()用窗口名找某个窗口出的句柄ID(正确的)和这个GetForegroundWindow()找出的句柄ID(较长,我用sleep(2000)的时间已经正确激活了窗口),两者不一样。

[DllImport("user32.dll")]
static extern uint GetWindowThreadProcessId(IntPtr hWnd, IntPtr ProcessId);//第二个参数可以用IntPtr.0
//这个也有问题,传入FindWindow()正确获得的窗口句柄,返回的也不知道是个跟实际进程很近的ID,推测是线程的ID,下一步改怎么走?

请教下GetForegroundWindow()为何获得错误的句柄ID。
或者实现“获得激活窗口对应的EXE的路径”的方法。谢谢!

[ 本帖最后由 lkwudi222 于 2009-11-19 23:14 编辑 ]
搜索更多相关主题的帖子: 进程 窗口 线程 
2009-11-19 23:06
jedypjd
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:9
帖 子:1096
专家分:4969
注 册:2009-7-27
收藏
得分:10 
GetForegroundWindow();返回的是long,需要转换一下类型
GetWindowThreadProcessId名字里面有Thread,可能得到的是主线程

天涯无岁月,歧路有风尘,百年浑似醉,是非一片云
2009-11-21 23:59
名沁
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:132
专家分:173
注 册:2009-4-5
收藏
得分:10 
学习下
2009-11-22 10:17
快速回复:窗口、窗口进程、窗口线程。我只想获得激活窗口的进程!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024201 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved