在windows95/98上,使用getwindowmodulefilename可以很方便地實現這個功能。
uint getwindowmodulefilename(
hwnd hwnd,
<---視窗控制代碼
lptstr lpszfilename,
<---檔案路徑
uint cchfilenamemax
);
但是到了windows nt 4.0 and windows 2000的時候,module控制代碼已經不能在程序間共享了,因此getwindowmodulefilename也無法使用了。代替它的是psapi中的getmodulefilenameex 。
(參考:
articles/q228/4/69.asp&nowebcontent=1)
現在,當我們已知視窗控制代碼,可以按照下面的方法來得到對應的檔案路徑。
//先得到程序id
dword dwprocessid = 0;
getwindowthreadprocessid( hwnd, &dwprocessid );
//檔案路徑的buffer
wchar_t wsz_filepath[max_path];
//由程序id得到程序控制代碼
handle hprocess = null;
hprocess = openprocess( process_query_information|process_vm_read, false, dwprocessid);
//由程序控制代碼得到檔案路徑(或者用getmodulebasename只取得檔案和字尾名)
getmodulefilenameex(
hprocess,
null,
wsz_filepath,
max_path
);
//使用檔案路徑......
/ /關閉控制代碼
closehandle(hprocess);
得到控制台視窗的控制代碼
呼叫 getconsoletitle 來儲存當前的控制台視窗標題。呼叫 setconsoletitle 來將控制台標題更改為乙個唯一的標題。呼叫 sleep 40 以確保已更新視窗標題。呼叫 findwindow null,uniquetitle 以獲取 hwnd,此呼叫將返回 hwnd,如果操作失...
得到控制台視窗的控制代碼
呼叫 getconsoletitle 來儲存當前的控制台視窗標題。呼叫 setconsoletitle 來將控制台標題更改為乙個唯一的標題。呼叫 sleep 40 以確保已更新視窗標題。呼叫 findwindow null,uniquetitle 以獲取 hwnd,此呼叫將返回 hwnd,如果操作失...
視窗控制代碼,程序ID,程序控制代碼,視窗與程序之間的關係
在windows或linux等作業系統下視窗控制代碼對應著每個視窗的鑰匙,例如,你要對某乙個視窗進行操作,你必須知道你要操作哪乙個視窗,這裡就拿windows做舉例,windows下幾乎會建立許許多多個視窗,但是我們怎麼知道我們操作的是哪個視窗?答 就是視窗控制代碼,每個視窗在被建立出來之後就會被賦...