如何從視窗控制代碼得到與視窗關聯的檔案路徑 檔名

2021-06-01 00:08:55 字數 1031 閱讀 1051

在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下幾乎會建立許許多多個視窗,但是我們怎麼知道我們操作的是哪個視窗?答 就是視窗控制代碼,每個視窗在被建立出來之後就會被賦...