Mein Programm funktioniert zwar schon, ist aber nicht schön.
Wie kann ich es anstellen, dass der Resource Hacker nicht angezeigt wird und das klingeln aufhört?
Mein Code:
Spoiler anzeigen
#include
#include
#include
#include
#include
#include
Global $varProgName = "" , $varIcoName = ""
#Region ### START Koda GUI section ### Form=
$FormReplaceIcon = GUICreate("Replace icon", 352, 335, 440, 99)
GUISetBkColor(0xA0AAA0)
$Input1 = GUICtrlCreateInput("ResHacker.exe", 24, 40, 305, 21)
$Input2 = GUICtrlCreateInput("ChromeLoader.exe", 24, 112, 305, 21)
$Input3 = GUICtrlCreateInput("ICO.ico", 24, 176, 305, 21)
$Input4 = GUICtrlCreateInput("VideoChromeLoader.exe", 24, 248, 305, 21)
$lblHack = GUICtrlCreateLabel("Pfad zu Resource Hacker", 24, 24, 127, 17)
$lblProg = GUICtrlCreateLabel("Pfad zur Programm exe", 24, 96, 113, 17)
$lblIcon = GUICtrlCreateLabel("Pfad zum neuen Programm Icon", 24, 160, 155, 17)
$btnHttp = GUICtrlCreateButton("Jetzt herunterladen", 168, 72, 107, 17, $WS_GROUP)
$btnHackSuche = GUICtrlCreateButton("Suchen", 280, 72, 51, 17, $WS_GROUP)
$btnProgSuche = GUICtrlCreateButton("Suchen", 280, 144, 51, 17, $WS_GROUP)
$btnIconSuche = GUICtrlCreateButton("Suchen", 280, 208, 51, 17, $WS_GROUP)
$btnProg = GUICtrlCreateLabel("Name des neuen Programms", 24, 232, 140, 17)
$btnEnd = GUICtrlCreateButton("Abbrechen", 176, 280, 75, 25, $WS_GROUP)
$Button6 = GUICtrlCreateButton("Ausführen", 256, 280, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$path1TV = @ScriptDir & '\ResHacker\ResHacker.exe'
If Not FileExists ($path1TV) Then
GUICtrlSetData ($Input1,"Pfad zu Resource Hacker")
Else
GUICtrlSetData ($Input1,$path1TV)
EndIf
$path2TV = @ScriptDir & '\ChromeLoader.exe'
If Not FileExists ($path2TV) Then
GUICtrlSetData ($Input2,"ChromeLoader.exe")
Else
GUICtrlSetData ($Input2,$path2TV)
EndIf
$path3TV = @ScriptDir & '\ICO.ico'
If Not FileExists ($path3TV) Then
GUICtrlSetData ($Input3,"ICO.ico")
Else
GUICtrlSetData ($Input3,$path3TV)
EndIf
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $btnEnd
Exit
Case $btnHttp
$oIE = _IECreate ("http://cgi.zdnet.de/c/?s=32&t=http%3A%2F%2Fwww.zdnet.de%2Fwindows_system_verbessern_resource_hacker_download-39002345-30637-2.htm&dld_id=de0DKY")
Case $btnHackSuche
$message = "ResHacker.exe auszuwählen."
$varHack = FileOpenDialog($message, "%USERPROFILE%\Documents", "Progam Files (*.exe)", 1 + 2)
If @error Then
MsgBox(4096,"","Keine Datei ausgewählt")
Else
GUICtrlSetData ($Input1,$varHack)
$varHack = StringReplace($varHack, "|", @CRLF)
#cs ----------------------------------------------------------------------------
MsgBox(4096,""," Sie wählten " & $varHack)
#ce ----------------------------------------------------------------------------
EndIf
Case $btnProgSuche
$message = "Programm auszuwählen. (z.B. ChromeLoader.exe)"
$varProg = FileOpenDialog($message, "%USERPROFILE%\Documents", "Progam Files (*.exe)", 1 + 2 )
If @error Then
MsgBox(4096,"","Keine Datei ausgewählt")
Else
GUICtrlSetData ($Input2,$varProg)
$varProg = StringReplace($varProg, "|", @CRLF)
#cs ----------------------------------------------------------------------------
MsgBox(4096,""," Sie wählten " & $varHack)
#ce ----------------------------------------------------------------------------
EndIf
$varProgName = $varProg
Case $btnIconSuche
$message = "Neues Icon auszuwählen."
$varIcon = FileOpenDialog($message, "%USERPROFILE%\Documents", "Images (*.ico)", 1 + 2 )
If @error Then
MsgBox(4096,"","Keine Datei ausgewählt")
Else
GUICtrlSetData ($Input3,$varIcon)
$varIcon = StringReplace($varIcon, "|", @CRLF)
#cs ----------------------------------------------------------------------------
MsgBox(4096,""," Sie wählten " & $varHack)
#ce ----------------------------------------------------------------------------
EndIf
$varIcoName = $varIcon
Case $Button6
;-------------------------------------------------------------------------------------------------------------------------
If $varProgName = "" Then $varProgName = GUICtrlRead($Input2)
;MsgBox(4096,"",$varProgName )
If $varIcoName = "" Then $varIcoName = GUICtrlRead($Input3)
;MsgBox(4096,"",$varIcoName )
GUISetState (@SW_SHOW)
_ausfueren()
ExitLoop
;-------------------------------------------------------------------------------------------------------------------------
EndSwitch
WEnd
Func _ausfueren()
; Jede Zeile zum Ändern kopieren ; Der Standardwert ist als erstes angegeben
Opt("SendKeyDelay", 5) ; 5 msec
Opt("WinTitleMatchMode",1 - 2) ;1=vom Anfang, 2=enthält, 3=genau, 4=fortgeschritten, -1 bis -4=Groß-/Klein ignorieren
Opt("WinWaitDelay", 200) ; 250 msec
If Not FileExists ($varProgName) Then
MsgBox(4096,"Fehler"," Sie haben keine Progam File (*.exe) wählt!" )
;MsgBox(4096,"Fehler",$varProgName )
Exit
EndIf
If Not FileExists ($varIcoName ) Then
MsgBox(4096,"Fehler"," Sie haben keine Icon File (*.ico) wählt!" )
Exit
EndIf
Opt("WinTitleMatchMode", 2)
if not WinExists("Resource Hacker") Then
Run(GUICtrlRead ($Input1), "", @SW_MAXIMIZE )
EndIf
WinSetState("Resource_Hacker",'',@SW_ENABLE)
WinWaitActive ("Resource Hacker")
WinActivate("Resource_Hacker")
Send ("!f o")
WinWaitActive ("Open file containing resource ...")
Send (GUICtrlRead ($Input2))
Send ("{ENTER}")
WinWaitActive ("Resource Hacker")
Send ("!a i")
WinWaitActive ("Replace icon")
Send ("!o")
WinWaitActive ("Öffnen")
Send (GUICtrlRead ($Input3))
Send ("{ENTER}")
WinWaitActive ("Replace icon")
Send ("!r")
WinWaitActive ("Resource Hacker")
Send ("!f s")
Send ("!f x")
EndFunc
Für Antworten bin ich immer dankbar!
gabischatz