Hallo,
da ich grundsätzlich beim Programmieren nicht viel tippen möchte, möchte ich gern in den kommenden Versionen in allen Funktionsaufrufen die Übergabe des $Sockets rauswerfen.
Würde dann so aussehen:
Spoiler anzeigen
#include <FF.au3>
[/autoit] [autoit][/autoit] [autoit]If _FFConnect2() Then
_FFOpenURL2("http://www.google.de")
If _FFObjCreate("google", "window.content.document") Then
MsgBox(64, "Cookie", _FFObj("google.cookie"))
MsgBox(64, "Domain", _FFObj("google.domain"))
_FFObjDelete("google")
EndIf
EndIf
Exit
[/autoit]und die Funktionen dazu (ein Teil nur Wrapper auf die aktuellen Funktionen):
Spoiler anzeigen
Func _FFObj($sObject)
$RetVal = _FFSetGet($_FF_GLOBAL_SOCKET, "try{FF_AutoItScript." & $sObject & ";}catch(e){'Err'};")
If Not @error And $RetVal <> "Err" Then
Return $RetVal
Else
SetError(1)
Return 0
EndIf
EndFunc ;==>_FFObj
;===============================================================================
Func _FFObjCreate($sNewObject, $sObject)
If StringRegExp($sNewObject, "[\W]+") Then Return 0
$RetVal = _FFSetGet($_FF_GLOBAL_SOCKET, "try{FF_AutoItScript." & $sNewObject & "=" & $sObject & "}catch(e){};FF_AutoItScript." & $sNewObject & " ? 1 : 0;")
SetError(Number($RetVal))
Return $RetVal
EndFunc ;==>_FFObjCreate
;===============================================================================
Func _FFObjDelete($sObject)
Return _FFSetGet($_FF_GLOBAL_SOCKET, "delete FF_AutoItScript." & $sObject & ";!FF_AutoItScript." & $sObject & " ? 1 : 0;")
EndFunc ;==>_FFObjDelete
;===============================================================================
Func _FFConnect2()
If Not IsDeclared("_FF_GLOBAL_SOCKET") Then
Global $_FF_GLOBAL_SOCKET = -1
EndIf
$_FF_GLOBAL_SOCKET = _FFConnect()
Return _FFIsConnected()
EndFunc
;===============================================================================
Func _FFOpenURL2($sURL)
_FFOpenURL($_FF_GLOBAL_SOCKET, $sURL)
EndFunc
;===============================================================================
Func _FFIsConnected()
If $_FF_GLOBAL_SOCKET > -1 Then Return 1
Return 0
EndFunc
mal abgesehen von der "kleinen" Inkompatibilität zu bestehenden Programmen, die sich leicht mit Suchen und Ersetzen wieder herstellen läßt, entstehen dadurch keine großen Nachteile, außer man möchte über mehrere Sockets gleichzeitig arbeiten. was aber (für mich) nun weniger Aufwand darstellt, als ständig diese Socket Variable "mitzuschleppen".
Die Objekt-Funktionen waren nur ein Nebenprodukt beim "Rumspielen", kann man die brauchen?
Was haltet Ihr davon?
Viele Grüße
Stilgar