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!
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!
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:
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?
poste mal dein script wie es jetzt ist und ich baue dir das mal ein
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
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 ###
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
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!!
Wie es geht, hab ich doch am Bsp. gezeigt. Brauchst es nur noch einbauen.
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:
$regread = RegRead("HKEY_LOCAL_MACHINE\Software\wow\", "Path") ;Path & \wow sind von mir erfunden
;und dann einfach
Run($regread&"\wow.exe")
des prob is ich hab wow nich installt^^ sondern vom kumpel rübergezogen xD
wow muss nich unbedingt installt werden^^
naja villt schriebt mir ja jmd mein source code so das er es in die ini usw schreibt...
lol da schreibt dir bugfix wies geht und du ignorierst es naja vielleicht verstehste wie es geht wenn du es dir jetzt anschaust hier
#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
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
möglich ist alles^^
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 .....
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
#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"
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
$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
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!!