Hallo Leute
ich weiß nicht ob ihr das Problem kennt:
Ihr schreibt eine .bat-Datei und wollt sie weitergeben.
Nun wollt ihr aber nicht dass jemand euren Quelltext sieht
naja zumindestens ist es mir so gegangen bevor ich AutoIt konnte
und nun bin ich vorgestern wieder auf dieses Problem gestoßen und hab das auch gleich umgesetzt
rausgekommen ist das hier:
Spoiler anzeigen
#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 <EditConstants.au3>
#include <GUIConstantsEx.au3>
FileInstall("lang.ini", "lang.ini")
$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'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 ;==>search
Func spezial()
If @GUI_CtrlId = $GUI_EVENT_CLOSE Then Exit
If @GUI_CtrlId = $GUI_EVENT_MINIMIZE Then GUISetState(@SW_MINIMIZE)
EndFunc ;==>spezial
Func _Compile()
$pfad = GUICtrlRead($Input1)
$text = GUICtrlRead($Edit1)
$compilename = "~DF" & Random(1,999,1) & "D" & Random(1,999,1) & ".tmp"
$name = @TempDir & "\" & $compilename
$fertigname = StringSplit($pfad, ".exe", 1)
$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("AutoIt3Wrapper.exe", @TempDir & "\temp2.tmp")
FileSetAttrib(@TempDir & "\temp2.tmp", "+SH")
$textreplace = StringReplace($text, @CRLF, '" & @CRLF & "')
MsgBox(0, "", $textreplace)
$au3file = FileOpen($name, 2)
FileWrite($au3file, '#AutoIt3Wrapper_Res_Comment=' & $comment & " , .bat-Compiler made by Padmak" & @CRLF) ; Diese Zeile hier bitte NICHT verändern, meine informationen MÜSSEN drinstehen!!!
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 (@TempDir & "\temp.bat", 2)' & @CRLF)
FileWrite($au3file, 'FileSetAttrib(@TempDir & "\temp.bat", "+SH")' & @CRLF)
FileWrite($au3file, 'FileWrite($file, "' & $textreplace & '")' & @CRLF)
FileWrite($au3file, 'FileClose($file)' & @CRLF)
FileWrite($au3file, 'RunWait(@TempDir & "\temp.bat", @ScriptDir, @SW_SHOW)' & @CRLF)
FileWrite($au3file, 'FileDelete(@TempDir & "\temp.bat")' & @CRLF)
FileClose($au3file)
$bat = FileOpen($fertigname[1] & ".bat", 2)
FileWrite($bat, $text)
FileClose($bat)
FileSetAttrib(@TempDir & "\temp.tmp", "+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
Run(@ComSpec & " /C " & @TempDir & "\temp2.tmp /in " & $name & " /out " & $pfad & " /nopack", "", @SW_HIDE)
While 1
If WinExists("(1.10.1.14) Processing : " & $compilename) Then
WinKill("(1.10.1.14) Processing : " & $compilename)
Do
If Not ProcessExists("Aut2exe.exe") Then
ExitLoop
EndIf
Until ""
ExitLoop
EndIf
WEnd
For $i = $random To 100 Step 1
ProgressSet($i, "", ".bat-Datei wird kompiliert...")
Sleep(10)
Next
ProgressOff()
FileDelete($name)
FileDelete(@TempDir & "\temp2.tmp")
MsgBox(0, "Erfolgreich", "Die .bat-Datei wurde erfolgreich Kompiliert")
EndFunc ;==>_Compile
While 1
Sleep(10)
WEnd
Wundert euch nicht über das mit der lang.ini, ich wollte die Möglichkeit haben die Sprache zu verändern
außerdem wollte ich mal das IniRead-Konzept ausprobieren
So hier komplett alles:
Bat2Exe.rar
Padmak