精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>C/C++>>一般性编程问题>>Re:请问在VC中如何列举所有窗口?

主题:Re:请问在VC中如何列举所有窗口?
发信人: michaelzeng163(杂役)
整理人: wenbobo(2003-08-23 10:55:06), 站内信件
#include "windows.h"
#include "Winuser.h"
#include <cstdio>

WORD g_pid = 0;
WORD g_cm = 0;
BOOL g_bFound = FALSE;
BOOL g_bDone = FALSE;
BOOL CALLBACK EnumWindowsProc( HWND hwnd, LPARAM lParam );

int main(int argc, char* argv[])
{

if(argc < 3)
{
printf("\n[Ó÷¨] sendC ½ø³ÌID ÃüÁî²ÎÊý");
return -1;
}

g_pid = (WORD)atol(argv[1]);
g_cm = (WORD)atol(argv[2]);

EnumWindows(EnumWindowsProc , 0); //枚举窗口

if(g_bFound)printf("Window Found!\n");
else printf("Window Not Found!\n");

if(g_bDone)printf("PostMessage Done!");
else printf("PostMessage Failed!");

return 0;
}

BOOL CALLBACK EnumWindowsProc( HWND hwnd, LPARAM lParam )
{
//这里是我写的处理程序, 可以改成你想要的

if(::IsWindow(hwnd))
{
DWORD dwProcessId;
GetWindowThreadProcessId(hwnd,&dwProcessId);
if (dwProcessId == g_pid)
{
if(::PostMessage(hwnd, WM_COMMAND, g_cm, 0))g_bDone = TRUE;
g_bFound = TRUE;
}
}

return TRUE;

}

【 在 mingle_qin 的大作中提到:】
:用那几个API函数,但在VC中搞不定,能给出完整代码吗?
:......
 

[关闭][返回]