我想使用ShellExecute從我的32位應用程序打開64位註冊表編輯器。從32位應用程序打開64位註冊表
我注意到在Process Explorer中,如果我通常打開Regedit,它說圖像是64位的,但是如果我從ShellExecute的32位應用程序打開C:\Windows\Regedit.exe
,Process Explorer說圖像是32位。
(和它在Windows目錄中打開註冊表編輯,而不是在SysWOW64中)
我發現,如果我調用ShellExecute的前使用Wow64DisableWow64FsRedirection
功能,它會打開它的64位圖像。但我的應用程序不能在32位XP上運行。
不管我用哪種方式打開註冊表,它們都駐留在C:\Windows
中,而且它們都是相同的可執行文件。同一個可執行文件如何具有2種不同的圖像類型?如何在不使用Wow64DisableWow64FsRedirection
的情況下打開64位?
似乎有一些神奇的事情與regedit.exe進行。這可能是一個無證的特例。正如Scott指出的那樣,最好的解決方法可能是啓動regedt32.exe。 (但請注意,如果任一版本的regedit實例已在運行,則不會啓動新實例。) –