我用ShellExecute
做什麼,第一參數是HWND
,MSDN上的documentation說:HWND在ShellExecute中做什麼?
手柄可用於顯示用戶界面或錯誤消息的父窗口。如果操作不與窗口關聯,則此值可以爲NULL。
但我發現無論哪個HWND
值獲得相同的結果。
例如:
ShellExecute(0, 'open', 'c:\', nil, nil, SW_SHOWNORMAL);
ShellExecute(Self.Handle, 'open', 'c:\', nil, nil, SW_SHOWNORMAL);
ShellExecute(123456, 'open', 'c:\', nil, nil, SW_SHOWNORMAL);
只是得到同樣的事情(在C盤),所以我不知道什麼是使用不同的HWND
用?
順便說一下,'HWND = 0'是DeskTop的Handle使用了嗎?
通過調用'GetDesktopWindow()'方法可以獲得桌面窗口'HWND',並且該句柄不等於0。0表示空/非最小化句柄。 – teran
@teran但是,如果ShellExecute被傳遞的窗口句柄等於0,則可能包含調用GetDesktopWindow的代碼。 –