#include<windows.h>
#include<tchar.h>
#include<iostream>
using namespace std;
#pragma comment(linker,"/subsystem:/"windows/" /entry:/"mainCRTStartup/"")
HWND _FindWindow(LPCTSTR lpClassName,
LPCTSTR lpWindowName);
void main()
{
const int WM_CLICK= 0x00F5;
char* str="/y /i:c:/windows/system32/sysoc.inf";
/*启动windows组件安装向导*/
ShellExecute(NULL,"open","c:/WINDOWS/system32/sysocmgr.exe",str,NULL,SW_SHOW);
HWND hWnd=_FindWindow("#32770","Windows 组件向导");
HWND ChWnd=::FindWindowEx(hWnd,NULL,"#32770","");
HWND hList=::FindWindowEx(ChWnd,NULL,"ListBox","");
//找到应用服务器安装选项,同时选定
for(int i=1;i<14;i++)
::PostMessage(hList, WM_KEYDOWN, 40, NULL); //发送方向键向下进行选择
::PostMessage(hList, WM_KEYDOWN, 32, NULL); //发送space键进行选定
//找到下一步按钮,并发送下一步消息
HWND hBtn=::FindWindowEx(hWnd,NULL,"Button","下一步(&N) >");
::PostMessage(hBtn, 245, 0, 0);
HWND hPros=NULL;
//等待完成窗体的出现
while(1)
{
hWnd=_FindWindow("#32770","Windows 组件向导");
ChWnd=::FindWindowEx(hWnd,NULL,"#32770","");
hPros=::FindWindowEx(ChWnd,NULL,"Static","完成“Windows 组件向导”");
if(hPros)
break;
Sleep(500);//让出cpu
}
HWND hCmBtn=::FindWindowEx(hWnd,NULL,"Button","完成");
::PostMessage(hCmBtn, 245, 0, 0);
}
HWND _FindWindow(LPCTSTR lpClassName,
LPCTSTR lpWindowName)
{
HWND hWnd=NULL;
while(1)
{
Sleep(500);
hWnd=::FindWindow(lpClassName,lpWindowName);
if(hWnd)
break;
}
return hWnd;
}