用FindWindow的部份WindowName來找Handle |
尚未結案
|
blk5743
高階會員 發表:34 回覆:371 積分:236 註冊:2003-11-17 發送簡訊給我 |
|
CuteBabyBoy
初階會員 發表:18 回覆:97 積分:48 註冊:2003-07-11 發送簡訊給我 |
|
m8815010
版主 發表:99 回覆:372 積分:289 註冊:2003-11-13 發送簡訊給我 |
引言: 請問一下 如果我有一個程式,他的caption為AAABBB 我可以用 FindWindow(NULL,"AAABBB")來尋找 可是如果我要caption為AAAXXX(XXX是變數,不一定) 所以我想用 FindWindow(NULL,"AAA")來尋找 可是會失敗(應該是caption沒有完全相同) 那請問我應該用哪一個API來尋找呢??(我只確定AAA是固定的)blk5743你好: 誠如 >! 也就是說這 >! 也就是: class="code"> ~~ AnsiString CaptnWeNeed="AAA"; HWND HwndWeNeed; bool __stdcall FindPrgmHwnd(HWND hnd,LPARAM lparam); //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- bool __stdcall FindPrgmHwnd(HWND hnd,LPARAM lparam) { char Wndname[128]; ZeroMemory(Wndname,128); GetWindowText(hnd,Wndname,128); if (IsWindowVisible(hnd)) { if (AnsiString(Wndname).SubString(1,4)==CaptnWeNeed) { HwndWeNeed=hnd; return false; } } return true; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { EnumWindows((WNDENUMPROC)FindPrgmHwnd,0); } //--------------------------------------------------------------------------- 精神上就是列舉系統視窗值,只要發現有一個視窗的Caption前3碼是"AAA"就回傳! 當然有可能會找到另一個視窗Caption同為"AAA"開始的,所以看你要先自行確定系統是否有其它這類的視窗,或是用上述第一點的建議作法,就讓你自行trade off了! >! 發表人 - |
blk5743
高階會員 發表:34 回覆:371 積分:236 註冊:2003-11-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |