How to 模擬按下Yes |
尚未結案
|
hcker
中階會員 發表:95 回覆:118 積分:62 註冊:2003-02-09 發送簡訊給我 |
有一個檔再雙擊後會彈出一個對話方塊,提示你是否繼續操作,現在我知道 它的classname:是#32771裏面有一個 (y) 和 (no) 我如何寫個程式判斷這個視窗存在,然後自動按下yes?
Thx!
我現在能find 到這個視窗,可是不知道如何去 自動按下這個yes.
objecthandle:=findwindow(pchar('#32771'),nil);
if objecthandle<>0 then
begin
//?
end; ----------要知道自己有多笨,到DelphiK.Top來看看----------
|
kkccgg
初階會員 發表:50 回覆:54 積分:30 註冊:2002-07-28 發送簡訊給我 |
|
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
hcker 你好: 嗯...上述文章很完整...
不過...既然準備了...貼上來參考參考.
< class="code">
type
TWinFinder = record
wClassName: string;
Title: string;
WHandle: HWnd;
FoundWindow: Boolean;
end; function WindowTesterByCaption(wnd: HWnd; var Info: TWinFinder): Bool; stdcall
var
Buf: array [Byte] of Char;
WText : string;
begin
GetWindowText(wnd, Buf, sizeof(Buf));
WText := string(Buf);
Result := True;
if pos(Info.Title, WText)=1 then
begin
Info.WHandle:= Wnd;
Info.FoundWindow:=True;
Result := False;
end;
end;
var ChildWin:TWinFinder;
begin
...
objecthandle:=findwindow(pchar('#32771'),nil);
if objecthandle<>0 then
begin
ChildWin.Title:='y';
ChildWin.FoundWindow := False;
EnumChildWindows(objecthandle,@WindowTesterByCaption, Integer(@ChildWin));
if ChildWin.FoundWindow then begin
BringWindowToTop(objecthandle); //使其成為Topwindow
// 模擬 MouseClick
PostMessage(ChildWin.WHandle,WM_LBUTTONDOWN,0,0);
sleep(100);
PostMessage(ChildWin.WHandle,WM_LBUTTONUP,0,0);
end;
end;
end;
|
hcker
中階會員 發表:95 回覆:118 積分:62 註冊:2003-02-09 發送簡訊給我 |
|
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
|
kkccgg
初階會員 發表:50 回覆:54 積分:30 註冊:2002-07-28 發送簡訊給我 |
我的做法是將每個handle內文字紀錄到一字串陣列中
然後藉由pos去找到該handle後下指令 // 取得handle文字內容
SendMessage(hwnd, WM_GETTEXT, 1024, long(&str[0]));
s2[i]=AnsiString(str); if (AnsiString(s2[i1]).Pos("是(")>0)
{
Memo2->Lines->Add(s1[i1]);
ComboBox2->ItemIndex=i1;
try{
SendMessage(ComboBox2->Items->Objects[ComboBox2->ItemIndex],
BM_CLICK, 0, 0);
i2=Test_Num 1;
break;
} catch (...)
{ }
}
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |