15

HTML アプリケーション (hta ファイル) を作成しましたが、hta ファイル自体にアイコン ファイルを埋め込む方法はないかと考えています。

グラフィック ファイルが埋め込まれた HTML メールを見たことがありますが、HTML アプリケーションやアイコンでこれを行う方法はありますか?

HTA ファイルにはアイコンを指定できる HTA:APPLICATION タグがありますが、ダウンロードするファイルは 1 つだけにしたいです。外部アイコン ファイルは必要ありません。これは可能ですか?

hta ファイルの詳細については、こちら: HTA ファイル.

4

11 に答える 11

22

アイコンを設定するためのハックを見つけました。

次の内容のアイコン ファイル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>

コマンド プロンプトを開き、次のように入力します。

copy /b icon.ico+source.hta iconapp.hta

これにより、アイコンと hta が 1 つのファイルに連結されます。

私のテスト ケースでは、Internet Explorer はアイコン データをスキップし、HTML を正しく表示しました。

アイコンのパスは、javascript を使用して .hta ファイル自体のパスに設定され、アイコンが読み込まれます。

Windows XP SP3、Internet Explorer 8 でこれをテストしました。

于 2009-12-09T03:26:11.640 に答える
9

System32 のアプリケーションの 1 つをアイコンに使用することを検討してください。

これにより、デスクトップ上の HTA ファイルのアイコンが変更されることはありませんが、実行されると、タスク バーなどに個性が追加されます。

私は、HTA にちょっとした魅力を加えるために、次のようなものをよく使用します。

<hta:application icon="magnify.exe" />

ライブラリのアイコンを使用できるとは思いませんが、エクスプローラーで System32 を開いてアイコン ビューに変更し、気になるアイコンがないかどうかを確認してください。

于 2009-07-16T16:59:55.923 に答える
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">

私自身は試したことはありませんが。

于 2008-10-06T20:29:47.643 に答える
4

OPが要求したものとまったく同じではないことはわかっていますが、にアイコンを埋め込む代わりに.hta、アイコンファイルへのURLを検討しましたか? 多くの Web サイトには、favicon.icoHTA アプリケーションで機能する Web サイト アイコンがあります。

<HTML>
<HEAD>
   <HTA:APPLICATION
       ID="oHTA"
       APPLICATIONNAME="myApp"
       ICON="http://stackoverflow.com/favicon.ico">
</HEAD>
<BODY SCROLL="no">
  Hello, World!
</BODY>
</HTML>

これにより、HTA アプリケーションでアイコンを展開する必要なく、アイコンの選択肢が無限に広がります。

于 2014-02-21T03:41:01.980 に答える
3

別の可能な解決策は、質問の正確な言い回しに完全には準拠していませんが、「HTAedit」アプリケーション(http://www.htaedit.com/)を使用してHTAを.EXEファイルに変換することです。

これらは、時間制限なしで、HTAソースからの.EXEの作成をブロックすることなく、完全に機能する(一部の起動時のナグ画面と履歴/最近のファイルがない)試用版を提供します。

次に、HTAヘッダーブロックのICON = "myicon.ico"ステートメントを使用してアイコンを宣言し、それが「コンパイル」されるときに(私の意見によれば、実際のコンパイラよりもパッケージャーである可能性が高いですが、ここでは重要ではありません)追加のリソースファイルを要求します。アイコンファイルがまだリストされていない場合は、「etvoilà!」というリストに追加してください。バージョン番号と埋め込みアイコンが付いた優れた実行可能ファイルが得られます。

実際、これはMicrosoft Scripting Guysツール(HTA_HELPOMATIC.HTAおよびSCRIPTOMATIC.HTA)で行ったことです。EXEで変更して、%windir%\ system32 exe/dllからアイコンを追加しました。ツール、そしてそれは完璧に機能しました。

実行時には、アイコンをHTAに埋め込むよりも移植性が高い可能性があります(HTAeditツールはW7 / 64実行可能ファイルを生成できるようですが、その方法ではテストしていません。まだXP32-SP2を使用しています...)また、ソースhtaファイルをテキストエディタで読み取りおよび編集できるようにします。

于 2012-05-01T19:45:12.027 に答える
3

おそらく...これで機能する可能性のあるHTMLファイルに画像を直接埋め込む方法がありますhttp://www.sveinbjorn.org/news/2005-11-28-02-39-23

于 2008-10-06T20:25:16.667 に答える
1

<>または他のHTMLダイアログが必要になるとすぐに、iframeとにかく追加のファイルが必要になります。一般に、.HTAとは別の.CSSファイルと.VBSファイルを使用すると、プログラミングが容易になり、重要なHTAのサポートもはるかに簡単になります。

これを「単一のEXE」として実行するための1つの代替方法は、すべてを自己解凍型アーカイブとして、またはIExpressを介してラップすることです。ユーザーが「プログラムを実行」すると、アーカイブから一時ディレクトリにすべてが抽出され、選択したアイテムが実行されます。

HTMLAppのようなサードパーティの代替手段もあります。

于 2009-06-27T04:25:16.380 に答える
1

これはかなり大げさな答えですが、アイコンを base64 でエンコードされた XML として HTA に埋め込み、JavaScript のオンロードを使用して、アイコン ファイルを一時的な場所に保存することができます。ActiveX オブジェクトMSXML.DomDocumentは、base64 ノードをエンコードおよびデコードできます。

于 2008-10-09T00:22:31.337 に答える
1

IE はデータ URI をサポートしていないため、 imgタグを使用する場合は外部ファイルを使用する必要があります。

私が考えることができる唯一のことは、IE5 から出回っている VML を使用することです。これは、インラインで使用できる SVG に似たベクター画像形式です。たとえば、この VML エディタを使用して何かを描画し、[コードを取得] をクリックします。それを HTA に追加できます。画像を直接 VML に変換する方法については知りませんが、一部の Office 製品から VML にエクスポートする方法があると思います。

于 2008-10-08T18:08:55.227 に答える
0

別の解決策は、質問の正確な言い回しに完全には準拠していませんが、簡単なショートカットを作成することです。64 ビット システムの場合は、次のように入力する必要があります。

ターゲット: C:\Windows\SysWOW64\mshta.exe C:\パス+ファイル名.hta

開始: C:\Windows\SysWOW64

ショートカットのアイコンを手動で変更できます。ユーザーはショートカットをタスクバーにドラッグできます。

hta ファイルの拡張子は、mshta.exe にとって重要ではありません。したがって、カスタム拡張子を指定すると、hta ファイルは対応するカスタム アイコンで表示されます。

于 2016-01-30T23:48:06.757 に答える