Deutsches AutoHotkey Homepage AutoHotkey Community
Wir helfen uns gegenseitig aus der Patsche
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Resource Hacker (für Custom-Icons)

 
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Tooltime
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1867
Wohnort: Österreich

BeitragVerfasst am: Fr Sep 08, 2006 2:23 pm    Titel: Resource Hacker (für Custom-Icons) Antworten mit Zitat

Es wird immer wieder gefragt wie man Icons in seine Scripts einbinden kann.
Die einfachste Methode für kompilierte Scripts ist diese dem AHK2Exe-Compiler im AutohotkeySC.bin zu servieren.

Dies wird mit dem ResHacker gemacht.

Als kleine Hilfe habe ich ein Script erstellt mit dem das jetzt vollautomatisch geschieht. Man muss es nur mit den richtigen Icon-Files und dem Pfad zum ResHacker füttern.
Die letzte Einstellung wird automatisch beim Start des Programmes geladen, man kann allerdings auch andere Konfigurationen erstellen (um mehrere Projekte zu verwalten z.b.).
Die Settings werden immer in einem Unterordner namens "Settings" erstellt (der Ordner muss vor dem ersten Programmstart selbst angelegt werden).
Leergelassene Icons werden ignoriert und nicht ersetzt.

Das "Version-File" kann man anfangs getrost ignorieren.
Code:
Gui, Add, GroupBox, section x10 y10 w400 h120, Icons
AddControlGroup(10, 20, "Main-Icon", "Main_Icon", "Select_MainIcon")
AddControlGroup(0, 25, "Suspend-Icon", "Suspend_Icon", "Select_SuspendIcon")
AddControlGroup(0, 25, "Pause-Icon", "Pause_Icon", "Select_PauseIcon")
AddControlGroup(0, 25, "Suspend-Pause-Icon", "Suspend_Pause_Icon", "Select_Suspend_Pause_Icon")

Gui, Add, GroupBox, section x10 y140 w400 h75, Diverses
AddControlGroup(10, 20, "Version-File", "Version_File", "Select_VersionFile")
AddControlGroup(0, 25, "ResHacker-Pfad", "ResHacker_Path", "Select_ResHacker_Path")

Gui, Add, GroupBox, section x10 y225 w400 h55, Aufgaben
Gui, Add, Button, xs+10 ys+20 h25 w80 section gHack_Resource Default, Hack It!
Gui, Add, Button, xs+100 ys+0 h25 w80 section gLoad_Previous, Load Previous
Gui, Add, Button, xs+100 ys+0 h25 w80 section gLoad_Setting, Load Setting
Gui, Add, Button, xs+100 ys+0 h25 w80 section gSave_Setting, Save Setting
Gui, Show, , Res-Editor
Load_Previous:
LoadSettings("Previous.cfg")
return

Load_Setting:
FileSelectFile, SettingFile, 1, %A_ScriptDir%\Settings, Bitte Setting-File wählen!, Settings (*.cfg)
SplitPath, SettingFile, SettingFile
LoadSettings(SettingFile)
return

Save_Setting:
Gui, Submit, NoHide
;Settings werden immer im Settings-Ordner gespeichert (unabhängig von der Pfadangabe im Dialog)
FileSelectFile, SettingFile, S, %A_ScriptDir%\Settings, Bitte Dateinamen für neue Settings angeben (Pfadangaben bleiben wirkungslos), Settings (*.cfg)
SplitPath, SettingFile, , , , SettingFile      
SettingFile = %SettingFile%.cfg
SaveSetting(SettingFile, "Icons", "Main-Icon", Main_Icon)
SaveSetting(SettingFile, "Icons", "Suspend-Icon", Suspend_Icon)
SaveSetting(SettingFile, "Icons", "Pause-Icon", Pause_Icon)
SaveSetting(SettingFile, "Icons", "Suspend-Pause-Icon", Suspend_Pause_Icon)
SaveSetting(SettingFile, "Diverses", "Version File", Version_File)
SaveSetting(SettingFile, "Diverses", "ResHacker Path", ResHacker_Path)
return


AddControlGroup(xs, ys, Name, Var, Label)
{
   global
   Gui, Add, Text, xs%xs% ys%ys% section, %Name%
   Gui, Add, Edit, xs+110 ys-3 w210 v%Var%
   Gui, Add, Button, xs+325 ys-4 g%Label% -TabStop, Select...
}

SaveSetting(File, Section, Key, Var)
{
   IniWrite, %Var%, %A_ScriptDir%\Settings\%File%, %Section%, %Key%
}

LoadSettings(File)
{
   ReadKey(File, "Icons", "Main-Icon", "Main_Icon")
   ReadKey(File, "Icons", "Suspend-Icon", "Suspend_Icon")
   ReadKey(File, "Icons", "Pause-Icon", "Pause_Icon")
   ReadKey(File, "Icons", "Suspend-Pause-Icon", "Suspend_Pause_Icon")
   ReadKey(File, "Diverses", "Version File", "Version_File")
   ReadKey(File, "Diverses", "ResHacker Path", "ResHacker_Path")
}

ReadKey(File, Section, Key, Var)
{
   global
   IniRead, %Var%, %A_ScriptDir%\Settings\%File%, %Section%, %Key%
   if %Var% = Error
      %Var% =
   GuiControl, , %Var%, % %Var%
}

Select_MainIcon:
FileSelectFile, Main_Icon, 1, C:\, Bitte Main-Icon wählen!, Icons (*.ico)
GuiControl, , Main_Icon, %Main_Icon%
return


Select_SuspendIcon:
FileSelectFile, Suspend_Icon, 1, C:\, Bitte Suspend-Icon wählen!, Icons (*.ico)
GuiControl, , Suspend_Icon, %Suspend_Icon%
return


Select_PauseIcon:
FileSelectFile, Pause_Icon, 1, C:\, Bitte Pause-Icon wählen!, Icons (*.ico)
GuiControl, , Pause_Icon, %Pause_Icon%
return


Select_Suspend_Pause_Icon:
FileSelectFile, Suspend_Pause_Icon, 1, C:\, Bitte Suspend-Pause Icon wählen!, Icons (*.ico)
GuiControl, , Suspend_Pause_Icon, %Suspend_Pause_Icon%
return


Select_VersionFile:
FileSelectFile, Version_File, 1, C:\, Bitte Versions-Datei wählen!, Version-Ressource (*.res)
GuiControl, , Version_File, %Version_File%
return


Select_ResHacker_Path:
FileSelectFile, ResHacker_Path, 1, C:\, Bitte ResHacker.exe wählen!, ResHacker.exe (ResHacker.exe)
GuiControl, , ResHacker_Path, %ResHacker_Path%
return


GuiClose:
ExitApp



Hack_Resource:
Gui, Submit, NoHide

SaveSetting("Previous.cfg", "Icons", "Main-Icon", Main_Icon)
SaveSetting("Previous.cfg", "Icons", "Suspend-Icon", Suspend_Icon)
SaveSetting("Previous.cfg", "Icons", "Pause-Icon", Pause_Icon)
SaveSetting("Previous.cfg", "Icons", "Suspend-Pause-Icon", Suspend_Pause_Icon)
SaveSetting("Previous.cfg", "Diverses", "Version File", Version_File)
SaveSetting("Previous.cfg", "Diverses", "ResHacker Path", ResHacker_Path)


;AHK-Pfad auslesen
RegRead, AHK_Path, HKEY_LOCAL_MACHINE, Software\AutoHotkey\, InstallDir

IfNotExist, %AHK_Path%\Compiler\AutoHotkeySC.bin
{
   msgbox, 262160, Fehler, Keine Autohotkey-Installation gefunden!, 5
   ExitApp
}

;Backup der alten Datei anlegen (bereits vorhandene Backups werden nicht überschrieben)
FileCopy, %AHK_Path%\Compiler\AutoHotkeySC.bin, %AHK_Path%\Compiler\AutoHotkeySC.bak


;Icons werden für alle OS ausgetauscht (XP verwendet 32-bit, Win98 16-bit)
if Main_Icon !=
{
  RunWait, %ResHacker_Path% -addoverwrite %AHK_Path%\Compiler\AutoHotkeySC.bin`, %AHK_Path%\Compiler\AutoHotkeySC.bin`, %Main_Icon%`, icon`,159`,
  RunWait, %ResHacker_Path% -addoverwrite %AHK_Path%\Compiler\AutoHotkeySC.bin`, %AHK_Path%\Compiler\AutoHotkeySC.bin`, %Main_Icon%`, icon`,228`,
}

if Suspend_Icon !=
{
  RunWait, %ResHacker_Path% -addoverwrite %AHK_Path%\Compiler\AutoHotkeySC.bin`, %AHK_Path%\Compiler\AutoHotkeySC.bin`, %Suspend_Icon%`, icon`,206`,
  RunWait, %ResHacker_Path% -addoverwrite %AHK_Path%\Compiler\AutoHotkeySC.bin`, %AHK_Path%\Compiler\AutoHotkeySC.bin`, %Suspend_Icon%`, icon`,229`,
}

if Pause_Icon !=
   RunWait, %ResHacker_Path% -addoverwrite %AHK_Path%\Compiler\AutoHotkeySC.bin`, %AHK_Path%\Compiler\AutoHotkeySC.bin`, %Pause_Icon%`, icon`,207`,

if Suspend_Pause_Icon !=
   RunWait, %ResHacker_Path% -addoverwrite %AHK_Path%\Compiler\AutoHotkeySC.bin`, %AHK_Path%\Compiler\AutoHotkeySC.bin`, %Suspend_Pause_Icon%`, icon`,208`,

if Version_File !=
    RunWait, %ResHacker_Path% -addoverwrite %AHK_Path%\Compiler\AutoHotkeySC.bin`, %AHK_Path%\Compiler\AutoHotkeySC.bin`, %Version_File%`, VersionInfo`,1`,

FileSetTime, , %AHK_Path%\Compiler\AutoHotkeySC.bin, M
msgbox, 262208, Fertig!, Aufgabe abgeschlossen!, 5
return


Um auf das Version-File zurückzukommen:
Man kann den ResHacker auch manuell starten und da das AutoHotkeySC.bin-File laden.
Geht man nun auf "Version Info" und dort auf "1" und "1033" erscheinen mehrere Datei-Informationen wie die Version. Standardmäßig wird für eine mit AHK compilierte EXE als FileVersion die AHK-Version eingetragen.
Man kann diese Werte hier aber Klartext ändern und neu in die Datei compilieren um seinen Programmen abfragbare Versionen zuzuweisen.
Anschließend kann man diese auch exportieren (im Menü "Action" "Save Resource as a *.res file"). Wenn man diesen Pfad dann im Tool angibt werden diese Informationen wieder mit einkompiliert.
Ich werde versuchen ob man diese auch editieren kann damit man die Datei nicht nachträglich noch einmal manuell ändern muss!

Icons weren auf ähnliche Weise manuell ausgetauscht:
Einfach im Menü "Action" auf "Replace Icon". Man wählt die Icon-Datei, welches Icon ersetzt werden soll und drückt auf "Replace"

Ich hoffe ich konnte etwas weiterhelfen und stehe für Fragen zur Verfügung soweit ich sie selbst beantworten kann!

Thalon

P.S.: Ich habs unter Tooltime erstellt, da es um Fragen zum ResHacker geht und weniger um das Script an sich.
_________________
Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1867
Wohnort: Österreich

BeitragVerfasst am: Di Sep 12, 2006 11:29 am    Titel: Antworten mit Zitat

Wie würden Sie diesen Artikel beurteilen?:
[] Sehr nützlich
[] Nützlich
[] Brauchbar
[] Geht so
[] Unsinn

Bitte geben Sie hier einen Kommentar dazu ab:
___________________________________________________________
___________________________________________________________
___________________________________________________________
___________________________________________________________
___________________________________________________________

Thalon, der sich über Feedback freut nachdem er um diesen Artikel gebeten wurde
_________________
Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
BoBo
Gast





BeitragVerfasst am: Do Sep 14, 2006 7:41 am    Titel: Antworten mit Zitat

BoBo, nicht faul gewesen, schnell den Edding zur Hand genommen und fleissig Kreuzchen gemacht. Drücke auf 'Absenden' aber nix passiert ... MadLaughing
Nach oben
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1867
Wohnort: Österreich

BeitragVerfasst am: Do Sep 14, 2006 8:08 am    Titel: Antworten mit Zitat

Danke für den Kommentar -.-
Ich weiß jetzt schon warum ich größere Sachen nur im englischen Forum reinstelle (wo auch das Scriptupdate gelandet ist).

Thalon
_________________
Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
BoBo
Gast





BeitragVerfasst am: Do Sep 14, 2006 1:57 pm    Titel: Antworten mit Zitat

Zitat:
Wie würden Sie diesen Artikel beurteilen?:
[x] Sehr nützlich
[x] Nützlich
[x] Brauchbar
[x] Geht so
[x] Unsinn

Bitte geben Sie hier einen Kommentar dazu ab:
Normalerweise kann ich ja 'Fishing for compliments' nich leiden, aber ich war ja schließlich derjenige
der dein Tutorial angefragt hat - und da gebietet es der Anstand deinem Ersuchen nachzukommen._
__________________________________________________________________________________
Dein Tutorial ist Spitze. Und sollte der Tag kommen das ich es benötige, werde ich auch sofort ne__
Kerze spenden. Ährlich. _____________________________________________________________ Cool
Nach oben
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1867
Wohnort: Österreich

BeitragVerfasst am: Do Sep 14, 2006 2:12 pm    Titel: Antworten mit Zitat

Danke Wink
Normal "fische" ich auch nicht nach Komplimenten, aber da du das Tutorial schon erbeten hast wollte ich fragen ob die gewünschte Info auch drin war Wink

Und weils so schön war gibts hier auch immer die letzte Version (gab inzwischen schon einige Updates). Diese allerdings nur mehr in Englisch und die bestehenden Config-Files können nicht mehr gelesen werden.

Thalon
_________________
Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
fredchf



Anmeldedatum: 18.09.2006
Beiträge: 666
Wohnort: Deutschland

BeitragVerfasst am: Mi Okt 11, 2006 10:39 pm    Titel: Antworten mit Zitat

hallo thalon,
hast dir große mühe gemacht,aber ich schätze den meisten(z.b.mir) reicht es eine unkompilierte version zum laufen zu bringen und zu pflegen.darum wird sich kaum einer mit hintergründen dazu beschäftigen. Confused
aber gut zu wissen das du sie kennst!! Rolling Eyes

Mit Freundlichen Grüßen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Methusalem



Anmeldedatum: 23.12.2006
Beiträge: 9
Wohnort: Graz

BeitragVerfasst am: Fr Dez 29, 2006 2:14 pm    Titel: Antworten mit Zitat

Thalon hat Folgendes geschrieben:
Wie würden Sie diesen Artikel beurteilen?:
[] Sehr nützlich
[x] Nützlich
[] Brauchbar
[] Geht so
[] Unsinn

Bitte geben Sie hier einen Kommentar dazu ab:

Da ich erst seit kurzem auf ahk kam, habe ich auch erst heute den IconChanger entdeckt. Tolle Sache! Very Happy (Habe update 7 gefunden; das letzte?) - Leider waren auf meinem Bildschirm die Beschriftungen (insbesondere die Buttons im Feld Tasks) schwer zu lesen (Platzmangel). Verwende Wide Screen, 1600x1050, große Schrift. Habe alles angepaßt, funzt nun bestens. Dabei habe ich einiges gelernt (das hab' ich auch bitter nötig! Sad).
Zum ausgiebigen Testen fehlt mir momentan die Zeit, freue mich aber schon darauf!

Danke für dieses tolle Script!

Mit besten Wünschen für's neue Jahr
Methusalem_____________________________________________
___________________________________________________________
___________________________________________________________

Thalon, der sich über Feedback freut nachdem er um diesen Artikel gebeten wurde
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Tooltime Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de