天天看點

BCB 自動填表函數

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

}

繼續閱讀