Aus der Exit-Hilfe
;Second Example
; Terminate script if no command-line arguments
If $CmdLine[0] = 0 Then Exit(1)
;Third Example
; Open file specified as first command-line argument
$file = FileOpen($CmdLine[1], 0)
Aus der Exit-Hilfe
;Second Example
; Terminate script if no command-line arguments
If $CmdLine[0] = 0 Then Exit(1)
;Third Example
; Open file specified as first command-line argument
$file = FileOpen($CmdLine[1], 0)
Ich habe mir jetzt das Hilfebeispiel durchgeschaut, der ErrorHandler ist ja nur ein COM ErrorHandler, das heißt es kann also nur COM Fehler auswerten. Bei dir im Skript fehlt demnach ein ObjectCreate. Eine fehlende Datei löst dabei diesen ErrorHandler nicht aus.
Aber wie gesagt, damit kenne ich mich auch nicht wirklich aus.
Ich kenne mich mit dem Errorhandler auch nicht aus, aber nimm doch einfach den Befehl FileExists her um zu prüfen ob die Datei da ist.
Weißt du überhaupt was du da machst???
Die Funktion ruft sich immer wieder selbst auf --> Endlosschleife, aber bitte! #includes nur einmal verwenden!!
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Start2 ()
[/autoit][autoit][/autoit][autoit]Func Start2 ()
[/autoit][autoit][/autoit][autoit][/autoit][autoit]#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("PassWord", 236, 74, 1039, 665)
$Input1 = GUICtrlCreateInput("Input1", 8, 8, 137, 21)
$Label1 = GUICtrlCreateLabel("PW Bitte", 8, 32, 142, 41)
GUICtrlSetFont(-1, 24, 800, 0, "Rosewood Std Regular")
GUICtrlSetColor(-1, 0x0000FF)
$Button1 = GUICtrlCreateButton("OK", 152, 0, 75, 65, 0)
GUICtrlSetFont(-1, 24, 800, 0, "Rosewood Std Regular")
GUICtrlSetColor(-1, 0xFF0000)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
While 1
$a = GUICtrlRead ($input1)
If $a = "Longju2-Board" Then
Sleep (100)
GuiSetState (@SW_HIDE)
Sleep (100)
ExitLoop
EndIf
Sleep (100)
If Not $a = "Longju2-Board" Then
ToolTip ("Du hast das Falsche PW eigegeben",400,400)
EndIf
WEnd
EndSwitch
ExitLoop
WEnd
Start ()
EndFunc
Func Start ()
MsgBox (0,"","lol",1)
Start2 ()
EndFunc
Redn wir hier von UrlEncodeden Strings oder von Wirrwarr?
EDIT: Da hast du recht, sicher ist sicher
Diese Funktion _HTTPEncodeString, funktioniert einwandfrei, aber ich durchblicke sie nicht ganz
Oder kürzer
[autoit]$Temp = StringReplace($Encoded,"+"," ")
While 1
$pos = StringInStr($Temp,"%",1,1)
If $pos = 0 Or @error = 1 Then ExitLoop
$Decoded = StringReplace($Temp, StringMid($Temp,$pos,3),Chr(Dec(StringMid($Temp,$pos+1,2))))
$Temp = $Decoded
WEnd
MouseClick($Pos[0] + 20, $Pos[1])
[/autoit]URLEncode <> HTTPEncode
Ist zwar nicht Autoit, aber man kann sich das schon irgendwie umdenken
http://www.motobit.com/tips/detpg_URLDecode/
Zuerst StringReplace '+' durch ' '
Danach nach '%' suchen und Chr() der nachfolgenden 2 Zeichen machen.
Sieht nicht so wild aus, was da zu ersetzen ist
Google:
Hab davon zwar keine Ahnung, aber es gibt auch urldecode()
Schadet nicht, hab ich zwar noch nie gemacht, aber ich glaube das geht wenn man den ersten Beitrag editiert.
Ich glaube, jetzt hast du's verstanden. wenn keine neue Datei gefunden wird, dann wird die 'unendliche' Schleife beendet.
Du hast eigentlich alles verstanden.
'While 1' oder auch 'While True' wiederholt den Vorgang bis zum WEnd immer und immer wieder. 1 = Immer
Diese Schleife wird nur durch ExitLoop oder Exit beendet.
Schau dir mal die Hilfe zu FileFindFirstFile an. Wenn keine Datei gefunden wird, dann gibt diese Funktion -1 zurück, das kann dann ausgewertet werden.
Send("!di")
[/autoit]
bedeutet, dass ALT, D, I gesendet wird, also Alt, Datei, Seite eInrichten
Send("{Down 6}")
[/autoit]
bedeutet, dass du 6x Down sendest.
Der restliche Code ist direkt aus der Hilfe entnommen zu FileFindFirstFile.
Es lässt sich in deinem Skript noch einigen verbessern
Seite einrichten in Excel
[autoit]Send("!di")
[/autoit]Zeichen öfter Senden
[autoit]Send("{DOWN 6}")
[/autoit]Hab' nicht getestet, aber wenn das Skript im Ordner mit den xls-dateien ist, sollte es funktionieren.
$search = FileFindFirstFile("*.xls")
[/autoit][autoit][/autoit][autoit]; Check if the search was successful
If $search = -1 Then
MsgBox(0, "Error", "No files/directories matched the search pattern")
Exit
EndIf
While 1
$file = FileFindNextFile($search)
If @error Then ExitLoop
ShellExecute($File)
Seite_anpassen() ; dein Skript
WinClose("Microsoft Excel -")
WEnd
; Close the search handle
FileClose($search)
Func Seite_anpassen()
WinWait("Microsoft Excel -","")
If Not WinActive("Microsoft Excel -","") Then WinActivate("Microsoft Excel -","")
WinWaitActive("Microsoft Excel -","")
Send("{ALTDOWN}a{ALTUP}{DOWN}{DOWN}{DOWN}{ENTER}")
WinWait("Seite einrichten","")
If Not WinActive("Seite einrichten","") Then WinActivate("Seite einrichten","")
WinWaitActive("Seite einrichten","")
Send("{TAB}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{ENTER}{ENTER}")
WinWait("Microsoft Excel -","")
If Not WinActive("Microsoft Excel -","") Then WinActivate("Microsoft Excel -","")
WinWaitActive("Microsoft Excel -","")
Send("{CTRLDOWN}p{CTRLUP}{SHIFTDOWN}{TAB}{TAB}{TAB}{SHIFTUP}1{TAB}1{ENTER}")
WinWait("Microsoft Excel -","")
If Not WinActive("Microsoft Excel -","") Then WinActivate("Microsoft Excel -","")
WinWaitActive("Microsoft Excel -","")
Send("{ALTDOWN}d{ALTUP}{DOWN}{ENTER}")
WinWait("Microsoft Excel","")
If Not WinActive("Microsoft Excel","") Then WinActivate("Microsoft Excel","")
WinWaitActive("Microsoft Excel","")
Send("{ENTER}")
EndFunc
Wenn die Dateien automatisch geöffnet werden, nicht von Autoit, dann brauchst du keine Variablen
So reicht es doch auch.
WinWait("Microsoft Excel - ")
[/autoit]#
EDIT: Zu langsam
Das bedeutet, dass der Befehl richtig ausgeführt wurde. Die Frage ist nur warum klickt er dann nicht?
Ist das Fenster beim Klicken nicht aktiv (kann auch zu Problemen führen)?
Oder klickt er im falschen Fenster herum?
Ich weiß jetzt dann auch nicht mehr weiter