如何通过hProc得到窗口句柄?
要在WIN98,2000系统都可以用呀。
解决了另外再给分。
13 个解决方案
#1
use EnumWindows and GetWindowThreadProcessId , see
http://msdn.microsoft.com/msdnmag/issues/02/07/CQA/default.aspx
http://msdn.microsoft.com/msdnmag/issues/02/07/CQA/default.aspx
#2
Psapi.h
是98下和2000下都能用的吗?
是98下和2000下都能用的吗?
#3
I think not, see
http://msdn.microsoft.com/library/en-us/perfmon/base/enumprocesses.asp?frame=true
Client: Included in Windows XP, Windows 2000 Professional, and Windows NT Workstation 4.0.
Server: Included in Windows Server 2003, Windows 2000 Server, and Windows NT Server 4.0.
http://msdn.microsoft.com/library/en-us/perfmon/base/enumprocesses.asp?frame=true
Client: Included in Windows XP, Windows 2000 Professional, and Windows NT Workstation 4.0.
Server: Included in Windows Server 2003, Windows 2000 Server, and Windows NT Server 4.0.
#4
应该不能直接得到
一个进程通常都会对应多个窗口句柄(少则2~3个,多则几十个)
似乎只能枚举系统中的所有窗口句柄,然后逐一判断它们所属的进程。
一个进程通常都会对应多个窗口句柄(少则2~3个,多则几十个)
似乎只能枚举系统中的所有窗口句柄,然后逐一判断它们所属的进程。
#5
98下怎么办呢,现在2000的已经OK了?
#6
EnumWindows and GetWindowThreadProcessId should work on 98 too
#7
HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwx);
现在知道hProc的值,
如何得到他所属窗口的HWND,或程序名PATH都可以。
GetWindowThreadProcessId 恐怕用不上。
现在知道hProc的值,
如何得到他所属窗口的HWND,或程序名PATH都可以。
GetWindowThreadProcessId 恐怕用不上。
#8
look ^ study
#9
如果要获得程序名PATH的话可以这样做:
调用EnumProcessModules获取进程对应的模块名
然后对获得的第一个模块调用GetModuleFileNameEx就可以得到带完整路径的应用程序可执行文件名。
调用EnumProcessModules获取进程对应的模块名
然后对获得的第一个模块调用GetModuleFileNameEx就可以得到带完整路径的应用程序可执行文件名。
#10
学习ing...
#11
EnumThreadWindows
#12
回复人: thisisjjjj(Jeffry) ( ) 信誉:99
如果要获得程序名PATH的话可以这样做:
调用EnumProcessModules获取进程对应的模块名
然后对获得的第一个模块调用GetModuleFileNameEx就可以得到带完整路径的应用程序可执行文件名。
-------------------
GetModuleFileNameEx是在psapi.h中的,只能在2000下用~~
98下就没办法了。
如果要获得程序名PATH的话可以这样做:
调用EnumProcessModules获取进程对应的模块名
然后对获得的第一个模块调用GetModuleFileNameEx就可以得到带完整路径的应用程序可执行文件名。
-------------------
GetModuleFileNameEx是在psapi.h中的,只能在2000下用~~
98下就没办法了。
#13
回复人: flyelf(空谷清音) ( ) 信誉:100
EnumThreadWindows
------------------------------
Win32 API EnumThreadWindows(DWORD threadId,WNDENUMPROC lpfn,LPARAM lParam)
所以也不能~
EnumThreadWindows
------------------------------
Win32 API EnumThreadWindows(DWORD threadId,WNDENUMPROC lpfn,LPARAM lParam)
所以也不能~
#1
use EnumWindows and GetWindowThreadProcessId , see
http://msdn.microsoft.com/msdnmag/issues/02/07/CQA/default.aspx
http://msdn.microsoft.com/msdnmag/issues/02/07/CQA/default.aspx
#2
Psapi.h
是98下和2000下都能用的吗?
是98下和2000下都能用的吗?
#3
I think not, see
http://msdn.microsoft.com/library/en-us/perfmon/base/enumprocesses.asp?frame=true
Client: Included in Windows XP, Windows 2000 Professional, and Windows NT Workstation 4.0.
Server: Included in Windows Server 2003, Windows 2000 Server, and Windows NT Server 4.0.
http://msdn.microsoft.com/library/en-us/perfmon/base/enumprocesses.asp?frame=true
Client: Included in Windows XP, Windows 2000 Professional, and Windows NT Workstation 4.0.
Server: Included in Windows Server 2003, Windows 2000 Server, and Windows NT Server 4.0.
#4
应该不能直接得到
一个进程通常都会对应多个窗口句柄(少则2~3个,多则几十个)
似乎只能枚举系统中的所有窗口句柄,然后逐一判断它们所属的进程。
一个进程通常都会对应多个窗口句柄(少则2~3个,多则几十个)
似乎只能枚举系统中的所有窗口句柄,然后逐一判断它们所属的进程。
#5
98下怎么办呢,现在2000的已经OK了?
#6
EnumWindows and GetWindowThreadProcessId should work on 98 too
#7
HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwx);
现在知道hProc的值,
如何得到他所属窗口的HWND,或程序名PATH都可以。
GetWindowThreadProcessId 恐怕用不上。
现在知道hProc的值,
如何得到他所属窗口的HWND,或程序名PATH都可以。
GetWindowThreadProcessId 恐怕用不上。
#8
look ^ study
#9
如果要获得程序名PATH的话可以这样做:
调用EnumProcessModules获取进程对应的模块名
然后对获得的第一个模块调用GetModuleFileNameEx就可以得到带完整路径的应用程序可执行文件名。
调用EnumProcessModules获取进程对应的模块名
然后对获得的第一个模块调用GetModuleFileNameEx就可以得到带完整路径的应用程序可执行文件名。
#10
学习ing...
#11
EnumThreadWindows
#12
回复人: thisisjjjj(Jeffry) ( ) 信誉:99
如果要获得程序名PATH的话可以这样做:
调用EnumProcessModules获取进程对应的模块名
然后对获得的第一个模块调用GetModuleFileNameEx就可以得到带完整路径的应用程序可执行文件名。
-------------------
GetModuleFileNameEx是在psapi.h中的,只能在2000下用~~
98下就没办法了。
如果要获得程序名PATH的话可以这样做:
调用EnumProcessModules获取进程对应的模块名
然后对获得的第一个模块调用GetModuleFileNameEx就可以得到带完整路径的应用程序可执行文件名。
-------------------
GetModuleFileNameEx是在psapi.h中的,只能在2000下用~~
98下就没办法了。
#13
回复人: flyelf(空谷清音) ( ) 信誉:100
EnumThreadWindows
------------------------------
Win32 API EnumThreadWindows(DWORD threadId,WNDENUMPROC lpfn,LPARAM lParam)
所以也不能~
EnumThreadWindows
------------------------------
Win32 API EnumThreadWindows(DWORD threadId,WNDENUMPROC lpfn,LPARAM lParam)
所以也不能~