Hallo!
Wie kann ich den User-Agent für INetGetSource ändern? In der Inet.au3 im AutoIt Programmverzeichnis finde ich keine Einstellung diesbezüglich...
Hintergrund: bplaced.net akzeptiert den Standart-Agent von AutoIt nicht.
Danke!
User-Agent für _INetGetSource ändern
-
- [ gelöst ]
-
petter2 -
27. Dezember 2009 um 17:59 -
Geschlossen -
Erledigt
-
-
Ist das überhaupt die richtige Stelle, wo ich suche?
-
Kenn nur den Befehl
[autoit]HttpSetUserAgent
[/autoit]
Weist nicht ob der auch damit Funktioniert, steht für InetGet drin... -
- Offizieller Beitrag
Soweit mir bekannt ist, wird von den Funktionen der Inet.au3 der Internetexplorer verwendet. Somit müßtest du deine Änderungen im zugehörigen Registryschlüssel vornehmen:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent -
Laut dem folgenden Forumeintrag soll das ganz einfach sein:
http://forum.bplaced.net/viewtopic.php?f=6&t=12957&p=281528
BugFix das ist es glaube ich nicht, da man mit dem IE Problemlos auf die Seiten zugreifen kann
Kennt sonst jemand einen Inetgetsource kompatiblen kostenlosen und werbefreien Provider? spacequadrat funktioniert wegen der handy-aktivierung auch nicht... -
In 3.3.0.0 konnte man ihn auch noch in der Inet.au3 ändern, aber jetzt die Funktion anscheinend anders aufgebaut. Sind nur noch ein paar Zeilen, das wesentliche findet in InetRead statt und das ist nicht mehr open source.
Haste
[autoit]HttpSetUserAgent
[/autoit]
mal ausprobiert?Ansonst kann ich dir nur noch eine WinHTTP Möglichkeit anbieten.
-
Hab 3.3.0.0 noch auf meinem Netbook drauf, da war es noch open source:
Spoiler anzeigen
[autoit]Func _INetGetSource($s_URL, $s_Header = '')
[/autoit]
If StringLeft($s_URL, 7) <> 'http://' And StringLeft($s_URL,
<> 'https://' Then $s_URL = 'http://' & $s_URL
Local $h_DLL = DllOpen("wininet.dll")
Local $ai_IRF, $s_Buf = ''
Local $ai_IO = DllCall($h_DLL, 'int', 'InternetOpen', 'str', "AutoIt v3", 'int', 0, 'int', 0, 'int', 0, 'int', 0)
If @error Or $ai_IO[0] = 0 Then
DllClose($h_DLL)
SetError(1)
Return ""
EndIf
Local $ai_IOU = DllCall($h_DLL, 'int', 'InternetOpenUrl', 'int', $ai_IO[0], 'str', $s_URL, 'str', $s_Header, 'int', StringLen($s_Header), 'int', 0x80000000, 'int', 0)
If @error Or $ai_IOU[0] = 0 Then
DllCall($h_DLL, 'int', 'InternetCloseHandle', 'int', $ai_IO[0])
DllClose($h_DLL)
SetError(1)
Return ""
EndIf
Local $v_Struct = DllStructCreate('udword')
DllStructSetData($v_Struct, 1, 1)
While DllStructGetData($v_Struct, 1) <> 0
$ai_IRF = DllCall($h_DLL, 'int', 'InternetReadFile', 'int', $ai_IOU[0], 'str', '', 'int', 256, 'ptr', DllStructGetPtr($v_Struct))
$s_Buf &= StringLeft($ai_IRF[2], DllStructGetData($v_Struct, 1))
WEnd
DllCall($h_DLL, 'int', 'InternetCloseHandle', 'int', $ai_IOU[0])
DllCall($h_DLL, 'int', 'InternetCloseHandle', 'int', $ai_IO[0])
DllClose($h_DLL)
Return $s_Buf
EndFunc ;==>_INetGetSource
AutoIt v3 ist der Agent, einfach ändern.Edit: Scheint aber trotzdem nicht mit 3.3.2.0 zu gehen.
-
Vielen Dank für die ganzen Antworten!
mit
HttpSetUserAgent
hat es tatsächlich geklappt!
Und ich dachte immer, das mit neuen AutoIt Versionen nur Vorteile und keine Nachteile gibt....
Nochmals Vielen Dank! -
Vielen Dank für die ganzen Antworten!
mit
HttpSetUserAgent
hat es tatsächlich geklappt!
Und ich dachte immer, das mit neuen AutoIt Versionen nur Vorteile und keine Nachteile gibt....
Nochmals Vielen Dank!Ah sehr gut

Die haben es in die Hilfe nur für InetGet geschrieben, habs dennen mal gepostet

-
HttpSetUserAgent funktioniert mit InetGet und InetRead. Da in der neuen AutoIt-Version _InetGetSource intern InetRead verwendet (ist nur noch ein Wrapper), gilt der Useragent auch dafür

-
Jup steht nur leider so nicht in der Hilfe, hab dennen mal geschrieben
Edit:
Hab Bug Report gemacht, ist in 3.3.3.0 gefixed