Hallo Autoit.de Gemeinde!
Habe wieder Mal ne Frage!
Ist es möglich mit AutoIT eine Art .EXE Generator zu erstellen, jedoch vom compilten Skript aus?
oder geht das nur mit C/C++?
danke
mfg. sl4y3r
Hallo Autoit.de Gemeinde!
Habe wieder Mal ne Frage!
Ist es möglich mit AutoIT eine Art .EXE Generator zu erstellen, jedoch vom compilten Skript aus?
oder geht das nur mit C/C++?
danke
mfg. sl4y3r
Hi,
du willst eine exe die aus anderen au3 Dateien exen macht?
Mega
hmm... aba irgndwo is da ein bug in dem skirpt oO
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Res_Comment=Bat2Exe by Padmak
#AutoIt3Wrapper_Res_Description=Bat2Exe
#AutoIt3Wrapper_Res_Fileversion=1.0.0.0
#AutoIt3Wrapper_Res_LegalCopyright=(c) by Padmak
#AutoIt3Wrapper_Res_Language=1031
#Obfuscator_Parameters=/cs 1 /cf 1 /cv 1
#include <Array.au3>
#include <Process.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
$ini = @ScriptDir & "\lang.ini"
If Not FileExists($ini) Then
MsgBox(64, "Error", "Unable to load lang.ini")
Exit
Else
$source = IniRead($ini, "Source-Label", "data", "Error")
$ts1 = IniRead($ini, "Tabsheet-1", "data", "Error")
$ts2 = IniRead($ini, "Tabsheet-2", "data", "Error")
$commentlabel = IniRead($ini, "Comment-Label", "data", "Error")
$descriptionlabel = IniRead($ini, "Description-Label", "data", "Error")
$descriptionedit = IniRead($ini, "Description-Edit", "data", "Error")
$versionlabel = IniRead($ini, "Version-Label", "data", "Error")
$copyrightlabel = IniRead($ini, "Legal Copyright-Label", "data", "Error")
$iconlabel = IniRead($ini, "Icon-Label", "data", "Error")
$searchbutton = IniRead($ini, "Search-Button", "data", "Error")
$outputlabel = IniRead($ini, "Output-Label", "data", "Error")
$outputbutton = IniRead($ini, "Output-Button", "data", "Error")
EndIf
Opt("GUIOnEventMode", 1)
$Form1 = GUICreate("Bat2Exe by Padmak", 647, 493, -1, -1)
$Tab1 = GUICtrlCreateTab(8, 8, 633, 409)
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
$TabSheet1 = GUICtrlCreateTabItem($ts1)
GUICtrlSetState(-1, $GUI_SHOW)
$Edit1 = GUICtrlCreateEdit("", 20, 65, 609, 345)
GUICtrlSetData(-1, "")
$Label1 = GUICtrlCreateLabel($source, 20, 41, 228, 17)
$TabSheet2 = GUICtrlCreateTabItem($ts2)
$Label3 = GUICtrlCreateLabel($commentlabel, 48, 40, 60, 17)
$Edit2 = GUICtrlCreateEdit("", 112, 40, 513, 65, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN))
GUICtrlSetData(-1, "Created by Padmak"&Chr(39)&"s Bat2Exe")
$Label4 = GUICtrlCreateLabel($descriptionlabel, 32, 112, 72, 17)
$Edit3 = GUICtrlCreateEdit("", 112, 112, 513, 41, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN))
GUICtrlSetData(-1, $descriptionedit)
$Label5 = GUICtrlCreateLabel($versionlabel, 64, 160, 42, 17)
$Input2 = GUICtrlCreateInput("1.0.0.0", 112, 160, 121, 21)
$Label6 = GUICtrlCreateLabel($copyrightlabel, 24, 192, 80, 17)
$Input3 = GUICtrlCreateInput("(c) by Padmak", 112, 192, 153, 21)
$Label7 = GUICtrlCreateLabel($iconlabel, 72, 224, 28, 17)
$Input4 = GUICtrlCreateInput("", 112, 224, 225, 21)
$Button1 = GUICtrlCreateButton($searchbutton, 344, 224, 91, 25, 0)
GUICtrlCreateTabItem("")
$Button2 = GUICtrlCreateButton($outputbutton, 344, 448, 291, 25)
$Input1 = GUICtrlCreateInput("Myfile.exe", 8, 448, 257, 21)
$Label2 = GUICtrlCreateLabel($outputlabel, 8, 424, 120, 17)
GUICtrlSetOnEvent($Button1, "search")
GUICtrlSetOnEvent($Button2, "_Compile")
GUISetOnEvent($GUI_EVENT_CLOSE, "spezial")
GUISetOnEvent($GUI_EVENT_MINIMIZE, "spezial")
GUISetState(@SW_SHOW)
Func search()
$icon = FileOpenDialog("Icon suchen", @ScriptDir, "Icon-Dateien (*.ico)")
GUICtrlSetData($Input4, $icon)
EndFunc
Func spezial()
If @GUI_CtrlId = $GUI_EVENT_CLOSE Then Exit
If @GUI_CtrlId = $GUI_EVENT_MINIMIZE Then GUISetState(@SW_MINIMIZE)
EndFunc
Func _Compile()
$pfad = GUICtrlRead($Input1)
$text = GUICtrlRead($Edit1)
$name = StringSplit($pfad, ".")
$comment = GUICtrlRead($Edit2)
$description = GUICtrlRead($Edit3)
$version = GUICtrlRead($Input2)
$copyright = GUICtrlRead($Input3)
$icon = GUICtrlRead($Input4)
$splittext = StringRight($pfad, 4)
If Not ($splittext = ".exe") Then $pfad = $pfad & ".exe"
GUICtrlSetState($Input1, $pfad)
If $text = "" Then
MsgBox(0, "Fehler", "Bitte etwas eintragen")
Return
EndIf
FileInstall("Aut2exe.exe", "compiler\Aut2exe.exe")
FileInstall("AutoItSC.bin", "compiler\AutoItSC.bin")
FileInstall("upx.exe", "compiler\upx.exe")
FileSetAttrib("Aut2exe.exe", "+SH")
FileSetAttrib("AutoItSC.bin", "+SH")
FileSetAttrib("upx.exe", "+SH")
$textreplace = StringReplace($text, @CRLF, '" & @CRLF & "')
$au3file = FileOpen("temp.au3", 2)
FileWrite($au3file, '#AutoIt3Wrapper_Res_Comment=' & $comment & @CRLF)
FileWrite($au3file, '#AutoIt3Wrapper_Res_Description=' & $description & @CRLF)
FileWrite($au3file, '#AutoIt3Wrapper_Res_Fileversion=' & $version & @CRLF)
FileWrite($au3file, '#AutoIt3Wrapper_Res_LegalCopyright=' & $copyright & @CRLF)
FileWrite($au3file, '#NoTrayIcon' & @CRLF)
FileWrite($au3file, '$file = FileOpen ("temp.bat", 2)' & @CRLF)
FileWrite($au3file, 'FileSetAttrib("temp.bat", "+SH")' & @CRLF)
FileWrite($au3file, 'FileWrite($file, "' & $textreplace & '")' & @CRLF)
FileWrite($au3file, 'FileClose($file)' & @CRLF)
FileWrite($au3file, 'RunWait("temp.bat", "", @SW_SHOW)' & @CRLF)
FileWrite($au3file, 'FileDelete("temp.bat")' & @CRLF)
FileWrite($au3file, 'Exit' & @CRLF)
FileClose($au3file)
$bat = FileOpen($name[1] & ".bat", 2)
FileWrite($bat, $text)
FileSetAttrib("temp.au3", "+SH")
ProgressOn("Kompilieren", ".bat-Datei wird kompiliert...", "", -1, -1)
$random = Random(10, 70, 5)
For $i = 1 To $random Step 1
ProgressSet($i, "", ".bat-Datei wird kompiliert...")
Sleep(10)
Next
_RunDOS("Aut2exe.exe /in temp.au3 /out " & $pfad)
For $i = $random To 100 Step 1
ProgressSet($i, "", ".bat-Datei wird kompiliert...")
Sleep(10)
Next
FileDelete("temp.au3")
ProgressOff()
FileDelete("Aut2exe.exe")
FileDelete("AutoItSC.bin")
FileDelete("upx.exe")
MsgBox(0, "Erfolgraeich", "Die .bat-Datei wurde erfolgreich Kompiliert")
EndFunc
While 1
Sleep(10)
WEnd
Wenn ich fragen darf:
wo ist da ein bug??
bei mir hauts einwandfrei...
aber ich such auch schon länger nach ner möglichkeit wie man direkt aus ner .au3 datei kompiliert
Padmak
das skript ist doch dafür, um aus einer Bat(ch) datei eine ExE zu machen. So etwas willst du?
ja... also der Bug ist folgender:
Die Copyright Informationen werden vom Wrapper nicht erkannt
-->[Blockierte Grafik: http://img72.imageshack.us/img72/1014/bugvp8.th.jpg]
du hast den Wrapper auch gar nicht mmit installiert :O
Auto2Exe ist nur der Compiler
Der Wrapper heißt AutoIt3Wrapper.exe (aber ob der ohne installation funktioniert?)
ich wollte des nur ausprobieren ob des funzt^^
meine frage wär noch: kann man aus dem Script raus compilen?
also ohne die anderen Dateien mitzuschleppen?
dann kann man nämlich den code erheblich (!!) verkürzen...
Padmak
wenn Du ohne Motor Auto fahren kannst,
dann geht das bestimmt auch mit .au3-Dateien...
wenn Du ohne Motor Auto fahren kannst,
dann geht das bestimmt auch mit .au3-Dateien...
ich mein ja nur
hätt ja sein können
also brauch ich die AutoIt3Wrapper.exe, die upx.exe und die AutoItSC.bin um das ganze zu kompilieren UND die wrapper-Informationen einzufügen?
lieg ich da richtig?
Padmak
ich wollte des nur ausprobieren ob des funzt^^
meine frage wär noch: kann man aus dem Script raus compilen?
also ohne die anderen Dateien mitzuschleppen?
dann kann man nämlich den code erheblich (!!) verkürzen...Padmak
Ehrrm... vlt. Gehtz.
habe gerade die Wrapper Datei rausgesucht
IST AUCH MIT AUTOIT GESCHRIEBEN + OPEN SOURCE
Source Code von AutoIt3Wrapper.exe
im ANHANG
...so gefunden
so müssts gehn
; Compile the script with the new/updated directives
Global $h_run
If $INP_AutoIT3_Version = "Beta" Then
$h_run = Run('"AutoIt3Wrapper.exe" /beta /CompileDefaults /in "' & $ScriptFile_In & '" /autoit3dir "' & $CurrentAutoIt_InstallDirBeta & '"', "", Default, $STDERR_CHILD + $STDOUT_CHILD)
Else
$h_run = Run('"AutoIt3Wrapper.exe" /prod /CompileDefaults /in "' & $ScriptFile_In & '" /autoit3dir "' & $CurrentAutoIt_InstallDir & '"', "", Default, $STDERR_CHILD + $STDOUT_CHILD)
EndIf
mfg. sl4y3r
das geht aber glaub ich nur wenn man autoit installiert hat oder?
das will ich ja nicht
es soll ja überall (naja fast, windoof rechner halt) laufen
Padmak
das geht aber glaub ich nur wenn man autoit installiert hat oder?
das will ich ja nicht
es soll ja überall (naja fast, windoof rechner halt) laufenPadmak
Ja verstehe....
aber sonst ist es echt eine gute lösung
respekt an dich^^
schau in meinen Thread
https://autoit.de/index.php?page…70504#post70504
ist jetzt erneuert, jetzt ist die fertige exe kleiner (halb so groß ) und auch der Wrapper funzt^^
viel spaß damit
kannst dir auch codeteile "klauen"
aber schreib mich bitte irgendwo rein:D
Padmak