Vraag Kan ik een pictogram inbedden in een .hta-bestand?


Ik heb een HTML-toepassing (hta-bestand) geschreven en vraag me af of er een manier is om een ​​pictogram in te voegen in het hta-bestand zelf.

Ik heb html-e-mails met ingesloten grafische bestanden gezien, is er een manier om dit te doen met html-toepassingen en pictogrammen?

HTA-bestanden hebben een HTA: APPLICATION-tag waarmee u een pictogram kunt opgeven, maar ik wil slechts één bestand hebben om te downloaden. Ik wil geen extern pictogrambestand hebben. Is dit mogelijk?

Meer informatie over hta-bestanden hier: HTA-bestanden.


12
2017-10-06 20:14


oorsprong


antwoorden:


Ik heb een hack gevonden om het pictogram in te stellen.

Maak een pictogrambestand klaar icon.ico en een hta-bestand source.hta met de volgende inhoud:

<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>

Open een opdrachtprompt en typ:

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

Dat zal het pictogram en hta samenvoegen tot een enkel bestand.

In mijn testcase heeft Internet Explorer de pictogramgegevens overgeslagen en de HTML correct weergegeven.

Het pad van het pictogram wordt vervolgens met javascript ingesteld op dat van het .hta-bestand en het pictogram wordt geladen.

Ik heb dit getest in Windows XP SP3, Internet Explorer 8.


20
2017-12-09 03:26



Overweeg een van de toepassingen in System32 te gebruiken voor uw pictogram.

Dit zal het pictogram voor een HTA-bestand op het bureaublad niet veranderen, maar als het eenmaal wordt uitgevoerd, zal het enige persoonlijkheid toevoegen aan de taakbalk en dergelijke.

Ik gebruik vaak het volgende om een ​​beetje charme toe te voegen aan mijn HTA's.

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

Ik geloof niet dat het mogelijk is om iconen uit een bibliotheek te gebruiken, maar open System32 in Explorer en verander het in de pictogramweergave om te zien of er pictogrammen zijn die je helemaal leuk vinden.


9
2017-07-16 16:59



Ik herinner me het zien deze een tijd geleden:

<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">

Ik heb het zelf echter nog nooit geprobeerd.


5
2017-10-06 20:29



Ik weet dat het niet precies is wat het OP heeft gevraagd, maar in plaats van een pictogram in te sluiten in de .hta, hebt u een URL van een pictogrambestand overwogen? Veel websites hebben een websitepictogram favicon.ico welke werkt in HTA-applicaties:

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

Dit geeft u onbeperkte keuzes in pictogrammen zonder dat u er een hoeft te implementeren met uw HTA-toepassing.


4
2018-02-21 03:41



Heel misschien ... er is een manier om afbeeldingen direct in een html-bestand in te sluiten dat hier mogelijk voor werkt http://www.sveinbjorn.org/news/2005-11-28-02-39-23


3
2017-10-06 20:25



Een andere mogelijke oplossing, maar niet volledig in overeenstemming met de exacte frasering van de vraag, zou zijn om de HTA om te zetten in een .EXE-bestand met behulp van de "HTAedit" -applicatie (http://www.htaedit.com/).

Ze bieden een proefversie die volledig functioneel is (slechts enkele startup zeurschermen en geen geschiedenis / recente bestanden) zonder de creatie van .EXE van de HTA-bron te blokkeren, zonder tijdslimiet.

U kunt vervolgens uw pictogram met de ICON = "myicon.ico" -instructie in het HTA-headerblok declareren en vervolgens "compileren" (naar mijn mening is het waarschijnlijk eerder een packager dan een echte compiler, maar dat is hier niet het punt) het vraagt ​​u om aanvullende bronbestanden. Als uw pictogrambestand daar nog niet wordt vermeld, voegt u het gewoon toe aan de lijst, "et voilà!". Je krijgt een leuk uitvoerbaar bestand met zijn versienummer en ingesloten icoon.

Eigenlijk heb ik dat gedaan met de tools van Microsoft Scripting Guys (HTA_HELPOMATIC.HTA en SCRIPTOMATIC.HTA): ik heb ze zojuist gewijzigd in EXE door een pictogram toe te voegen van een% windir% \ system32 exe / dll. Ik vond dat het overeenkwam met min of meer de betekenis van de gereedschappen, en het werkte perfect.

Op de vlucht is het misschien draagbaarder dan alleen het insluiten van het pictogram in de HTA (HTAedit-tool lijkt in staat om W7 / 64-uitvoerbare bestanden te produceren, maar ik heb het niet op die manier getest, ik zit nog steeds onder XP32-SP2 ...) en het houdt uw bron-hta-bestand leesbaar en bewerkbaar door een teksteditor.


3
2018-05-01 19:45



IE biedt geen ondersteuning voor gegevens-URI's, dus u zult een extern bestand moeten gebruiken als u de img label.

Het enige dat ik kan bedenken is VML gebruiken, wat al bestaat sinds IE5. Het is een SVG-achtig vectorbeeldformaat dat inline kan worden gebruikt. Teken bijvoorbeeld iets met deze VML-editor en klik op "Code ophalen". Je kunt dat ploffen in je HTA. Ik ben niet op de hoogte van iets dat uw afbeelding rechtstreeks naar VML converteert, maar ik geloof dat er een manier is om vanuit sommige Office-producten naar VML te exporteren.


1
2017-10-08 18:08



Het is een nogal vergezocht antwoord, maar je kunt het pictogram insluiten als base64-gecodeerde XML in de HTA, dan JavaScript onload gebruiken en het pictogrambestand opslaan op een tijdelijke locatie. Het ActiveX-object MSXML.DomDocument kan base64-knooppunten coderen en decoderen.


1
2017-10-09 00:22



Zodra u een <iframe> of een ander HTML-dialoogvenster dat je toch nog meer wilt hebben. Je zult in de regel vinden dat .CSS- en .VBS-bestanden, los van de .HTA, het programmeren en ondersteunen een stuk gemakkelijker maken voor elke niet-triviale HTA.

Een alternatief om dit als "één EXE" te doen, is alles als een zichzelf uitpakkend archief of via IExpress in te pakken. Wanneer de gebruiker "uw programma uitvoert", extraheert het alles uit uw archief in een tijdelijke map en voert het item van uw keuze uit.

Er zijn alternatieven van derden zoals HTMLApp te.


1
2018-06-27 04:25



Een andere oplossing, maar niet volledig compatibel met de exacte frasering van de vraag, is om een ​​eenvoudige snelkoppeling te maken. Voor 64-bits systemen moet u het volgende invoeren:

doel: C: \ Windows \ SysWOW64 \ mshta.exe C: \ pad + bestandsnaam.hta

start in: C: \ Windows \ SysWOW64

U kunt het pictogram van de snelkoppeling handmatig wijzigen. De gebruiker kan de snelkoppeling naar de taakbalk slepen.

De uitbreiding van het hta-bestand is niet van belang voor mshta.exe. Dus als u het een aangepaste extensie geeft, worden de hta-bestanden weergegeven met het bijbehorende aangepaste pictogram.


0
2018-01-30 23:48