如何获取子窗体句柄 |
答題得分者是:herbert2
|
wq236589
一般會員 ![]() ![]() 發表:21 回覆:37 積分:16 註冊:2008-08-27 發送簡訊給我 |
|
careychen
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
|
wq236589
一般會員 ![]() ![]() 發表:21 回覆:37 積分:16 註冊:2008-08-27 發送簡訊給我 |
我是这么写的,我是想问有没有简单一点的办法
[code delphi] function ck():hwnd; var ck,ck1,ck2,ck3,ck4,ck5,ck6,ck7,ck8,ck9,ck10,ck11,ck12:hwnd; begin ck:=FindWindow(nil,PChar('Google Earth Pro ')); ck1:=FindWindowEx(ck,0,PChar('QWidget'),PChar('qt_central_widget')); ck2:=FindWindowEx(ck1,0,PChar('QWidget'),PChar('MainWindowHSplitter')); ck3:=FindWindowEx(ck2,0,PChar('QWidget'),PChar('LeftPanelVSplitter')); ck4:=FindWindowEx(ck3,0,PChar('QWidget'),PChar('Search')); ck5:=FindWindowEx(ck4,0,PChar('QWidget'),PChar('Search')); ck6:=FindWindowEx(ck5,0,PChar('QWidget'),PChar('unnamed')); ck7:=FindWindowEx(ck6,0,PChar('QWidget'),PChar('搜索')); ck8:=FindWindowEx(ck7,0,PChar('QWidget'),PChar('searchTabWidget')); ck9:=FindWindowEx(ck8,0,PChar('QWidget'),PChar('tab pages')); ck10:=FindWindowEx(ck9,0,PChar('QWidget'),PChar('fly')); ck11:=FindWindowEx(ck10,0,PChar('QWidget'),PChar('mFlyFrame')); ck12:=FindWindowEx(ck11,0,PChar('QWidget'),PChar('mFlyCombo')); Result :=FindWindowEx(ck12,0,PChar('QWidget'),PChar('combo edit')); end; [/code] |
herbert2
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
不是很熟悉 Pascal 語法, 有誤請多包涵.
利用迴圈應可符合您的需求. [code delphi] // CapList.CommaText := '"Google Earth Pro","qt_central_widget",........'; // 呼叫時傳入 function ck(CapList: TStrings) : hwnd; var ix1: Integer; sx1: String; ckP,ckS: hwnd; begin ckP := nil; ix1 := 0; while ix1 < CapList.Count do begin sx1 := CapList.Strings[ix1]; ckS := FindWindow(ckP,0,PChar(sx1),nil); if ckS = nil then begin ckS := ckP; exit; end; ckP := ckS; ix1 := ix1 1; end; Result := ckS; end; [/code] |
wq236589
一般會員 ![]() ![]() 發表:21 回覆:37 積分:16 註冊:2008-08-27 發送簡訊給我 |
|
pceyes
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
請教一下,您如何得到以下這些元件的名稱,而且還知道它的Parants ??
===================引 用 wq236589 文 章=================== 我是这么写的,我是想问有没有简单一点的办法 [code delphi] function ck():hwnd; var ck,ck1,ck2,ck3,ck4,ck5,ck6,ck7,ck8,ck9,ck10,ck11,ck12:hwnd; begin ck:=FindWindow(nil,PChar('Google Earth Pro ')); ck1:=FindWindowEx(ck,0,PChar('QWidget'),PChar('qt_central_widget')); ck2:=FindWindowEx(ck1,0,PChar('QWidget'),PChar('MainWindowHSplitter')); ck3:=FindWindowEx(ck2,0,PChar('QWidget'),PChar('LeftPanelVSplitter')); ck4:=FindWindowEx(ck3,0,PChar('QWidget'),PChar('Search')); ck5:=FindWindowEx(ck4,0,PChar('QWidget'),PChar('Search')); ck6:=FindWindowEx(ck5,0,PChar('QWidget'),PChar('unnamed')); ck7:=FindWindowEx(ck6,0,PChar('QWidget'),PChar('搜索')); ck8:=FindWindowEx(ck7,0,PChar('QWidget'),PChar('searchTabWidget')); ck9:=FindWindowEx(ck8,0,PChar('QWidget'),PChar('tab pages')); ck10:=FindWindowEx(ck9,0,PChar('QWidget'),PChar('fly')); ck11:=FindWindowEx(ck10,0,PChar('QWidget'),PChar('mFlyFrame')); ck12:=FindWindowEx(ck11,0,PChar('QWidget'),PChar('mFlyCombo')); Result :=FindWindowEx(ck12,0,PChar('QWidget'),PChar('combo edit')); end; [/code]
------
努力會更接近成功 |
wq236589
一般會員 ![]() ![]() 發表:21 回覆:37 積分:16 註冊:2008-08-27 發送簡訊給我 |
|
pceyes
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
HWND parent window HWND hwndChildAfter, // handle to a child window LPCTSTR lpszClass, // pointer to class name LPCTSTR lpszWindow // pointer to window name ); ===================引 用 wq236589 文 章=================== 我用"spy " 查的 Parants 是什么意思啊 指的是元件的parent的容器元件啊!
------
努力會更接近成功 |
wq236589
一般會員 ![]() ![]() 發表:21 回覆:37 積分:16 註冊:2008-08-27 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |