Mit Autoit ein eigenen builder bauen?

  • Hi,
    Ich frage mich ob man mit Autoit auch Builder machen kann .
    Ich stell mir das so vor,
    man macht ein GUI. dort muss man bestimmt optionen auswählen
    diese optionen werden zu einer neuen exe compiled.
    und beim ausführen wirt dann ohne GUI nur diese optionen ausgeführt.

    geht sowas ?,
    freue mich auf eine Antwort MFG

  • HI! Also die Mühe kannst du dir eigentlich sparen, denn wenn Du dir einfach ne neure Version von Scite4Autoit3 oder so ähnlich loadest ist da ein GUIBuilder und ein Koda bei, der GUIBuilder ist in AutoIT gescriptet, also wenn du dass unbedingt machen willst einfach mal das neue Scite4Autoit downloaden dann kannnst du dir die au3 mal als Beispiel angucken! Autoit3\Scite\GUIBuilder ;)

    EDIT: Donload ist oben rechts im Forum!

    Einmal editiert, zuletzt von DjBasslord (8. April 2007 um 14:39)

  • Hi stimmt falsch verstnden (noch früh am morgen für mich bis 2 gepennt)
    Ja du musste dann die optinen, befehle was auch immer die exe machen soll erst mal in ne au3 speicher ungefähr so

    man bsp:

    Spoiler anzeigen
    [autoit]

    Func _create()
    ;$file ==> alles was in die .au3 soll
    If FileExists("Auto.au3") Then FileDelete("Auto.au3")
    $GUI_Height = GUICtrlRead($Input_GUI_Height)
    $GUI_Width = GUICtrlRead($Input_GUI_Width)
    $pic = StringSplit(_IniOut("Pic"),"\")
    $Button_Abstand = ($GUI_Height*0.15-GUICtrlRead($Input_Button_Height))/2
    $open = FileOpen("Auto.au3",2)
    $file = ';This Script is created by DjBasslord(Hubert Schüller)'&@CRLF
    $file &= 'FileInstall("'&_IniOut("Pic")&'",@TempDir&"\")'&@CRLF
    $file &= 'GUICreate("'&GUICtrlRead($Input_GUI_Name)&'",'&$GUI_Width&','&$GUI_Height&')'&@CRLF
    $file &= 'GUICtrlCreatePic(@TempDir&"\'&$pic[$pic[0]]&'",0,0,'&$GUI_Width&','&$GUI_Height*0.2&')'&@CRLF
    $file &= 'GUISetBkColor('&GUICtrlRead($input_GUI_BKColor)&')'&@CRLF
    $file &= 'GUICtrlCreateLabel("'&GUICtrlRead($Input_Start_Info)&'",10,'&$GUI_Height*0.2+10&','&$GUI_Width-20&','&$GUI_Height*0.6-20&')'&@CRLF
    $file &= 'GUICtrlSetBkColor(-1,'&GUICtrlRead($input_GUI_BKColor)&')'&@CRLF
    $file &= 'GUICtrlSetColor(-1,'&GUICtrlRead($input_GUI_Color)&')'&@CRLF
    $file &= 'GUICtrlCreateLabel("",5,'&$GUI_Height*0.2&','&$GUI_Width-10&',2,0x10)'&@CRLF
    $file &= 'GUICtrlCreateLabel("",5,'&$GUI_Height*0.85&','&$GUI_Width-10&',2,0x10)'&@CRLF
    $file &= 'GUICtrlCreateButton("&Weiter",'&$GUI_Width-GUICtrlRead($Input_Button_Width)-$Button_Abstand&','&$GUI_Height*0.85+$Button_Abstand&','&GUICtrlRead($Input_Button_Width)&','&GUICtrlRead($Input_Button_Height)&')'&@CRLF
    $file &= 'GUICtrlCreateButton("&Abbruch",'&$Button_Abstand&','&$GUI_Height*0.85+$Button_Abstand&','&GUICtrlRead($Input_Button_Width)&','&GUICtrlRead($Input_Button_Height)&')'&@CRLF
    $file &= 'GUISetState()'&@CRLF
    $file &= '$msg = ""'&@CRLF
    $file &= 'Do'&@CRLF
    $file &= '$msg = GUIGetMsg()' &@CRLF
    $file &= 'Until $msg = -3'&@CRLF
    FileWrite($open,$file)
    FileClose($open)
    EndFunc

    [/autoit]

    nur mal als bsp funktioniert ohne den rest nicht aber es sollte verdeutlichen wie das geht! und dann muss man das complieren:

    Spoiler anzeigen
    [autoit]

    Func Compile(ByRef $file)
    $size = IniRead(@scriptdir&"\Archivcreator.ini","data","size",0)
    $fileex = StringTrimRight($file, 3) & "exe"
    If FileExists($fileex) Then FileDelete($fileex)
    $pid = Run(@ScriptDir&'\aut2exe.exe /in "' & $file & '" /icon "'&@ScriptDir&'\setup.ico"') ; ==> Hier das entscheidene das complieren mit der au2exe.exe
    While ProcessExists($pid)
    Sleep(10)
    $cursize = FileGetSize($fileex)
    $akt = Round(100*$cursize/$size,1)
    GUICtrlSetData($per,$akt)
    GUICtrlSetData($pro,$akt)
    WEnd
    GUICtrlSetData($per,"100")
    GUICtrlSetData($pro,100)
    ;~ FileDelete($file)
    $file = $fileex
    Return $file
    EndFunc ;==>Compile

    [/autoit]

    das auch nur mal als bsp

    Ich hoffe dass es das ist was du willst :hammer:

  • naja du kannst ja den compiler mit ranhängen bzw die Funktion und die Werte übergeben ist auch in der Hilfe erklärt (glaube es da gelesen zu haben)