|
You last visited: Today at 11:03
Advertisement
[S] Hilfe bei WinHttp
Discussion on [S] Hilfe bei WinHttp within the AutoIt forum part of the Coders Den category.
06/11/2013, 21:54
|
#1
|
elite*gold: 10
Join Date: Aug 2008
Posts: 253
Received Thanks: 23
|
[S] Hilfe bei WinHttp
Hi Leutz
hab die letzten Tage mir die Tut´s hier angeschaut und mal drauf los geschrieben dabei raus gekommen ist das.
Code:
#region ###Includes###
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiButton.au3>
#include <IE.au3>
#include <WinHttp.au3>
#endregion ###Includes###
#region ###GUI###
$Hauptform = GUICreate("Neopets Tool by A1C3A1B2", 450, 250, -1, -1, -1, -1)
GUISetIcon("Images\ghostview.ico", -1)
GUICtrlCreatePic("Images\loginscreen.jpg", 0, 0, 450, 250, 67108864)
GUICtrlSetState(-1, $GUI_DISABLE)
$userinput = GUICtrlCreateInput("Benutzername", 240, 80, 150, 20, 1, 512)
$pwinput = GUICtrlCreateInput("Password", 240, 120, 150, 20, 33, 512)
$loginbutton = GUICtrlCreateButton("Login", 200, 160, 100, 30, -1, -1)
$regbutton = GUICtrlCreateButton("Registrieren", 310, 160, 100, 30, -1, -1)
GUISetState(@SW_SHOW)
#endregion ###GUI###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $regbutton
_registrieren()
Case $loginbutton
_login(GUICtrlRead($userinput), GUICtrlRead($pwinput))
Exit
EndSwitch
WEnd
#region ###Funktionen###
Func _registrieren()
$IE = _IECreate("www.neopets.com/login/index.phtml", 1)
EndFunc ;==>_registrieren
Func _login($userinput, $pwinput)
$hSession = _WinHttpOpen("Mozilla/5.0 Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0")
$hConnect = _WinHttpConnect($hSession, "www.neopets.com")
$sHTML = _WinHttpSimpleRequest($hConnect, "POST", "login.phtml", "www.neopets.com", "&username=" & $userinput & "&password=" & $pwinput)
FileWrite("Antwort 2.html", $sHTML)
_WinHttpCloseHandle($hConnect)
_WinHttpCloseHandle($hSession)
EndFunc ;==>_login
#endregion ###Funktionen###
Wäre sehr dankbar wenn mir überhaupt mal einer sagt ob man das so lassen kann. 
Jetzt meine Frage zu dem ganzen an der ich mir schon Stunden/Tage die Haare rausreise.
Wie schaff ich es das mir das hier ...
Code:
FileWrite("Antwort 2.html", $sHTML)
also die Antwort von dem ganzen nicht in eine Datei geschrieben wird sondern bei richtigem Login die Webseite in einem neuen GUI geöffnet wird.
Wenn das ganze iwann mal fertig ist soll der Bot/Tool wenn ich mich einlogge 1 x Tag die ganzen Links auf dieser Seite durcharbeiten
Bin für jede Hilfe und jeden Verbesserungsvorschlag dankbar !
P.S.: Arbeite erst seit zwei Tagen mit Autoit
Update:
Update2:
Update3: 
|
|
|
06/11/2013, 22:29
|
#2
|
elite*gold: 70
Join Date: Jul 2011
Posts: 496
Received Thanks: 194
|
Wird dir beim erfolgreichen Login irgendwas zurückgegeben?
|
|
|
06/11/2013, 22:39
|
#3
|
elite*gold: 10
Join Date: Aug 2008
Posts: 253
Received Thanks: 23
|
Quote:
Originally Posted by v0ℓℓe
Wird dir beim erfolgreichen Login irgendwas zurückgegeben?
|
Ja er schreibt die Datei Antwort2.html und wenn ich diese öffne bin ich Erfolgreich eingeloggt nutze ich falschen User Daten dann speichert er in der Antwort2.html das der Benutzername nicht vergeben ist.
Wie gesagt der Login funktioniert nur steh ich jetzt aufm Schlauch und weis einfach nicht mehr weiter wie kann ich z.B. wenn ich auf Login drück das sich ein neues GUI öffnet mit neuen Auswahlmögklichkeiten (Button mit Link1 usw.)oder ne Übersicht bekomme von dem jeweiligen Pet das ich habe.
Mir würde auch nur irgend ein Ansatz reichen wie es weiter gehen soll ...
Merci und Gruß
|
|
|
06/11/2013, 23:16
|
#4
|
elite*gold: 70
Join Date: Jul 2011
Posts: 496
Received Thanks: 194
|
Dann nimmst du dir die antwort2.html und splittest dir den jeweiligen Text aus der Datei und speicherst ihn in eine Variable zwischen.
|
|
|
06/11/2013, 23:19
|
#5
|
elite*gold: 10
Join Date: Aug 2008
Posts: 253
Received Thanks: 23
|
Ok danke werd mich dran versuchen  danke für den Tipp .
Für weiter Infos bin ich weiterhin dankbar....
|
|
|
06/11/2013, 23:24
|
#6
|
elite*gold: 70
Join Date: Jul 2011
Posts: 496
Received Thanks: 194
|
Wenn du Hilfe brauchst einfach hier in deinen Thread schreiben, dafür ist er ja da.
|
|
|
06/12/2013, 02:42
|
#7
|
elite*gold: 10
Join Date: Aug 2008
Posts: 253
Received Thanks: 23
|
So hab den Code jetzt noch mal bissl erweitert  ich hoffe das man das so lassen kann
Sieht jetzt wie folgt aus :
Loginscreen:
Wenn man das richtige PW eingibt wird man weitergeleitet auf das nächste GUI (noch ohne Funktion)
Sollte man falsche Daten eingeben kommt folgende Meldung
und hier nochmal der Code:
Code:
#region ###Includes###
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiButton.au3>
#include <WinHttp.au3>
#endregion ###Includes###
#region ###GUI###
;~ Loginform
$Loginform = GUICreate("Neopets Tool by A1C3A1B2", 450, 250, -1, -1, -1, -1)
GUISetIcon("Images\ghostview.ico", -1)
GUICtrlCreatePic("Images\loginscreen.jpg", 0, 0, 450, 250, 67108864)
GUICtrlSetState(-1, $GUI_DISABLE)
$userinput = GUICtrlCreateInput("Benutzername", 240, 80, 150, 20, 1, 512)
$pwinput = GUICtrlCreateInput("Password", 240, 120, 150, 20, 33, 512)
$loginbutton = GUICtrlCreateButton("Login", 200, 160, 100, 30, -1, -1)
$regbutton = GUICtrlCreateButton("Registrieren", 310, 160, 100, 30, -1, -1)
GUISetState(@SW_SHOW)
;~ Hauptform
$Hauptform = GUICreate("Neopets Tool by A1C3A1B2", 776, 576, -1, -1, -1, -1)
GUISetIcon("Images\ghostview.ico", -1)
$button1 = GUICtrlCreateButton("text1", 60, 80, 100, 30, -1, -1)
$button2 = GUICtrlCreateButton("test2", 60, 140, 100, 30, -1, -1)
GUISetState(@SW_HIDE)
#endregion ###GUI###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $regbutton
_registrieren()
Case $loginbutton
_login(GUICtrlRead($userinput), GUICtrlRead($pwinput))
Case $button1
_test()
EndSwitch
WEnd
#region ###Funktionen###
Func _registrieren()
ShellExecute("www.neopets.com/login/index.phtml", 0)
EndFunc ;==>_registrieren
Func _login($userinput, $pwinput)
$hSession = _WinHttpOpen("Mozilla/5.0 Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0")
$hConnect = _WinHttpConnect($hSession, "www.neopets.com")
$sHTML = _WinHttpSimpleRequest($hConnect, "POST", "login.phtml", "www.neopets.com", "&username=" & $userinput & "&password=" & $pwinput)
FileWrite("start.txt", $sHTML)
$startdatei = "start.txt"
$startread = FileReadLine("start.txt", 21)
$suchstring = "Welcome"
If StringInStr($startread, $suchstring) Then
GUISetState(@SW_HIDE, $Loginform)
GUISetState(@SW_SHOW, $Hauptform)
Else
FileDelete("start.txt")
MsgBox(0, "Neopets Tool by A1C3A1B2", "Benutzername oder Passwort falsch")
EndIf
_WinHttpCloseHandle($hConnect)
_WinHttpCloseHandle($hSession)
EndFunc ;==>_login
Func _test()
ShellExecute("www.neopets.com/login/index.phtml", 0)
EndFunc ;==>_test
#endregion ###Funktionen###
da dies wirklich mein allererstes Projekt ist würde ich mich wahnsinnig über Feedback freuen 
Grueßen
|
|
|
06/12/2013, 10:01
|
#8
|
elite*gold: 1445
Join Date: Sep 2011
Posts: 199
Received Thanks: 177
|
Dafür, dass es dein erstes Script ist machst du so gut wie keine Fehler, das ist schonmal was gutes.
Das einzigste was ich nachm groben Überfliegen zu verbessern habe ist, dass du $sHTML in eine Datei speicherst und dann mit StringInStr arbeitest.
Besser wäre es so:
PHP Code:
$sHTML = _WinHttpSimpleRequest($hConnect, "POST", "login.phtml", "www.neopets.com", "&username=" & $userinput & "&password=" & $pwinput)
;~ FileWrite("start.txt", $sHTML)
;~ $startdatei = "start.txt"
;~ $startread = FileReadLine("start.txt", 21)
;~ $suchstring = "Welcome"
;~ If StringInStr($startread, $suchstring) Then
If StringRegExp($sHTML, ??????) = 1 Then
GUISetState(@SW_HIDE, $Loginform)
GUISetState(@SW_SHOW, $Hauptform)
Else
;~ FileDelete("start.txt")
MsgBox(0, "Neopets Tool by A1C3A1B2", "Benutzername oder Passwort falsch")
EndIf
;~ FileDelete("start.txt") // Müsste ohnehin nach die If-Abfrage, da die Datei immer gelöscht werden muss, weil der alte Text nicht überschrieben wird sondern der neue angehängt wird.
Das Pattern für StringRegExp kann ich dir jetzt nicht sagen, dafür müsste ich einmal die start.txt sehen.
|
|
|
06/12/2013, 12:24
|
#9
|
elite*gold: 10
Join Date: Aug 2008
Posts: 253
Received Thanks: 23
|
Quote:
Originally Posted by #System
Dafür, dass es dein erstes Script ist machst du so gut wie keine Fehler, das ist schonmal was gutes.
Das einzigste was ich nachm groben Überfliegen zu verbessern habe ist, dass du $sHTML in eine Datei speicherst und dann mit StringInStr arbeitest.
Besser wäre es so:
PHP Code:
$sHTML = _WinHttpSimpleRequest($hConnect, "POST", "login.phtml", "www.neopets.com", "&username=" & $userinput & "&password=" & $pwinput) ;~ FileWrite("start.txt", $sHTML) ;~ $startdatei = "start.txt" ;~ $startread = FileReadLine("start.txt", 21) ;~ $suchstring = "Welcome" ;~ If StringInStr($startread, $suchstring) Then If StringRegExp($sHTML, ??????) = 1 Then GUISetState(@SW_HIDE, $Loginform) GUISetState(@SW_SHOW, $Hauptform) Else ;~ FileDelete("start.txt") MsgBox(0, "Neopets Tool by A1C3A1B2", "Benutzername oder Passwort falsch") EndIf ;~ FileDelete("start.txt") // Müsste ohnehin nach die If-Abfrage, da die Datei immer gelöscht werden muss, weil der alte Text nicht überschrieben wird sondern der neue angehängt wird.
Das Pattern für StringRegExp kann ich dir jetzt nicht sagen, dafür müsste ich einmal die start.txt sehen.
|
Danke für dein Feedback.
Hab´s jetzt nochmal abgeändert Funktioniert optimal
Hier nochmal mein Code:
Code:
#region ###Includes###
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiButton.au3>
#include <WinHttp.au3>
#endregion ###Includes###
#region ###GUI###
;~ Loginform
$Loginform = GUICreate("Neopets Tool by A1C3A1B2", 450, 250, -1, -1, -1, -1)
GUISetIcon("Images\ghostview.ico", -1)
GUICtrlCreatePic("Images\loginscreen.jpg", 0, 0, 450, 250, 67108864)
GUICtrlSetState(-1, $GUI_DISABLE)
$userinput = GUICtrlCreateInput("Benutzername", 240, 80, 150, 20, 1, 512)
$pwinput = GUICtrlCreateInput("Password", 240, 120, 150, 20, 33, 512)
$loginbutton = GUICtrlCreateButton("Login", 200, 160, 100, 30, -1, -1)
$regbutton = GUICtrlCreateButton("Registrieren", 310, 160, 100, 30, -1, -1)
GUISetState(@SW_SHOW)
;~ Hauptform
$Hauptform = GUICreate("Neopets Tool by A1C3A1B2", 776, 576, -1, -1, -1, -1)
GUISetIcon("Images\ghostview.ico", -1)
$userpic = GUICtrlCreatePic("resize\", 30, 30, 150, 150, -1, -1)
GUISetState(@SW_HIDE)
#endregion ###GUI###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $regbutton
_registrieren()
Case $loginbutton
_login(GUICtrlRead($userinput), GUICtrlRead($pwinput))
EndSwitch
WEnd
#region ###Funktionen###
Func _registrieren()
ShellExecute("www.neopets.com/login/index.phtml", 0)
EndFunc ;==>_registrieren
Func _login($userinput, $pwinput)
$hSession = _WinHttpOpen("Mozilla/5.0 Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0")
$hConnect = _WinHttpConnect($hSession, "www.neopets.com")
$sHTML = _WinHttpSimpleRequest($hConnect, "POST", "login.phtml", "www.neopets.com", "&username=" & $userinput & "&password=" & $pwinput)
If StringRegExp($sHTML, "Welcome") = 1 Then
GUISetState(@SW_HIDE, $Loginform)
GUISetState(@SW_SHOW, $Hauptform)
Else
MsgBox(0, "Neopets Tool by A1C3A1B2", "Benutzername oder Passwort falsch")
EndIf
_WinHttpCloseHandle($hConnect)
_WinHttpCloseHandle($hSession)
EndFunc ;==>_login
#endregion ###Funktionen###
So nu mal weiter tüfteln und Tuts lesen !
Wenn mir noch einer Tipps oder Infos geben kann wie ich z.B. per Button Klick einen Link sende und bei Erfolgreichem senden des Links z.B. Status: Ok im GUI anzeige wäre ich wie immer sehr Dankbar darüber!!
Peace
|
|
|
06/22/2013, 03:59
|
#10
|
elite*gold: 10
Join Date: Aug 2008
Posts: 253
Received Thanks: 23
|
Ich muss hier leider noch mal Nerven  und zwar komm ich einfach nicht weiter der Code sieht immer noch folgendermaßen aus:
Code:
#region ###Includes###
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiButton.au3>
#include <WinHttp.au3>
#endregion ###Includes###
#region ###GUI###
;~ Loginform
$Loginform = GUICreate("Neopets Tool by A1C3A1B2", 450, 250, -1, -1, -1, -1)
GUISetIcon("Images\ghostview.ico", -1)
GUICtrlCreatePic("Images\loginscreen.jpg", 0, 0, 450, 250, 67108864)
GUICtrlSetState(-1, $GUI_DISABLE)
$userinput = GUICtrlCreateInput("Benutzername", 240, 80, 150, 20, 1, 512)
$pwinput = GUICtrlCreateInput("Password", 240, 120, 150, 20, 33, 512)
$loginbutton = GUICtrlCreateButton("Login", 200, 160, 100, 30, -1, -1)
$regbutton = GUICtrlCreateButton("Registrieren", 310, 160, 100, 30, -1, -1)
GUISetState(@SW_SHOW)
;~ Hauptform
$Hauptform = GUICreate("Neopets Tool by A1C3A1B2", 776, 576, -1, -1, -1, -1)
GUISetIcon("Images\ghostview.ico", -1)
$userpic = GUICtrlCreatePic("resize\", 30, 30, 150, 150, -1, -1)
GUISetState(@SW_HIDE)
#endregion ###GUI###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $regbutton
_registrieren()
Case $loginbutton
_login(GUICtrlRead($userinput), GUICtrlRead($pwinput))
EndSwitch
WEnd
#region ###Funktionen###
Func _registrieren()
ShellExecute("www.neopets.com/login/index.phtml", 0)
EndFunc ;==>_registrieren
Func _login($userinput, $pwinput)
$hSession = _WinHttpOpen("Mozilla/5.0 Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0")
$hConnect = _WinHttpConnect($hSession, "www.neopets.com")
$sHTML = _WinHttpSimpleRequest($hConnect, "POST", "login.phtml", "www.neopets.com", "&username=" & $userinput & "&password=" & $pwinput)
If StringRegExp($sHTML, "Welcome") = 1 Then
GUISetState(@SW_HIDE, $Loginform)
GUISetState(@SW_SHOW, $Hauptform)
Else
MsgBox(0, "Neopets Tool by A1C3A1B2", "Benutzername oder Passwort falsch")
EndIf
_WinHttpCloseHandle($hConnect)
_WinHttpCloseHandle($hSession)
EndFunc ;==>_login
#endregion ###Funktionen###
Wie schaff ich es jetzt das mir in der Hauptform z.B. mein Benutzerbild + Kontostand + Petname usw. angezeigt wird ?
Ich komm einfach nicht weiter und verzweifel bald an meinem vorhaben und schmeiß das Ding in ein Eck !!!!
Wer helfen kann/möchte ist dazu Herzlich Eingeladen unter der Adresse reinzuschauen:

User: testpet2013
Pw: zipfel2013
Kleines Beispiel würde mir schon reichen muss auch nicht von dieser Seite sein Hauptsache ich kann mir mal ein Bild davon machen
Merci Leutz
|
|
|
06/22/2013, 12:16
|
#11
|
elite*gold: 574
Join Date: Nov 2010
Posts: 2,498
Received Thanks: 726
|
Das liegt daran, dass du bei deiner Request ein falsches Packet sendest.
|
|
|
06/22/2013, 12:24
|
#12
|
elite*gold: 10
Join Date: Aug 2008
Posts: 253
Received Thanks: 23
|
Quote:
Originally Posted by Njahs
Das liegt daran, dass du bei deiner Request ein falsches Packet sendest.
|
Öhm jetzt hauts mir die  raus wenn ich deiner Meinung ein falsches Packet schicke dürfte doch der Login nicht funktionieren oder lieg ich da Falsch aber der funktioniert ja.
Meine frage bezog sich ja da drauf wie ich jetzt weitermachen kann nach meinem Login z.B. in der zweiten FORM mein Userbild+Petname von der Seite anzeigen lasse.
Bitte korrigieren falls ich Falsch liege
|
|
|
06/22/2013, 13:03
|
#13
|
elite*gold: 574
Join Date: Nov 2010
Posts: 2,498
Received Thanks: 726
|
(Ich gehe mal davon aus, dass du deine Packets mit LiveHTTP Headers abfängst)
Wenn du dich erfolgreich eingeloggt hast, musst du einfach mal in das Inventar gehen
und schauen, was dein Browser da macht, und was dir der Server sendet.
Ausschauen tut es dann so:
Nun weißt du hoffentlich, was du zu tun hast.
Falls nicht:
Code:
_WinHttpSimpleRequest($hConnect, "GET","/inventory.phtml" , "www.neopets.com")
Edit:// Um die URL von deinem Petbild herauszufinden musst du nur im Quelltext danach suchen,
und dann mit StringRegEx herausfiltern. (  )
|
|
|
06/22/2013, 13:09
|
#14
|
elite*gold: 10
Join Date: Aug 2008
Posts: 253
Received Thanks: 23
|
Quote:
Originally Posted by Njahs
Edit:// Um die URL von deinem Petbild herauszufinden musst du nur im Quelltext danach suchen,
und dann mit StringRegEx herausfiltern. (  )
|
Danke das werde ich mir mal durchlesen und hoffentlich dann einen kleinen Erfolg zu sehen wenn sich Tage lang nichts tut verliert man die Lust am rumbasteln....
|
|
|
 |
Similar Threads
|
[Help]Autoit WinHttp
12/14/2012 - AutoIt - 1 Replies
Bitte Schließen
please Close
|
WinHTTP Frage
10/07/2012 - AutoIt - 5 Replies
Hallo leute habe eine Frage wie kan ich wen ich mit WinHTTP eingeloggt habe auf andere Seiten weiter navigieren mfg
|
Suche WinHTTP.au3
03/12/2012 - AutoIt - 1 Replies
HEy,
wie der Titel schon sagt suche ich die WinHTTP.au3 include datei.
Wäre nett wenn mir die jemand uploadet
lg
|
Help with winhttp
09/21/2011 - AutoIt - 5 Replies
Hi there,
I'm trying to learn winhttp functions from winhttp udf.
I would like to automate facebook forms with it. but i don't know how to get fb forms info for headers and etc. does anyone here knows a good documentation or even better a working example code for fb?
-Note: i've tried wireshark but it doesnt support my network interface.
|
WINHTTP.dLL
07/02/2006 - Technical Support - 2 Replies
Hilfe Ich da ich heute Formatiert habe und alles neu drauf laden musste usw..... hab ich nun ein neues problem MSN will nicht Starten begründung winHTTP.dll wurde nicht gefunden!
|
All times are GMT +1. The time now is 11:04.
|
|