Mit der IE.au3 können ja Formulare ausgefüllt und abgeschickt werden. Nun Frage ich mich Folgendes: Kann man nicht direkt den Browser anweisen, ein POST auszuführen? das wäre doch deutlich einfacher?!
danke
Mit der IE.au3 können ja Formulare ausgefüllt und abgeschickt werden. Nun Frage ich mich Folgendes: Kann man nicht direkt den Browser anweisen, ein POST auszuführen? das wäre doch deutlich einfacher?!
danke
guck mal hier sind viele Beistpiele wie mans macht Klick
du meinst "Automatisierung von Webseiten oder Tools, die das in ihren AGBs verbieten" ?
in wie fern fällt das darunter? alles andere passt garnicht zu der Frage (Keylogger, spaßviren, Bots, Captchas ...)
Schau dir mal die Internet Explorer Objekt Referenz auf MSDN an. (Google!)
Wenn du es dort findest, kannst du den browser mit sicherheit anweisen direkt ein Post zu senden.
habe ich gefunden, nur in wie fern hilft mir das im autoit-kontext?!
Oh, ich seh grade: Das ist ja alles schon in der IE.au3 drinne! Schau dir mal die Funktion __IENavigate an. (Man beachte den doppelten Underline)
; #INTERNAL_USE_ONLY# ===========================================================================================================
; Name...........: __IENavigate
; Description ...: ** Unsupported version of _IENavigate (note second underscore in function name)
; ** Last 4 parameters insufficiently tested.
; ** - Flags and Target can create new windows and new browser object - causing confusion
; ** - Postdata needs SAFEARRAY and we have no way to create one
; Directs an existing browser window to navigate to the specified URL
; Parameters ....: $o_object - Object variable of an InternetExplorer.Application, Window or Frame object
; $s_Url - URL to navigate to (e.g. "http://www.autoitscript.com")
; $f_wait - Optional: specifies whether to wait for page to load before returning
; 0 = Return immediately, not waiting for page to load
; 1 = (Default) Wait for page load to complete before returning
; $i_flags - URL to navigate to (e.g. "http://www.autoitscript.com")
; $s_target - target frame
; $spostdata - data for form method="POST", non-functional - requires safearray
; $s_headers - additional headers to be passed
; Return values .: On Success - Returns -1
; On Failure - Returns 0 and sets @ERROR
; @ERROR - 0 ($_IEStatus_Success) = No Error
; - 1 ($_IEStatus_GeneralError) = General Error
; - 3 ($_IEStatus_InvalidDataType) = Invalid Data Type
; - 4 ($_IEStatus_InvalidObjectType) = Invalid Object Type
; - 6 ($_IEStatus_LoadWaitTimeout) = Load Wait Timeout
; - 8 ($_IEStatus_AccessIsDenied) = Access Is Denied
; - 9 ($_IEStatus_ClientDisconnected) = Client Disconnected
; @Extended - Contains invalid parameter number
; Author ........: Dale Hohm
; Remarks .......: AutoIt3 V3.2 or higher, flags for Tabs require IE7 or higher
; Additional information on the navigate2 method here: http://msdn.microsoft.com/en-us/library/aa752134.aspx
;
; Flags:
; navOpenInNewWindow = 0x1,
; navNoHistory = 0x2,
; navNoReadFromCache = 0x4,
; navNoWriteToCache = 0x8,
; navAllowAutosearch = 0x10,
; navBrowserBar = 0x20,
; navHyperlink = 0x40,
; navEnforceRestricted = 0x80,
; navNewWindowsManaged = 0x0100,
; navUntrustedForDownload = 0x0200,
; navTrustedForActiveX = 0x0400,
; navOpenInNewTab = 0x0800,
; navOpenInBackgroundTab = 0x1000,
; navKeepWordWheelText = 0x2000
;
; Additional documentation on the flags can be found here:
; http://msdn.microsoft.com/en-us/library/aa768360.aspx
; ===============================================================================================================================
Func __IENavigate(ByRef $o_object, $s_Url, $f_wait = 1, $i_flags = 0, $s_target = "", $s_postdata = "", $s_headers = "")
__IEErrorNotify("Warning", "__IENavigate", "Unsupported function called. Not fully tested.")
If Not IsObj($o_object) Then
__IEErrorNotify("Error", "__IENavigate", "$_IEStatus_InvalidDataType")
Return SetError($_IEStatus_InvalidDataType, 1, 0)
EndIf
;
If Not __IEIsObjType($o_object, "documentContainer") Then
__IEErrorNotify("Error", "__IENavigate", "$_IEStatus_InvalidObjectType")
Return SetError($_IEStatus_InvalidObjectType, 1, 0)
EndIf
;
$o_object.navigate($s_Url, $i_flags, $s_target, $s_postdata, $s_headers)
If $f_wait Then
_IELoadWait($o_object)
Return SetError(@error, 0, $o_object)
EndIf
Return SetError($_IEStatus_Success, 0, $o_object)
EndFunc ;==>__IENavigate
Du kannst, wie du siehst die Post Daten via Array bestimmen. Wie genau kann ich dir leider auch nciht sagen. Schau mal hier, da wird es für C++ und VB erklärt:
http://support.microsoft.com/kb/167658/en-us/
letzteres war genau das, was ich auch gefunden habe!
habe grade in der au3 folgenden hinweis bemerkt:
Postdata needs SAFEARRAY and we have no way to create one
Das klingt sehr ernüchternd....
Habe einige "Beispiele" ohne den IE gefunden. Sprich über TCP und WinInet Funktionen. Allerdings scheitern die oft (habe das allerdings nur grob überflogen) daran, den "Return" auszugeben, also den quelltext der "neuen" seite. Wenn du dich damit näher befassen möchtest, sollte Google und "AutoIt http POST" bestimmt eine gute Anlaufstelle sein. Vielleicht findest du bei näherer betrachtung ja genau das was du sucht
Also ich habe nun mal
http://support.microsoft.com/kb/815722/en
befolgt, funktioniert nicht mehr im aktuellen VS