Leider kommt es in meinem Programm hin und wieder vor, dass die kompilierte exe nicht ordentlich beendet wird. Im Taskmanager springt die CPU Auslastung des Prozesses dann auch plötzlich auf 50% als ob das Programm in einer Endlosschleife hängen würde. Die GUI verschwindet und auch der FF Prozess verschwindet. Übrig bleibt nur der Prozess des Hauptprogramms mit der erwähnten CPU Auslastung.
Nun habe ich mir mal die Funktion _FFQuit angesehen, aber dort kann ich keine Schleife erkennen, die zum Beispiel aufs verschwinden des FF Prozesses wartet. Jedoch sind mir einige ungewöhnliche if ... then Konstrukte aufgefallen (Zeile 22 und 32), die offensichtlich nicht mit endif enden sondern nur mit einem return. Da der compiler aber keinen Syntax Fehler feststellen kann gehe ich davon aus, dass das so ok sein müsste.
Kann das dennoch daran liegen?
[autoit]; #FUNCTION# ===================================================================
; Name ..........: _FFQuit
; Description ...: Quits FireFox
; Beschreibung ..: Schließt FireFox
; AutoIt Version : V3.3.0.0
; Syntax ........: _FFQuit()
; Parameter(s): .:
; Return Value ..: Success - 1 / $_FF_GLOBAL_SOCKET = -1
; Failure - 0
; @ERROR -
; Author(s) .....: Thorsten Willert
; Date ..........: Sat Mar 14 14:44:55 CET 2009 @614 /Internet Time/
; Link ..........:
; Related .......: _FFDisConnect
; Example .......: Yes
; ==============================================================================
Func _FFQuit()
Local Const $sFuncName = "_FFQuit"
If $_FF_GLOBAL_SOCKET = -1 Then Return
If Not __FFIsSocket($_FF_GLOBAL_SOCKET) Then
SetError(__FFError($sFuncName, $_FF_ERROR_SocketError))
Return 0
EndIf
TCPSend($_FF_GLOBAL_SOCKET, "close()" & @CRLF)
If Not @error Then
$_FF_FRAME = "top"
$_FF_GLOBAL_SOCKET = -1
If $_FF_COM_TRACE Then ConsoleWrite('__FFQuit: Closing FireFox ...' & @CRLF)
Return 1
Else
Return 0
EndIf
EndFunc
[/autoit][autoit][/autoit][autoit][/autoit]