社区
进程/线程/DLL
帖子详情
获取进程的句柄?
lincolnandlinda
2008-07-22 11:49:05
一个应用程序已经开启,如何获得它的进程信息,如句柄.
...全文
132
7
打赏
收藏
获取进程的句柄?
一个应用程序已经开启,如何获得它的进程信息,如句柄.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zengwenfu
2008-07-22
打赏
举报
回复
DWORD GetWindowThreadProcessId(
HWND hWnd,
LPDWORD lpdwProcessId
); // 获得窗口所属进程的ID;
HANDLE hProcess = OpenProcess (PROCESS_VM_READ, FALSE, pid); // 通过进程ID打开进程
lincolnandlinda
2008-07-22
打赏
举报
回复
HANDLE hProcess = OpenProcess (PROCESS_VM_READ, FALSE, pid);
pid是什么,我只知道那个进程的名称,和一些窗口信息。
lincolnandlinda
2008-07-22
打赏
举报
回复
你具体点,我是新手。麻烦了!
thirddata
2008-07-22
打赏
举报
回复
补充,枚举后,使用以下方法得到句柄:
HANDLE hProcess = OpenProcess (PROCESS_VM_READ, FALSE, pid);
thirddata
2008-07-22
打赏
举报
回复
这个只能枚举,用以下方法:
EnumProcesses
这个函数在psaip.dll里面,你可以动态加载
FORTUNATE99
2008-07-22
打赏
举报
回复
CreateToolhelp32Snapshot和它的相关函数,可以枚举WIN32进程表里的所有进程
lincolnandlinda
2008-07-22
打赏
举报
回复
补充一下,那个进程并不是我通过createprocess创建的。
C#通过
进程
名
获取
窗口
句柄
C#通过
进程
名
获取
窗口
句柄
,也可以
获取
当前窗口
句柄
。本人在c#2013测试通过。
通过
进程
id
获取
主窗口
句柄
及主窗口标题
通过
进程
id
获取
到所在
进程
的主窗口的
句柄
,及通过该主窗口
句柄
获取
当前主窗口的标题,
进程
名;这是一个demo例程,仅供参考
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_HIDE); 窗口标题 窗口
句柄
TCHAR lpWindowName[]=TEXT("新建 文本文档.txt - 记事本"); HWND hWnd=::FindWindow(NULL,lpWindowName); if(hWnd && IsWindow(hWnd)) ::ShowWindow(hWnd,SW_HIDE); 2.窗口
句柄
进程
ID 窗口
句柄
主线程ID 要使用到的函数: DWORD GetWindowThreadProcessId( HWND hWnd, //目标窗口
句柄
LPDWORD lpdwProcessId //返回目标窗口对应
进程
ID ); 例子: DWORD dwProcId=0;//存放返回的
进程
ID DWORD dwThreadId=0;//存放返回的主线程ID HWND hWnd=XXXX;//这里省略,可能用任务方式得到一个窗口的
句柄
.比如用1中的方法. dwThreadId=GetWindowThreadProcessId(hWnd,&dwProcId);//同时得到
进程
ID和主线程ID. 3.窗口HAND CWnd 用CWnd::FromHandle(HWND hWnd)函数.很多类都有这个函数. 4.
进程
名
进程
ID (注:
进程
名,即在"任务管理器"中看到的名字) 用CCheckObject类(详细实现源文件); 例子: 以记事本为例,
进程
名为 NOTEPAD.EXE (不一定是大写哦,得到任务管理器是显示而定); CCheckObject ch; TCHAR Name[]=TEXT("NOTEPAD.EXE"); DWORD dwProcId=ch.GetProcessId(Name); 5.
进程
名 主线程ID 例子: CCheckObject ch; TCHAR Name[]=TEXT("NOTEPAD.EXE"); DWORD dwThreadId=ch.GetThreadId(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. 主窗口一般都有子窗口(这个不是一定的,但是具有普遍性)
获得当前应用程序执行时所在的目录
在PB中获得当前应用程序执行时所在的目录和Exe名称。使用API函数GetModuleFileNameA。
Sigar1.6.2 jar包
System Information Gatherer And Reporter,系统信息收集和报表工具。 一个开源的工具,提供了跨平台的系统信息收集的API,通过它可以
获取
包括: 1.操作系统的信息,包括:dataModel、cpuEndian、name、version、arch、machine、description、patchLevel、vendor、vendorVersion、vendorName、vendorCodeName 2.CPU信息,包括:基本信息(vendor、model、mhz、cacheSize)和统计信息(user、sys、idle、nice、wait) 3.内存信息,物理内存和交换内存的总数、使用数、剩余数;RAM的大小 4.
进程
信息,包括每个
进程
的内存、CPU占用数、状态、参数、
句柄
等。 5.文件系统信息,包括名称、容量、剩余数、使用数、分区类型等 6.网络接口信息,包括基本信息和统计信息。 7.网络路由和链接表信息。 支持多种操作系统,底层接口用C编写。
进程/线程/DLL
15,466
社区成员
49,169
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章