爲了得到前臺窗口(或應用程序文件的名稱)的應用程序名稱,我想使用GetActiveWindow和GetWindowModuleFileName。替代GetWindowModuleFileName獲取其他進程ApplicationFileName?
我發現有關GetWindowText時here
GetWindowText時的那執行工作正常,但只GetWindowModuleFileName爲Visual Studio(當我點擊devenv的內部)返回一個值,它保持空白的所有其他應用程序類似的問題。
任何提示我怎麼能找出哪裏出了問題?可能這與我的應用程序的權限/安全性有關,查詢另一個進程的應用程序文件名?
編輯:http://support.microsoft.com/?id=228469看起來像這樣在Win> = XP
任何替代方案如何獲取應用程序的文件名不起作用?
http://support.microsoft.com/?id=228469還建議使用GetModuleFileNameEx代替;使用GetActiveWindow + GetWindowThreadProcessId + OpenProcess + GetModuleFileNameEx。 (請注意,如果您嘗試打開具有較高權限級別或以不同用戶身份運行的進程,則OpenProcess將失敗;例如,以普通用戶身份運行的此代碼無法打開以Process身份運行的進程。) – BrendanMcK 2011-04-01 00:15:11
@Brendan如果您指定一個小的請求權限集,您是否可以打開一個更高權限的進程?我猜想,GetModuleFilenameEx失敗,但具有這樣的權限集。 – CodesInChaos 2011-04-01 10:42:21