繁体   English   中英

执行32位和64位mshta.exe(绕过默认处理程序)

Executing 32bit and 64bit mshta.exe (bypass default handler)

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我希望能够在32位和64位版本的mshta.exe中启动page.hta。

创建文件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。

Whatever命令被指定为默认处理程序。

2 个回复

也许这是一个操作系统版本问题(?)我无法分辨,因为你的测试在XP x64上按预期运行。

[编辑]我运行的代码:

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

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

这是我得到的: 测试截图

system32 / systemwow64文件夹是“虚拟”的,因为它们的内容由操作系统决定,具体取决于访问应用程序的位数 - 在你的情况下,cmd.exe可能是64位版本,所以它总是启动64位 - mshta.exe的版本

以32位启动命令提示符,请参阅http://astatalk.com/thread/7382/0/How_to_Open_and_Run_32-bit_Command_Prompt_in_x64_Windows/

它也可以帮助使用SysNative而不是system32,看看mshta.exe如何行动...

mshata.exe似乎只是使用.hta的标准设置,因此无论你是启动32位还是64位版本的mshta.exe都可能无关紧要 - 您可以尝试将.hta与32位的浏览器关联起来。 ..

如果您想绕过它,那么您可以直接在批处理文件中调用浏览器(32位或64位)...

编辑 - 根据评论:

对于64位执行,您可以在批处理文件中使用“C:\\ Program Files \\ Internet Explorer \\ iexplore.exe”
对于32位执行,您使用“C:\\ Program Files(x86)\\ Internet Explorer \\ iexplore.exe”。

根据您的系统,您需要打开具有所需位数的命令shell - 请参阅上面的链接。

2 关于32位.exe与64位.exe

32位或64位.exe的性能是否存在差异? 或者只是你想在你想要的任何平台上运行你的应用程序(32位处理器或64位处理器)。 我的意思是我有一个控制台应用程序,现在正在生成32位.exe。 当它进行太多的计算时,它执行得非常慢,随着用户群的增加而增加。 如果我将其更改为64位.e ...

3 在mshta.exe中激活错误消息

我正在尝试在具有IE8的非常老的Windows XP上制作HTA。 我在程序中犯了一个错误(此后已更正),我不小心选中了“不再显示此类消息”框,现在如果我出错了,它不会告诉我。 如何重新激活错误消息? ...

4 检查exe是32位还是64位

我正在编写一个使用scons构建.exe的python程序,然后检查它是64位还是32位。 我试过platform.architecture(test1.exe) ,但问题是当我给出一个32位的exe时,它说它是64位的。 我尝试使用dumpbin但输出很大,所以我使用了这个dumpin ...

5 Python py2exe 32位和64位

我的计算机是32位的,我需要制作和执行64位。 我使用py2exe,该exe在我的PC上运行正常,但在其他64位PC上却无法正常运行。 谢谢你的帮助 ...

10 使用py2exe的64位Python上的32位exe

我需要使用py2exe制作32位exe文件。 问题是我的机器和Python是64位的。 有一些简单的方法如何使用64位Python和py2exe制作32位吗? 听说我应该卸载py2exe并安装新的py2exe 32bit,这可以帮到我吗? 编辑:如果32位py2exe工作,我可以 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM