 |
AutoHotkey Community Wir helfen uns gegenseitig aus der Patsche
|
| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
Thalon
Anmeldedatum: 25.10.2005 Beiträge: 1867 Wohnort: Österreich
|
Verfasst am: Fr Sep 08, 2006 2:23 pm Titel: Resource Hacker (für Custom-Icons) |
|
|
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 |
|
 |
Thalon
Anmeldedatum: 25.10.2005 Beiträge: 1867 Wohnort: Österreich
|
Verfasst am: Di Sep 12, 2006 11:29 am Titel: |
|
|
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 |
|
 |
BoBo Gast
|
Verfasst am: Do Sep 14, 2006 7:41 am Titel: |
|
|
BoBo, nicht faul gewesen, schnell den Edding zur Hand genommen und fleissig Kreuzchen gemacht. Drücke auf 'Absenden' aber nix passiert ...   |
|
| Nach oben |
|
 |
Thalon
Anmeldedatum: 25.10.2005 Beiträge: 1867 Wohnort: Österreich
|
Verfasst am: Do Sep 14, 2006 8:08 am Titel: |
|
|
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 |
|
 |
BoBo Gast
|
Verfasst am: Do Sep 14, 2006 1:57 pm Titel: |
|
|
| 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. _____________________________________________________________ |
|
|
| Nach oben |
|
 |
Thalon
Anmeldedatum: 25.10.2005 Beiträge: 1867 Wohnort: Österreich
|
Verfasst am: Do Sep 14, 2006 2:12 pm Titel: |
|
|
Danke
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
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 |
|
 |
fredchf
Anmeldedatum: 18.09.2006 Beiträge: 666 Wohnort: Deutschland
|
Verfasst am: Mi Okt 11, 2006 10:39 pm Titel: |
|
|
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.
aber gut zu wissen das du sie kennst!!
Mit Freundlichen Grüßen |
|
| Nach oben |
|
 |
Methusalem
Anmeldedatum: 23.12.2006 Beiträge: 9 Wohnort: Graz
|
Verfasst am: Fr Dez 29, 2006 2:14 pm Titel: |
|
|
| 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! (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! ).
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 |
|
 |
|
|
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
|