我正在寫一個自動填充任何win32應用程序中保存的數據的應用程序。此應用程序在MFC的vC++中完成。從textField hWnd從網站窗體中檢索文本vC++
工作過程是發送程序到托盤,全局鉤鍵盤,抓住CTRL + SHIFT + K(K = A添加,R刪除,S發送信息,M修改信息,Q退出),註釋/ decript並保存/從MySql數據庫檢索信息。
當程序捕捉到一個用戶動作,它掃描有源頂部窗口如下:
HWND hWndMW = GetForegroundWindow();
wchar_t buff[512];
this->ClearBuffer<wchar_t>(buff, 512);
GetClassName(hWndMW, buff, 512);
String^ sClassName = gcnew String(buff);
this->ClearBuffer<wchar_t>(buff, 512);
GetWindowText(hWndMW, buff, 512);
String^ sText = gcnew String(buff);
zOrder=0;
EnumChildWindowsDelegate^ ecwDel = gcnew AutoComplete::EnumChildWindowsDelegate(this, &AutoComplete::hWndControls);
EnumChildWindows(hWndMW, ecwDel, (LPARAM) NULL);
這檢索信息的功能:
bool hWndControls(HWND hWnd, LPARAM lParam)
{
wchar_t buff[512];
zOrder++;
this->ClearBuffer<wchar_t>(buff, 512);
GetClassName(hWnd, buff, 512);
String^ sClassName = gcnew String(buff);
if (sClassName->ToUpper()->Contains("EDIT"))
{
char buff1[MAX_DATASIZE];
this->ClearBuffer<char>(buff1, MAX_DATASIZE);
int len = this->SendMessage(hWnd, WM_GETTEXT, MAX_DATASIZE, (LPARAM) buff1);
buff1[len] = 0;
String^ sTextInside = gcnew String(buff1);
if(textInside!="") SaveData(hWndMW, hWnd, zOrder, sTextInside);
}
return true;
};
保存數據()還是要發達。 問題是:
1-如何從網站表單中獲取信息(主要是在Mozilla,IExplore或Google Crome中)?
2-有沒有什麼方法可以將信息與信息所在的控件進行匹配,而不是使用zOrder?我猜想像「控制名稱」,可以從hWnd檢索..
歡迎任何評論!謝謝,
米格爾
沒有人有任何解決方案? – Miquel 2011-03-19 17:33:26