摘要: 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;
}