怎么得到句柄 代码如下

Thinkfeng 2009-02-15 03:35:21


void FindMEditProcess(char *ProcessNameLower , char *ProcessNameHigh)
{
PROCESSENTRY32 pe;
pe.dwSize = sizeof(PROCESSENTRY32) ;
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
Process32First(hSnapshot, &pe);
do{
if(strlen((char *)pe.szExeFile)>0)
if( 0 == strcmp( pe.szExeFile, ProcessNameLower) || 0==strcmp( pe.szExeFile, ProcessNameHigh))
{
HANDLE ehandle = OpenProcess(PROCESS_TERMINATE, FALSE,pe.th32ProcessID);
//我想得到HWND 但这样做是不行动。求大虾帮帮忙
//让最小化的进程恢复 ,
ShowWindow((HWND)ehandle,SW_SHOWNORMAL); //但这样做是不行的 。知道的帮忙解决一下

}

}while(Process32Next(hSnapshot, &pe));
CloseHandle(hSnapshot);

}

...全文
129 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
biweilun 2009-02-15
  • 打赏
  • 举报
回复
你showWindow一个进程句柄有什么用啊?那是伪句柄,又不是窗体句柄。
fireseed 2009-02-15
  • 打赏
  • 举报
回复
1. 获取所有进程的ID,看来你已经会了,虽然方法不是很好。
2. 通过EnumWindows枚举所有的最顶层窗口,
3. 对每一个窗口用GetWindowLongPtr( hWnd, GWLP_HINSTANCE) 获得窗口程序实例的句柄
4. 用GetProcessId获得进程的ID
5. 在当前的ID列表里查找此ID
ltc_mouse 2009-02-15
  • 打赏
  • 举报
回复
OpenProcess返回的只是进程句柄,不是窗口Handle
参考了一些资料,都是像4楼那样做的。lz参考下:
http://www.vckbase.com/document/viewdoc/?id=404
http://hi.baidu.com/isbx/blog/item/531377c6ea834b189c163d08.html
dongming1011 2009-02-15
  • 打赏
  • 举报
回复
UPUP
Thinkfeng 2009-02-15
  • 打赏
  • 举报
回复
窗口名不是固定的

四楼给的有点看不太懂
oyljerry 2009-02-15
  • 打赏
  • 举报
回复
既然想显示窗口,直接FindWindow() 来查找窗口hWnd,然后就可以ShowWindow
a_rockboy 2009-02-15
  • 打赏
  • 举报
回复
if( 0 == strcmp( pe.szExeFile, ProcessNameLower) || 0==strcmp( pe.szExeFile, ProcessNameHigh))
{
EnumWindows(MyWindowsProc, (lParam)pe.th32ProcessID);
}

BOOL CALLBACK MyWindowsProc(
HWND hwnd,
LPARAM lParam
)
{
DWORD processID = GetWindowThreadProcessId(hwnd, 0);
if(processID == (DWORD)lParam)
{
ShowWindow(hwnd,SW_SHOWNORMAL); //但这样做是不行的 。知道的帮忙解决一下
return FALSE;
}

return TRUE;
}

先写的,你调试一下吧。
waizqfor 2009-02-15
  • 打赏
  • 举报
回复
试试SetForegroundWindow行不
waizqfor 2009-02-15
  • 打赏
  • 举报
回复
ShowWindow不可以吗
查看下你的句炳是不是有错误啊!~
Thinkfeng 2009-02-15
  • 打赏
  • 举报
回复
没人帮帮我吗 ?
等待中。。。。

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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