Hallo zusammen,
ich probiere gerade ein wenig mit Webdriver/Chrome herum, und versuche, immer, in etwa jedenfalls, hin zubekommen, was ich auch mit den Funktionen in der IE.au3 machen kann.
Na ja und da bin ich auf die Möglichkeit, $iVisible - "Gibt an, ob das Browserfenster sichtbar sein soll", in der _IECreate, in der IE.au3 gestoßen.
Das hab ich versucht in der Webdriver zu finden. Es gibt zwar die Möglichkeit das schwarze Fenster der chromedriver.exe zu verstecken, aber wohl nicht das eigentliche Browserfenster.
Das öffnen des Browserfensters geschieht wohl in der Funktion _WinHttpSendRequest() ---> Local $aCall = DllCall($hWINHTTPDLL__WINHTTP .....
; #FUNCTION# ;===============================================================================
; Name...........: _WinHttpSendRequest
; Description ...: Sends the specified request to the HTTP server.
; Syntax.........: _WinHttpSendRequest($hRequest [, $sHeaders = Default [, $sOptional = Default [, $iTotalLength = Default [, $iContext = Default ]]]])
; Parameters ....: $hRequest - Handle returned by _WinHttpOpenRequest().
; $sHeaders - [optional] Additional headers to append to the request. Default is $WINHTTP_NO_ADDITIONAL_HEADERS.
; $vOptional - [optional] Optional data to send immediately after the request headers. Default is $WINHTTP_NO_REQUEST_DATA.
; $iTotalLength - [optional] Length, in bytes, of the total optional data sent. Default is 0.
; $iContext - [optional] Application-defined value that is passed, with the request handle, to any callback functions. Default is 0.
; Return values .: Success - Returns 1.
; Failure - Returns 0 and sets @error:
; |1 - DllCall failed
; Author ........: trancexx
; Remarks .......: Specifying optional data [[$vOptional]] will cause [[$iTotalLength]] to receive the size of that data if left default value.
; Related .......: _WinHttpOpenRequest
; Link ..........: http://msdn.microsoft.com/en-us/library/aa384110.aspx
;============================================================================================
Func _WinHttpSendRequest($hRequest, $sHeaders = Default, $vOptional = Default, $iTotalLength = Default, $iContext = Default)
__WinHttpDefault($sHeaders, $WINHTTP_NO_ADDITIONAL_HEADERS)
__WinHttpDefault($vOptional, $WINHTTP_NO_REQUEST_DATA)
__WinHttpDefault($iTotalLength, 0)
__WinHttpDefault($iContext, 0)
Local $pOptional = 0, $iOptionalLength = 0
If @NumParams > 2 Then
Local $tOptional
$iOptionalLength = BinaryLen($vOptional)
$tOptional = DllStructCreate("byte[" & $iOptionalLength & "]")
If $iOptionalLength Then $pOptional = DllStructGetPtr($tOptional)
DllStructSetData($tOptional, 1, $vOptional)
EndIf
If Not $iTotalLength Or $iTotalLength < $iOptionalLength Then $iTotalLength += $iOptionalLength
Local $tWerte = "handle = " & $hRequest & ", " & _
"wstr = " & $sHeaders & ", " & _
"dword = " & 0 & ", " & _
"ptr = " & $pOptional & ", " & _
"dword = " & $iOptionalLength & ", " & _
"dword = " & $iTotalLength & ", " & _
"dword_ptr = " & $iContext
Local $aCall = DllCall($hWINHTTPDLL__WINHTTP, "bool", "WinHttpSendRequest", _
"handle", $hRequest, _
"wstr", $sHeaders, _
"dword", 0, _
"ptr", $pOptional, _
"dword", $iOptionalLength, _
"dword", $iTotalLength, _
"dword_ptr", $iContext)
If @error Or Not $aCall[0] Then Return SetError(1, 0, 0)
Return 1
EndFunc
Alles anzeigen
Leider verstehe ich nicht wie ich hier erreichen könnte das dass Browserfenster versteckt wird.
Wenn ich mir das bei der _IECreate() ansehe ist da wohl die Funktion __IELockSetForegroundWindow() dafür verantwortlich.
; #INTERNAL_USE_ONLY# ===========================================================================================================
; Name...........: __IELockSetForegroundWindow
; Description ...: Locks (and Unlocks) current Foregrouns Window focus to prevent a new window
; from stealing it (e.g. when creating invisible IE browser)
; Parameters ....: $iLockCode - 1 Lock Foreground Window Focus, 2 Unlock Foreground Window Focus
; Return values .: On Success - 1
; On Failure - 0 and sets @error and @extended to non-zero values
; Author ........: Valik
; ===============================================================================================================================
Func __IELockSetForegroundWindow($iLockCode)
Local $aRet = DllCall("user32.dll", "bool", "LockSetForegroundWindow", "uint", $iLockCode)
If @error Or Not $aRet[0] Then Return SetError(1, _WinAPI_GetLastError(), 0)
Return $aRet[0]
EndFunc ;==>__IELockSetForegroundWindow
Alles anzeigen
Aber leider bin ich nicht schlau genug das hinzubekommen bzw zu verstehen.
Kann mir da der ein oder andere vielleicht ein wenig Hilfestellung geben?