摘要: BCB实现自动填表的例子,通过改造完全可以操作其它窗口来实现自动填表功能例子: int i=0;
BOOL CALLBACK EnumFunc(HWND hwnd,LPARAM lp) ;//自定义的回调函数
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
int iParam = 0;
i=0; //窗口标题
HWND hwnd =FindWindow(NULL,Edit1->Text.c_str());// ::GetDesktopWindow();
EnumChildWindows(hwnd, (int (__stdcall *)())EnumFunc, iParam);
}
//---------------------------------------------------------------------------
BOOL CALLBACK EnumFunc(HWND hwnd,LPARAM lp) //自定义的回调函数
{
char array[255];
char array1[255];
GetWindowText(hwnd, array, 255); //hwnd为子窗口句柄
Memo->Lines->Add(array); //子窗口名显示在Memo1中
GetClassName(hwnd,array1,255);
Memo->Lines->Add(array1);
if(AnsiString(array1).Pos("RzEdit"))
{
i++;
switch(i)
{
case 1:
{
char buf[20]="pacs";
SendMessage(hwnd,WM_SETTEXT,20,(LPARAM)buf); break;
}
case 2:
{
char buf[20]="pacs";
SendMessage(hwnd,WM_SETTEXT,20,(LPARAM)buf);
break;
}
case 3:
{
char buf[20]="server";
SendMessage(hwnd,WM_SETTEXT,20,(LPARAM)buf);
break;
}
case 4:
{
char buf[20]="21";
SendMessage(hwnd,WM_SETTEXT,20,(LPARAM)buf);
break;
}
}
}
return hwnd != NULL;
}