Technische Punkte der Forum -Wasserfüllmaschine 10.06.2004 |
Ich habe ursprünglich gedacht, dass Bearbeiten, Memo usw. auf der Webseite die gleichen wie im Programm sind und mit Griffen kontrolliert werden können, aber später wurde mir klar, dass es keinen Griff gibt! Nachdem ich lange Zeit überprüft habe, sah ich vor einigen Tagen ein Beispiel für die automatische QQ -Anwendung. Zunächst müssen Sie die MSHTML -Einheit in Verwendungen verweisen. Der Code und die Analyse sind wie folgt: var Hform: IHtmlFormElement; HDOC: Ihtmldocument2; Hall: IhtmlelementCollection; Hinput: IhtmlinputElement; IW: IWebrowser2; Hlen, tmPloop: Ganzzahl; VK: Olevariante; Versand: idispatch; Beginnen Wenn (WebBrowse1) zugewiesen wird, wird eine Webseite geöffnet! Beginnen hdoc: = webbrowse1.dokument as ihtmldocument2; Hall: = hdoc.get_all; hlen: = hall.get_length; //// Die oben genannten Schritte sind: Weisen Sie den Inhalt in der Browser -Steuerung HDOC zu. //// Die folgende Operation ist: Schleifen Sie die Gesamtzahl der Gesamtzahl der Bearbeitung des Benutzernamens und des Kennworts durch; für TMPloop: = 0 bis Hlen-1 tun Beginnen vk: = tmPloop; Versand: = Hall.Item (vk, 0); Wenn erfolgt (Isspatch.QueryInterface (iHtmlinputElement, Hinput)), dann /// Wenn diese Kennung eine Bearbeitungssteuerung ist ... Beginnen Sie //// Der Großbuchstaben unten ist erforderlich! /// Die folgende "Text" wird durch den Inhalt auf der Webseite festgelegt. /// Das Passwortbox und der Benutzername sind gleich! Wenn Großbuchstaben (Hinput.Type _) = 'Text', dann Hinput.Value: = 'Tress' sonst wenn Großbuchstaben (Hinput.Type _) = 'Passwort', dann Hinput.Value: = 'Tress'; Ende; Wenn erfolgt (sendet.queryinterface (iHtmlFormElement, HForm)) und (Großbuchstaben (HFORM.NAME) = 'THEFORM'), dann dann /// Dies ist die Formulareinreichung. /// und es ist nicht notwendig, das Namensattribut zu beurteilen, aber es kann auch anhand anderer Attribute beurteilt werden. HFORM.SUBMIT; Ende; //// für das Ende; Ende; Ende; An diesem Punkt ist ein Beispiel für die automatische Anmeldung bereit Natürlich können Sie es auch hier in andere Dinge ändern, z. Es war genug hier. Sie können es dem obigen Code hinzufügen: var ...... ...... IW: IWebrowser2; Beginnen ..... IW: = GetFrame (3); /// Die nachfolgenden Operationen sind gleich, dh die Funktion der oben genannten Vorgänge besteht darin, den Inhalt in einem Framework als Webseite zu verarbeiten. hdoc: = iw.document as ihtmldocument2; Hall: = hdoc.get_all; ...... ...... /// Die Funktion getFrame () lautet wie folgt und muss den Verwendungen ActiveX -Einheiten hinzufügen: Funktion tfrmain.getframe (Frameno: Integer): iWebBrowser2; var Olecontainer: Iolecontainer; Enum: Ienumunnown; UNK: IUKNNOWN; Abgerufen: Plongint; Beginnen während webbrowse1.readyState <> readystate_complete tun application.ProcessMessages; Wenn zugewiesen (webrowse.document) dann Beginnen Abgerufen: = nil; Olecontainer: = webbrowse.document as iolecontainer; OleContainer.EnumObjects (OleContf_embeding, Enum); Enum.skip (Frameno); Enum.Next (olecontf_embeddings, Unk, abgerufen); Ergebnis: = UNK als iWebbrowser2; Ende anders Ergebnis: = nil; Ende; Ein weiterer zu erklärender Punkt ist der Sprung des Rahmens auf der Webseite! webbrowse.navigae ("Die zu übertragende Webadresse", Flag1, Flag2); Die beiden Parameter haben den Typ: olevariante; Der erste Parameter erfordert keine Zuordnung, sondern kontrolliert andere Optionen für das Öffnen der Webseite (z. B.: Öffnen in einer neuen Webseite usw.). Was wir bedienen möchten, ist der zweite Parameter Öffnen Sie eine Webseite in einem Frame! Auf diese Weise kann das Hinzufügen eines Timers und eines Codes eine komplette Wasserfüllmaschine erstellen! |