我可以在.hta文件中嵌入一个图标吗?

Bol*_*ait 14 hta

我写了一个HTML应用程序(hta文件),我想知道是否有办法将图标文件嵌入到hta文件本身.

我看过包含嵌入图形文件的HTML电子邮件,有没有办法用html应用程序和图标做到这一点?

HTA文件有一个HTA:APPLICATION标签,允许您指定一个图标,但我想只有一个文件可供下载.我不想拥有外部图标文件.这可能吗?

有关hta文件的更多信息:HTA文件.

Ale*_*min 20

我找到了设置图标的黑客.

准备一个图标文件icon.ico和一个hta文件source.hta,其中包含以下内容:

<HTML>
<HEAD>
   <SCRIPT>
      path = document.URL;
      document.write(
       '<HTA:APPLICATION ID="oHTA" APPLICATIONNAME="myApp" ICON="'+path+'">');
   </SCRIPT>
</HEAD>
<BODY SCROLL="no">
  Hello, World!
</BODY>
</HTML>
Run Code Online (Sandbox Code Playgroud)

打开命令提示符并键入:

copy /b icon.ico+source.hta iconapp.hta
Run Code Online (Sandbox Code Playgroud)

这会将图标和hta连接成一个文件.

在我的测试用例中,Internet Explorer跳过了图标数据并正确显示了HTML.

然后使用javascript将图标的路径设置为.hta文件本身的路径,并加载图标.

我在Windows XP SP3,Internet Explorer 8上测试了这个.

  • 我刚刚注意到我的回答已经获得了第二次投票,我想明确表示虽然这是一个有趣的黑客,但不能保证将二进制blob预先添加到.hta文件中会起作用.它可能会破坏IE的下一个版本,干扰quirk模式检测或具有所有类型的意外效果.你被警告了 (6认同)
  • 您可以使用`<hta:application icon ="#">`进一步简化它.请参阅[构建带有嵌入式图像和图标的独立HTA](http://www.john-am.com/2010/07/building-a-self-contained-hta-with-embedded-images-and-icons /). (2认同)

小智 9

考虑使用System32中的一个应用程序作为您的图标.

这不会改变桌面上的HTA文件的图标,但是一旦它运行,它将为任务栏添加一些个性等等.

我经常使用以下内容为我的HTA添加一些魅力.

<hta:application icon="magnify.exe" />
Run Code Online (Sandbox Code Playgroud)

我不相信可以使用库中的图标,但只需在资源管理器中打开System32并将其更改为图标视图,看看是否有任何图标可以让您满意.


Dio*_*ane 6

我记得很久以前见过这个:

<img src="data:image/gif;base64,R0lGODlhEAAOALMAAOazToeHh0tLS/7LZv/0jvb29t/f3//Ub//ge8WSLf/rhf/3kdbW1mxsbP//mf///yH5BAAAAAAALAAAAAAQAA4AAARe8L1Ekyky67QZ1hLnjM5UUde0ECwLJoExKcppV0aCcGCmTIHEIUEqjgaORCMxIC6e0CcguWw6aFjsVMkkIr7g77ZKPJjPZqIyd7sJAgVGoEGv2xsBxqNgYPj/gAwXEQA7"width="16" height="14" alt="embedded folder icon">
Run Code Online (Sandbox Code Playgroud)

我自己从未尝试过.

  • 这是一个 dataURL,这将是一个很好的解决方案,除了 IE 在版本 8 之前不支持它们。 (2认同)