程序a.exe的进程名固定不变,只能打开一个实例。
窗口名随机产生。怎么通过进程名得到窗口名?
窗口名随机产生。怎么通过进程名得到窗口名?
解决方案 »
- MFC要怎么动态设置CheckBox的Caption属性?
- ATL工程如何得到工具箱中控件的指针
- 菜鸟提问,请高手指点!
- 传奇源代码交换《WINDOWS核心编程》随书光盘 QQ:359198713
- 请熟悉调试符号文件安装使用的朋友帮忙!
- 对话框透明,只显示边框如何写?
- 能让我的帖子总是位于顶端就好了
- 用VB编写的ACTIVE EXE如何在IE中调用.将IE做为一个容器!!!
- 各位高手请进!如何查找24x7运行程序当中的异常错误(高分相送)?
- 有谁知道如何编程察看pwl中关于用户的登陆密码
- VS2008 ON_THREAD_MESSAGE 报错?
- 关于CHttpFile SendRequest引起的内存问题?
枚举窗口EnumWindows,GetWindowThreadProcessId比较
#include <tlhelp32.h>
#include <stdio.h>
#include <string>
using namespace std;
DWORD GetProcessList( );BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam)
{
DWORD proID = (DWORD)lParam;
char buf[500] = {0};
GetWindowText(hWnd, buf, 499);
DWORD proID2;
GetWindowThreadProcessId(hWnd, &proID2);
if(proID2 == proID)
{
printf("\n%s\n", buf);
}
return TRUE;
}void main( )
{
DWORD proID = GetProcessList( );
EnumWindows(EnumWindowsProc, proID);
}DWORD GetProcessList( )
{
HANDLE hProcessSnap;
PROCESSENTRY32 pe32;
hProcessSnap = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );
if( hProcessSnap == INVALID_HANDLE_VALUE )
{
return( FALSE );
}
pe32.dwSize = sizeof( PROCESSENTRY32 );
if( !Process32First( hProcessSnap, &pe32 ) )
{
CloseHandle( hProcessSnap );
return( FALSE );
}
do
{
if( (string)pe32.szExeFile == "notepad.exe")
{
return pe32.th32ProcessID;
}
} while( Process32Next( hProcessSnap, &pe32 ) );
CloseHandle( hProcessSnap );
return( TRUE );
}