社区
进程/线程/DLL
帖子详情
怎样通过进程名获得进程句柄或进程id! 急~~~在线等
TaoLD
2004-12-10 11:12:54
如题,请高手们帮帮小弟!谢谢
...全文
282
4
打赏
收藏
怎样通过进程名获得进程句柄或进程id! 急~~~在线等
如题,请高手们帮帮小弟!谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
broown
2004-12-10
打赏
举报
回复
HANDLE hSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
PROCESSENTRY32 *pProcInfo=new PROCESSENTRY32;
pProcInfo->dwSize=sizeof(PROCESSENTRY32);
Process32First(hSnapshot,pProcInfo);
do
{
if(strcmp("QQ.exe",pProcInfo->szExeFile)==0)
{
CString asd;
h_QQMain=(HWND)OpenProcess(PROCESS_ALL_ACCESS,0,pProcInfo->th32ProcessID);
asd.Format("PID %d HWND=%x",pProcInfo->th32ProcessID,h_QQMain);
MessageBox(asd);
}
} while(Process32Next(hSnapshot,pProcInfo));
TaoLD
2004-12-10
打赏
举报
回复
谢谢楼上的 laiyiling(陌生人 专注MS技术) , 我现在在试...
Kudeet
2004-12-10
打赏
举报
回复
参考
http://www.vckbase.com/document/viewdoc/?id=415
Kudeet
2004-12-10
打赏
举报
回复
由进程名获得进程句柄可以用GetModuleHandle();
-
或者
用Process32First,Process32Next这两个函数遍历进程列表,找到匹配的进程,再用OpenProcess()取得进程句柄!
VC
进程
ID
获得
主窗口
句柄
获得
进程
名
VC
获得
进程
ID
获得
主线程
ID
获得
窗口
句柄
获得
主窗口
获得
进程
名
1.窗口类
名
窗口
句柄
窗口标题 窗口
句柄
HWND FindWindow( LPCTSTR lpClassName, //窗口类
名
可用 VC或者VS自带的Spy++查看 LPCTSTR lpWindowName //窗口标题 ); 举例: 以 记事本为例, 记事本 窗口类
名
为:NotePad, 窗口标题 视按具体情况而定,假设为"新建 文本文档.txt - 记事本" 窗口类
名
窗口
句柄
TCHAR lpClassName[]=TEXT("NotePad"); HWND hWnd=::FindWindow(lpClassName,NULL); if(hWnd && IsWindow(hWnd)) ::ShowWindow(hWnd,SW_H
ID
E); 窗口标题 窗口
句柄
TCHAR lpWindowName[]=TEXT("新建 文本文档.txt - 记事本"); HWND hWnd=::FindWindow(NULL,lpWindowName); if(hWnd && IsWindow(hWnd)) ::ShowWindow(hWnd,SW_H
ID
E); 2.窗口
句柄
进程
ID
窗口
句柄
主线程
ID
要使用到的函数: DWORD GetWindowThreadProcess
Id
( HWND hWnd, //目标窗口
句柄
LPDWORD lpdwProcess
Id
//返回目标窗口对应
进程
ID
); 例子: DWORD dwProc
Id
=0;//存放返回的
进程
ID
DWORD dwThread
Id
=0;//存放返回的主线程
ID
HWND hWnd=XXXX;//这里省略,可能用任务方式得到一个窗口的
句柄
.比如用1中的方法. dwThread
Id
=GetWindowThreadProcess
Id
(hWnd,&dwProc
Id
);//同时得到
进程
ID
和主线程
ID
. 3.窗口HAND CWnd 用CWnd::FromHandle(HWND hWnd)函数.很多类都有这个函数. 4.
进程
名
进程
ID
(注:
进程
名
,即在"任务管理器"中看到的
名
字) 用CCheckObject类(详细实现源文件); 例子: 以记事本为例,
进程
名
为 NOTEPAD.EXE (不一定是大写哦,得到任务管理器是显示而定); CCheckObject ch; TCHAR Name[]=TEXT("NOTEPAD.EXE"); DWORD dwProc
Id
=ch.GetProcess
Id
(Name); 5.
进程
名
主线程
ID
例子: CCheckObject ch; TCHAR Name[]=TEXT("NOTEPAD.EXE"); DWORD dwThread
Id
=ch.GetThread
Id
(Name); 6.
进程
名
主窗口
句柄
CCheckObject ch; TCHAR Name[]=TEXT("NOTEPAD.EXE"); HWND hWnd=ch.GetTargetWindowHanle(Name); 7. 其它说明 从CCheckObject类和上面的源码中,不难写出从
进程
ID
主线程
ID
进程
ID
主窗口
句柄
主线程
ID
--->主窗口
句柄
等等其它类似转换. 对于主窗口,特点如下: A. 不能用
进程
ID
,要用线程
ID
,因为一个
进程
可能有多个线程,每个线程都可能会有主窗口. B. 主窗口不会有WS_CHILD属性 C. 主窗口没有父窗口 D. 主窗口一般都有子窗口(这个不是一定的,但是具有普遍性)
C#通过
进程
名
获取窗口
句柄
C#通过
进程
名
获取窗口
句柄
,也可以获取当前窗口
句柄
。本人在c#2013测试通过。
通过
进程
ID
找到窗口
句柄
.
通过
进程
ID
找到窗口
句柄
.通过
进程
ID
找到窗口
句柄
.通过
进程
ID
找到窗口
句柄
.通过
进程
ID
找到窗口
句柄
.通过
进程
ID
找到窗口
句柄
.通过
进程
ID
找到窗口
句柄
.通过
进程
ID
找到窗口
句柄
.通过
进程
ID
找到窗口
句柄
.
通过窗口
句柄
取得
进程
ID
通过窗口
句柄
取得
进程
ID
,源码是易语言API函数GetWindowThreadProcess
Id
的应用教程。@易语言代码大全详解。
通过
进程
id
获取主窗口
句柄
及主窗口标题
通过
进程
id
获取到所在
进程
的主窗口的
句柄
,及通过该主窗口
句柄
获取当前主窗口的标题,
进程
名
;这是一个demo例程,仅供参考
进程/线程/DLL
15,467
社区成员
49,171
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章