已知程序控制代碼,如何知道此程序的主視窗控制代碼

2021-04-18 06:56:20 字數 606 閱讀 3268

已知程序控制代碼,如何知道此程序的主視窗控制代碼,在此說明兩種方法:

1. 呼叫findwindow(),前提是必須知道該程序中視窗類名和視窗名,返回後的控制代碼可以通過iswindow()函式來驗證是否是有效的視窗控制代碼.

hwnd hwnd = ::findwindow(szclassname, szwndname);

if(::iswindow(hwnd))

2.先列舉全部視窗,再列舉**函式中呼叫getwindowthreadprocessid()得到視窗得程序id,再與以前得到得id比較.如果不一致,不處理,若一致,迴圈呼叫getparent()一直到返回null, 最後得hwnd即為頂層視窗控制代碼

bool   callback   enumwindowsproc(hwnd   hwnd,       lparam   lparam   )   

return true;

}

void cmt2dlg::onbutton1()

以上內容參考:http://topic.csdn.net/t/20050612/13/4076646.html

如何根據程序id獲取該程序的主視窗控制代碼

最近剛好有個功能,需要這個邏輯,話不多說,上 struct handle data bool ismainwindow hwnd handle hwnd findmainwindow unsigned long process id bool callback enumwindowscallback...

建立程序後得到該程序的主視窗控制代碼

最近抽空用vc寫了乙個小應用程式。主要功能就是建立程序,並到該程序的主視窗控制代碼,然後再給該視窗發訊息。下面把 共享給大家。cpp view plain copy hwnd createmyprocess 上面 中用到了乙個自定義的結構processwindow。該結構只含有兩個成員,當做引數來傳...

C 遍歷程序獲取主視窗控制代碼

當我們啟動乙個程式,用 process process process.start path path是程式的絕對路徑 啟動時,獲取的process.handle其實是程序的控制代碼,並不是視窗的控制代碼,而有時process.mainwindowhandle卻等於0 此時就需要用列舉來獲取啟動程序...