发信人: 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中搞不定,能给出完整代码吗?
 :......
   | 
 
 
 |