exe suchen und starten?

  • hi gibt es eine funktion das er ne exe sucht und danach startet?

    also bsp: ich hab nen button und klicke drauf dann sucht er die angegebene exe und wenn er sie gefunden hat startet er sie?

    Thx im voraus!

  • Code
    FileFindFirstFile ( "filename" )
    
    
    Return Value    
    Success: Returns a search "handle" for use with subsequent  FileFindNextFile functions.
     Failure: Returns -1 if error occurs. If the Folder is empty the @error is set to 1.


    Damit alle Ordner durchsuchen und dann mit:

    Code
    Run ( "filename" [, "workingdir" [, flag[, standard_i/o_flag]]] )
    
    
    Return Value    
    Success: The PID of the process that was launched.  
    Failure: Depends on RunErrorsFatal; see Remarks.

    ausführen.


    mfg

  • mhh ich versteh das nich richtig...

    also ich möchte es so machen das wenn man das script zb auf dem desktop hat und man es startet durchsucht er den kompletten rechner nach "Wow.exe"
    und wenn er die gefunden hat soll er sie starten...

  • Kannst ja auch gucken, ob wow einen registryeintrag macht, oder den User beim erststart des Programmes den Pfad auswählen lasst.
    Dies erspart dir eine Menge arbeit und dem Nutzer viel Rechenzeit und -leistung (große Festplatten mit vielen Daten brauchen nunmal durchsucht zu werden)


    mfg

  • ok hab es so gemacht das, sobald man das tool startet das er erster fragt wo die exe is danach kommt das prog usw funtzt alles einwandfrei aber nu noch ne frage kann man machen sobald man einma den pfad angegeben hat das er es in eine ini schreibt und dann wenn wann nochma das prog lädt das nicht mehr das file open dingens kommt sondern er es von der ini liest? also ini lesen erst ab dem 2ten start des tools?

    • Offizieller Beitrag
    [autoit]

    Global $exePath, $INIPath = @ScriptDir & '\Programm.ini'
    If Not FileExists($INIPath) Then
    Do
    $exePath = FileOpenDialog( "title", "init dir", "filter" [, options [, "default name" )
    Until Not @error
    IniWrite($INIPath, 'settings', 'last_file', $exePath)
    Else
    $exePath = IniRead($INIPath, 'settings', 'last_file', '')
    EndIf

    [/autoit]
  • Also mein jetziges script ist:

    [autoit]

    #include <GUIConstants.au3>

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

    $Pic1 = FileInstall("C:\Dokumente und Einstellungen\Martin\Desktop\wow_logo.BMP", @TempDir & "\wow_logo.BMP")

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("WoW Login!", 210, 318, 420, 217)
    GUISetBkColor(0x000000)
    $WoW = FileOpenDialog("Öffnen...", @DesktopDir, "World of Warcraft (*.exe)")
    $input1 = GUICtrlCreateInput("", 16, 139, 177, 21)
    $input2 = GUICtrlCreateInput("", 16, 223, 177, 21)
    $Label1 = GUICtrlCreateLabel("Passwort", 16, 200, 49, 19)
    GUICtrlSetFont(-1, 8, 400, 0, "Comic Sans MS")
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label2 = GUICtrlCreateLabel("User Name", 16, 115, 60, 19)
    GUICtrlSetFont(-1, 8, 400, 0, "Comic Sans MS")
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Button1 = GUICtrlCreateButton("Login", 64, 264, 83, 25, 0)
    GUICtrlCreatePic(@TempDir & "\wow_logo.BMP", 31, 0, 150, 85)
    $Label3 = GUICtrlCreateLabel("Auto Login", 74, 64, 68, 22)
    GUICtrlSetFont(-1, 10, 400, 0, "Comic Sans MS")
    GUICtrlSetColor(-1, 0xFFFFFF)
    $MenuItem1 = GUICtrlCreateMenu("?")
    $MenuItem2 = GUICtrlCreateMenuItem("About", $MenuItem1)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $MenuItem2
    MsgBox(64, "About", "WoW Auto Login" & @CRLF & "Version 1.0" & @CRLF & "" & @CRLF & "Copyright © 2008" & @CRLF & "By Slash")
    Case $Button1
    run($WoW)
    sleep("7000")
    Send(GUICtrlRead($input1))
    sleep("20")
    send("{tab}")
    sleep("20")
    Send(GUICtrlRead($input2))
    send("{enter}")
    exit
    EndSwitch
    WEnd

    [/autoit]

    Und was mich sehr erfreuen würde is wiegesagt des mit dem pfad speichern in ini,
    und gut were noch wenn man den username eingegeben hat und pw das er es auch in die gleiche ini schreibt und beim nächsten mal beim start aus der ini liest also name und pw^^ THX ! im vorraus!!

  • geh mal in die registry und schau mal unter
    HKEY_LOCAL_MACHINE\SOFTWARE\
    und dann entweder world of warcraft, wow, oder der spielehersteller oft gibt es dann dort einen REG_SZ der path oder so heisst
    dann bauste einfach in dein script ein:

    [autoit]

    $regread = RegRead("HKEY_LOCAL_MACHINE\Software\wow\", "Path") ;Path & \wow sind von mir erfunden
    ;und dann einfach
    Run($regread&"\wow.exe")

    [/autoit]

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • lol da schreibt dir bugfix wies geht und du ignorierst es naja vielleicht verstehste wie es geht wenn du es dir jetzt anschaust hier

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    Global $WoW, $INIPath = @ScriptDir & '\Programm.ini'
    If Not FileExists($INIPath) Then
    Do
    $WoW = FileOpenDialog("Öffnen...", @DesktopDir, "World of Warcraft (*.exe)")
    Until Not @error
    IniWrite($INIPath, 'settings', 'last_file', $WoW)
    Else
    $WoW = IniRead($INIPath, 'settings', 'last_file', '')
    EndIf
    $Pic1 = FileInstall("C:\Dokumente und Einstellungen\Martin\Desktop\wow_logo.BMP", @TempDir & "\wow_logo.BMP")
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("WoW Login!", 210, 318, 420, 217)
    GUISetBkColor(0x000000)
    $input1 = GUICtrlCreateInput("", 16, 139, 177, 21)
    $input2 = GUICtrlCreateInput("", 16, 223, 177, 21)
    $Label1 = GUICtrlCreateLabel("Passwort", 16, 200, 49, 19)
    GUICtrlSetFont(-1, 8, 400, 0, "Comic Sans MS")
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label2 = GUICtrlCreateLabel("User Name", 16, 115, 60, 19)
    GUICtrlSetFont(-1, 8, 400, 0, "Comic Sans MS")
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Button1 = GUICtrlCreateButton("Login", 64, 264, 83, 25, 0)
    GUICtrlCreatePic(@TempDir & "\wow_logo.BMP", 31, 0, 150, 85)
    $Label3 = GUICtrlCreateLabel("Auto Login", 74, 64, 68, 22)
    GUICtrlSetFont(-1, 10, 400, 0, "Comic Sans MS")
    GUICtrlSetColor(-1, 0xFFFFFF)
    $MenuItem1 = GUICtrlCreateMenu("?")
    $MenuItem2 = GUICtrlCreateMenuItem("About", $MenuItem1)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $MenuItem2
    MsgBox(64, "About", "WoW Auto Login" & @CRLF & "Version 1.0" & @CRLF & "" & @CRLF & "Copyright © 2008" & @CRLF & "By Slash")
    Case $Button1
    run($WoW)
    sleep("7000")
    Send(GUICtrlRead($input1))
    sleep("20")
    send("{tab}")
    sleep("20")
    Send(GUICtrlRead($input2))
    send("{enter}")
    exit
    EndSwitch
    WEnd

    [/autoit]
  • kann aber trotzdem sein das was in der registry steht ;) denn die wow.exe könnte ja auch in die registry schreiben evt für plugins oder patches oder keine ahnung ich würd lieber mal nachschaun ;)

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • Ich arbeite gerade an einer UDF um Dateien auf dem gesamten Rechner zu finden, aber

    a) niemand KANN mir helfen oder
    b) niemand will mir helfen


    Ich würde dir gerne helfen,aber ich selbst brauchte NUR EINE IDEE,die aber nicht kommt .....

    Zitat

    Programmieren ist so lange lustig bis ein Fehler auftritt!


    ~ Dankeschön

  • BIG THX!!!! ES FUNTZT EINWANDFREI!!!!!! aber noch ne frage kann man das genauso auch mit input1 und input 2 machen? also erste ma wenn man startet muss man username noch eingeben und beim 2ten ma hat er es schon in die gleiche ini geschrieben und da liest er den username und pw dann raus die du davor benutzt hast?

  • natürlich kann man

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    DirCreate("C:\slash")
    Const $IniLog = StringLeft("C:\slash\Programm.ini",StringInStr("C:\slash\Programm.ini",".",0,-1)) & "ini"
    Const $IniPW = StringLeft("C:\slash\Programm.ini",StringInStr("C:\slash\Programm.ini",".",0,-1)) & "ini"

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

    Global $WoW, $INIPath = "C:\slash\Programm.ini"
    If Not FileExists($INIPath) Then
    Do
    $WoW = FileOpenDialog("Öffnen...", @DesktopDir, "World of Warcraft (*.exe)")
    Until Not @error
    IniWrite($INIPath, 'settings', 'last_file', $WoW)
    Else
    $WoW = IniRead($INIPath, 'settings', 'last_file', '')
    EndIf

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

    $Pic1 = FileInstall("C:\Dokumente und Einstellungen\Martin\Desktop\wow_logo.BMP","C:\slash\wow_logo.BMP")
    $Form1 = GUICreate("WoW Login!", 210, 318, 420, 217)
    GUISetBkColor(0x000000)
    $input1 = GUICtrlCreateInput(IniRead($IniLog, "Login", "default", ""), 16, 139, 177, 21)
    $input2 = GUICtrlCreateInput(IniRead($IniPW, "Pw", "default1", ""), 16, 223, 177, 21)
    $Label1 = GUICtrlCreateLabel("Passwort", 16, 200, 49, 19)
    GUICtrlSetFont(-1, 8, 400, 0, "Comic Sans MS")
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label2 = GUICtrlCreateLabel("User Name", 16, 115, 60, 19)
    GUICtrlSetFont(-1, 8, 400, 0, "Comic Sans MS")
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Button1 = GUICtrlCreateButton("Login", 64, 264, 83, 25, 0)
    GUICtrlCreatePic("C:\slash\wow_logo.BMP", 31, 0, 150, 85)
    $Label3 = GUICtrlCreateLabel("Auto Login", 74, 64, 68, 22)
    GUICtrlSetFont(-1, 10, 400, 0, "Comic Sans MS")
    GUICtrlSetColor(-1, 0xFFFFFF)
    $MenuItem1 = GUICtrlCreateMenu("?")
    $MenuItem2 = GUICtrlCreateMenuItem("About", $MenuItem1)
    GUISetState(@SW_SHOW)
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $MenuItem2
    MsgBox(64, "About", "WoW Auto Login" & @CRLF & "Version 1.0" & @CRLF & "" & @CRLF & "Copyright © 2008" & @CRLF & "By Slash")
    Case $Button1
    IniWrite($IniLog, "Login","default",GUICtrlRead($Input1))
    IniWrite($IniPW, "Pw","default1",GUICtrlRead($Input2))
    run($WoW)
    sleep("7000")
    Send(GUICtrlRead($input1))
    sleep("20")
    send("{tab}")
    sleep("20")
    Send(GUICtrlRead($input2))
    send("{enter}")
    exit
    EndSwitch
    WEnd

    [/autoit]


    P.s. habe noch eine kleinigkeit geändert
    er installiert dein Bild nicht mehr im TempDir sondern er erstellt unter C einen neuen ordner mitdem namen "slash" und da kommt dann alles rein (Weil man da als evtl´er VISTA nutzer Problemchen kriegst da der TempOrdner Iwan überquillt)

  • THX AN ALLE DIE MIR GEHOLFEN HABEN!!! es funtzt einwandfrei!!
    Für alle die es haben wollen meinen autologin für wow unten im anhang isser =)
    ihr müsst nur das bild was in dem archiv ist den pfad ändern mehr nich, und die kompilierte exe is auch drinne!!