Pfadabfrage?

  • Hi, da ich ein ziemlicher autoit noob bin richte ich meine frage an euch da ich einfach nich zurande komm. also ich möchte gerne ein skript schreiben das mich auswählen lässt wo sich eine bestimmte exe befindet also ne pfadabfrage am besten mit "durchsuchen". und eine andere exe sucht und diesen pfad dann kopiert und in das geöffnete programm einfügt und einfach enter drückt. klingt sehr verzwickt wie ichs hier erklär aber wenn man erstmal gecheckt hat was ich mein dann kann ich mir denken das es ganz einfach is. und es sollte möglichst ne oberfläche haben mit knöpfen usw. ihr seit meine letzte hoffnung.
    danke schonmal im vorraus BlackPsycho

    die skizze wie es in etwa aussehen soll hab ich angehängt. ich weis meine paint künste sind bescheiden ;)

    Einmal editiert, zuletzt von BlackPsycho (20. September 2006 um 14:56)

    • Offizieller Beitrag

    Hallo!

    Sorry, dass ich die Antwort geben muss, aber hast du schon Code geschrieben? Die Hilfe gibt zu GUIs (so heißen diese Fenster) und einige kleine Beispiele.
    Grundsätzliche Starthilge kann auch das Tutorial unter http://www.autoit.de/tutorial geben, das aber noch im wachsen ist und GUI-Dinge noch nicht abdeckt.
    Es lohnt sich wirklich, AutoIt auch selbst zu lernen, das wird dir hier jeder bestätigen *g*.

    Wenn sich dann immer noch Fragen auftuen, helfen wir natürlich gerne.

    Viel Erfolg,
    peethebee

    • Offizieller Beitrag

    Hallo!

    Nagut wolln wir mal nich so sein ;) Hab dir mal ein Skript geschrieben.. Erstellt mit Koda! Koda ist auch in Scite drin! Scite&Koda sind sowieso sehr empfelenswert!!

    Also das Skript: (ich hatte langeweile.. also daher etwas ausfürlicher ;) Bei Fragen... einfach fragen :musik2:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    HotKeySet("{ENTER}","_Start") ;Wenn enter gedrückt wird Funktion _Start() aufrufen!

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=
    $maingui = GUICreate("AForm1", 380, 108, 193, 115) ; Main Gui

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlCreateGroup("Pfad", 8, 8, 360, 49);Groupe "Pfad"
    $pfadinp1 = GUICtrlCreateInput("Pfad1", 16, 24, 121, 21)
    $durchsuchen1 = GUICtrlCreateButton("..", 144, 24, 20, 21, 0)
    $pfadinp2 = GUICtrlCreateInput("Pfad2", 208, 24, 121, 21)
    $durchsuchen2 = GUICtrlCreateButton("..", 336, 24, 20, 21, 0)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $start = GUICtrlCreateButton("Start", 144, 72, 75, 25, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE; Wenn GUI Geschlossen wird
    Exit
    Case $durchsuchen1 ; Wenn $durchsuchen1 button gedrückt wurde
    $durchsuchen = FileOpenDialog("","","Exe dateien (*.exe)")
    If @error Then ContinueLoop ; Wenn Abbrechen gedrückt wurde die aktion abbrechen
    GUICtrlSetData($pfadinp1,$durchsuchen)
    Case $durchsuchen2 ; Wenn $durchsuchen2 button gedrückt wurde
    $durchsuchen = FileSaveDialog("","","Exe dateien (*.exe)",16)
    If @error Then ContinueLoop ; Wenn Abbrechen gedrückt wurde die aktion abbrechen
    If StringRight($durchsuchen,4) <> ".exe" Then $durchsuchen &= ".exe"
    GUICtrlSetData($pfadinp2,$durchsuchen)
    Case $start ; Wenn der Start Button gedrückt wurde
    _Start()
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Start()
    If Not WinActive($maingui) Then
    HotKeySet("{ENTER}")
    Send("{ENTER}")
    HotKeySet("{ENTER}","_Start")
    Return 0
    EndIf
    $pfad1 = GUICtrlRead($pfadinp1)
    $pfad2 = GUICtrlRead($pfadinp2)
    If StringLen($pfad1) = 0 Or StringLen($pfad2) = 0 Then
    MsgBox(16,"","Bitte wählen Sie erst die pfäde aus!")
    Return 0
    EndIf
    GUIDelete(); Entfernt die GUI!
    FileCopy($pfad1,$pfad2,1); Kopiert die datei
    Exit
    EndFunc

    [/autoit]

    Mfg Spider

    • Offizieller Beitrag

    Hallo!

    @Spider warum machst du das so umständlich mit HotKey, gib doch einfach dem Start-Button den Style $BS_DEFPUSHBUTTON!

  • Danke für eure hilfe dank euch hab ichs jetz geschafft es nach 2-3 std selber zu schreiben lol.
    hier ist der code nicht sehr übersichtlich aber er funktioniert ;)
    Ich bitte um kritik und anregeungen

    Spoiler anzeigen
    [autoit]


    #cs ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    AutoIt Version: 3.1.1.0
    Author: myName

    [/autoit] [autoit][/autoit] [autoit]

    Script Function:
    Template AutoIt script.

    [/autoit] [autoit][/autoit] [autoit]

    #ce ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    ; Script Start - Add your code below here

    [/autoit] [autoit][/autoit] [autoit]

    ; example 1
    #include <GUIConstants.au3>
    #include <File.au3>
    $Fenster = GUICreate("Gilde 2 Loader", 350, 200) ; will create a dialog box that when displayed is centered

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState (@SW_SHOW) ; will display an empty dialog box

    [/autoit] [autoit][/autoit] [autoit]

    $Label1 = GUICtrlCreateLabel("asr.exe", 50, 5, 38, 17)
    $Label2 = GUICtrlCreateLabel("GuildII.exe", 234, 5, 50, 17)
    $pfadinp1 = GUICtrlCreateInput("", 16, 24, 121, 21)
    $pfadinp2 = GUICtrlCreateInput("", 190, 24, 121, 21)
    $Button_1 = GUICtrlCreateButton ("...", 140, 22, 30, -1, $BS_DEFPUSHBUTTON)
    $Button_4 = GUICtrlCreateButton ("...", 314, 22, 30, -1, $BS_DEFPUSHBUTTON)
    $Group1 = GUICtrlCreateGroup("Gespeichert?", 125, 60, 89, 65)
    $Button_2 = GUICtrlCreateButton ("Speichern", 220, 70, 80, -1)
    $Button_3 = GUICtrlCreateButton ("Laden", 40, 70, 80, -1)
    $Button_5 = GUICtrlCreateButton ("Credits", 130, 140, 80, -1)

    [/autoit] [autoit][/autoit] [autoit]

    If FileExists ( "C:\Dokumente und Einstellungen\Default User\pfad.txt" ) Then GUICtrlCreateLabel ( "Daten Gespeichert", 145, 80, 60, 30 )

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $druck = GUIGetMsg()
    Switch $druck

    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $Button_1 ; Wenn $durchsuchen1 button gedrückt wurde
    $durchsuchen1 = FileOpenDialog("","","asr (*.exe)")
    If @error Then ContinueLoop ; Wenn Abbrechen gedrückt wurde die aktion abbrechen
    GUICtrlSetData($pfadinp1,$durchsuchen1)
    Case $Button_4 ; Wenn $durchsuchen1 button gedrückt wurde
    $durchsuchen2 = FileOpenDialog("","","GuildII (*.exe)")
    If @error Then ContinueLoop ; Wenn Abbrechen gedrückt wurde die aktion abbrechen
    GUICtrlSetData($pfadinp2,$durchsuchen2)
    case $Button_2
    _Start()

    Case $Button_3
    _Laden()

    Case $Button_5
    _Credits()
    EndSwitch
    Wend
    Func _Start()
    If Not WinActive($Fenster) Then
    HotKeySet("{ENTER}")
    Send("{ENTER}")
    HotKeySet("{ENTER}","_Start")
    Return 0
    EndIf
    $pfad1 = GUICtrlRead($pfadinp1)
    $pfad2 = GUICtrlRead($pfadinp2)
    If StringLen($pfad1) = 0 Or StringLen($pfad2) = 0 Then
    MsgBox(16,"","Bitte wählen Sie erst die pfäde aus!")
    Return 0
    EndIf
    ;GUIDelete(); Entfernt die GUI!
    _FileCreate ( "C:\Dokumente und Einstellungen\Default User\pfad.txt")
    FileOpen ( "C:\Dokumente und Einstellungen\Default User\pfad.txt", 2 )
    FileWrite ( "C:\Dokumente und Einstellungen\Default User\pfad.txt", $durchsuchen1 & @CRLF )
    FileWrite ( "C:\Dokumente und Einstellungen\Default User\pfad.txt", $durchsuchen2 )
    FileClose ( "C:\Dokumente und Einstellungen\Default User\pfad.txt" )
    Return 0

    Exit

    EndFunc
    Func _Laden()
    FileOpen ( "C:\Dokumente und Einstellungen\Default User\pfad.txt", 0 )
    $asr = FileReadLine ( "C:\Dokumente und Einstellungen\Default User\pfad.txt" , "1" )
    $guild = FileReadLine ( "C:\Dokumente und Einstellungen\Default User\pfad.txt" , "2" )
    ; MsgBox(4096, "Result", $asr & @CRLF & $guild) ;meine überprüfung ob file geht
    Run ( $asr )
    Sleep ( 700 )
    Send ( $guild & "{ENTER}" )
    EndFunc
    Func _Credits()
    MsgBox ( 0, "Credits", "Programmiert von BlackPsycho" & @CR & "Ein Besonderes Danke an: peethebee, Bernd670 und gtaspider." & @CR & "Aus dem https://autoit.de/www.autoit.de Forum" )
    EndFunc

    [/autoit]

    2 Mal editiert, zuletzt von BlackPsycho (24. September 2006 um 13:47)