Hallo zusammen
Stehe vor einem Rätsel; habe eine Func erstellt und möchte diese an einer bestimmten Zeile mit "Return" wieder verlassen und dabei auch einen Wert zurückgeben. Klappte an jeder anderen Stelle bisher wunderbar, jetzt plötzlich nicht mehr.
Folgendes Skript soll das Laufwerk C: nach .exe-Files durchsuchen und von jedem einzelnen File den Pfad zurückgeben.
[autoit]
$Path = Search(".exe","C:")
MsgBox(0,"$Path",$Path)
Func Search($app,$Dir) ;ohne GUI
Local $Search
Local $File
Local $FileAttributes
Local $FullFilePath
$Search = FileFindFirstFile($Dir & "\*.*")
[/autoit][autoit][/autoit][autoit]While 1
If $Search = -1 Then
ExitLoop
EndIf
$File = FileFindNextFile($Search)
If @error Then ExitLoop
$FullFilePath = $Dir & "" & $File
$FileAttributes = FileGetAttrib($FullFilePath)
If StringInStr($FileAttributes,"D") Then ;ordner gefunden
Search($app,$FullFilePath)
Else ;datei gefunden
if StringRight($FullFilePath,4) = ".exe" Then
if StringInStr($FullFilePath, $app,2) <> 0 Then
$use = MsgBox(3,"Objekt gefunden","Soll folgendes Objekt verwendet werden?"&@LF&$FullFilePath)
Select
case $use = "6"
MsgBox(0,"OK",$FullFilePath)
Return $FullFilePath
case $use = "2"
MsgBox(0,"Abbruch","Suche durch den Benutzer abgebrochen")
exit
EndSelect
EndIf
EndIf
EndIf
WEnd
FileClose($Search)
EndFunc
Die Files werden auch gefunden und die MsgBox in Zeile 31 wird auch ausgeführt. Nur das Verlassen der Funktion in Zeile 32 funktioniert nicht. Es ist nicht so, dass nichts zurück gegeben wird, sondern die While-Schleife läuft einfach weiter, obwohl die ganze Funktion verlassen werden sollte.
Weiss jemand Rat? Danke für euere Hilfe!