2011-03-16 116 views
3

我希望能夠在32位和64位版本的mshta.exe中啓動page.hta。執行32位和64位mshta.exe(繞過默認處理程序)

創建文件c:\ page.hta

<body onclick="if(confirm('Close? (onclick)')){self.close();}"> 
<h1>Test Page</h1> 
<script type="text/javascript"> 
var elem = [ 
    "UserAgent="+window.navigator.userAgent, 
    "Platform="+window.navigator.platform 
]; 
var taBegin = "<textarea style='width:100%' rows='"+((elem.length+1)*1.5)+"'>"; 
var taEnd = "</textarea>"; 
document.write(taBegin+elem.join("\n")+taEnd); 
</script> 
</body> 

現在這裏是批處理文件來學嘗試不同的加載頁面。

@echo off 
rem Launch 32bit 
c:\Windows\SysWOW64\mshta.exe c:\page.hta 

rem Launch 64bit 
c:\Windows\System32\mshta.exe c:\page.hta 

另一個有趣的事情,請嘗試更改默認的處理程序爲記事本.hta文件會。如果您執行以前的命令,並且它啓動記事本。看來,mshta有一些邏輯,只能通過默認處理程序啓動.hta。

無論使用何種命令,都使用默認處理程序。

+0

沒有解答:( – TJR 2011-08-02 14:17:03

回答

0

system32/systemwow64文件夾是「虛擬」的,因爲它們的內容由操作系統決定,取決於訪問應用程序的位數 - 在您的情況下,cmd.exe可能是64位版本,因此它始終會啓動在mshta.exe

的啓動在32位命令提示符下鍵入64位版本中看到http://astatalk.com/thread/7382/0/How_to_Open_and_Run_32-bit_Command_Prompt_in_x64_Windows/

它也可以幫助,而不是使用SYSTEM32 SysNative,看看mshta.exe然後怎麼行動?

mshata.exe似乎只是使用標準設置.hta所以它可能不會有問題,無論你啓動的32位或64位版本的mshta.exe - 你可以嘗試通過將.hta與你的瀏覽器的32位sersion相關聯...

如果你想繞過那那麼你可以只需要調用瀏覽器(32位或64位),直接在您的批處理文件...

編輯 - 按評論:

對於64位執行,你可以使用「C: \ Program Files \ Internet Explorer \ iexplore.exe「,並使用
32位執行您使用的」C:\ Program Files(x86)\ Internet Explorer \ iex plore.exe」。

根據youd系統,您需要打開一個具有所需位的命令shell - 請參閱上面的鏈接。

+0

你能就如何繞過默認的處理更具體的 – TJR 2011-08-06 15:59:16

+0

看到我上面的編輯 – Yahia 2011-08-06 17:23:51

+0

我很困惑你爲什麼引入iexplore.exe?我從來沒有提到iexplore.exe的問題 – TJR 2011-08-08 14:32:34

1

也許這是一個操作系統版本問題(?)我不能說,因爲您的測試在我的XP x64上按預期運行。

[編輯]代碼我運行:

Rem run32.bat 
%WinDir%\SysWOW64\mshta.exe c:\page.hta 

Rem run64.bat 
%WinDir%\System32\mshta.exe c:\page.hta 

這裏是我所得到的:? test screenshot

+0

因此,從相同的64位操作系統,您是否使用批處理文件啓動兩個mshta.exe的hta? – TJR 2013-03-24 23:30:45

+0

是的,我使用了批處理文件,它使用'mshta.exe'(來自'SysWOW64'和'System32')運行.hta。 – 2013-03-24 23:40:08

+0

這是命令shell _'cmd.exe'爲64 bit_。如果運行'cmd.exe'_('%WinDir%\ SysWOW64 \ cmd.exe')的_32位版本,那麼在這兩種情況下,將啓動32位版本的'mshta.exe',頁面將顯示'平臺= Win32'。 – 2013-03-29 10:23:22