AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fremdes Fenster schließen

Ein Thema von youuu · begonnen am 25. Jul 2010 · letzter Beitrag vom 26. Jul 2010
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#11

AW: Fremdes Fenster schließen

  Alt 25. Jul 2010, 21:16
Also ein WM_Close ist aber nicht so ganz das richtige. Du wirst schon den Button mit der Aufschrift "JA" suchen müssen und den dann Klicken müssen. Dafür gibt es eine BN_*- oder BM_*-Konstante. Wie du an den Button rankommst: Hier im Forum suchenWinSpy
Mit Threads arbeiten:
Du erstellst ein Objekt, welches von TThread abgeleitet wird. Dann überschreibst du die Execute-Prozedur (mit Hilfe der Programmierhilfe geht das ganz einfach). In deiner Execute-Prozedur wirst du als allererstes mal so 2 Sekunden oder mehr warten müssen (das Fenster benötigt ja auch eine gewisse Vorlaufzeit, bis es da ist (du kannst ja nicht gleichzeitig den Thread starten während das Fenster kommt). Der Thread muss das .FreeOnTerminate gesetzt haben (:= true), dann fegt er sich auch gleich noch sauber aus dem Speicher.

Bernhard

EDIT: Du willst alle Links? - Warum dann nicht mit IdHTTP zugreifen?
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#12

AW: Fremdes Fenster schließen

  Alt 26. Jul 2010, 20:36
Zitat:
EDIT: Du willst alle Links? - Warum dann nicht mit IdHTTP zugreifen?

Ich geif doch per IdHTTP darauf zu?

Delphi-Quellcode:
procedure GetLinksFromURL(url: string; s: THashedStringList;);
var
  doc: IHTMLDocument2;
  IdHTTP: TIdHTTP;
begin
      Assert((url <> '') and Assigned(s));
      IdHTTP := TIdHTTP.Create;
      try
        IdHTTP.HandleRedirects := true;
        IdHTTP.Request.UserAgent :=
          'User-agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1)';
        doc := GetDocument(IdHTTP.Get(url)) as IHTMLDocument2;
        if Assigned(doc) then
          ExtractLinks(doc, s);
      finally
        IdHTTP.Free;
      end;
end;
Steven
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#13

AW: Fremdes Fenster schließen

  Alt 26. Jul 2010, 20:43
Die Meldung kommt mir aber so vor, als würdest du die TWebbrowser-Wrapper-Klasse verwenden. Solch eine Meldung finde ich für Indy unüblich.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#14

AW: Fremdes Fenster schließen

  Alt 26. Jul 2010, 20:46
Delphi-Quellcode:
procedure ExtractLinks(doc: IHTMLDocument2; s: THashedStringList);
var
  ec: IHTMLElementCollection;
  e: IHTMLElement;
  i: integer;
  url: Variant;
begin
  ec := doc.links;
  for i := 0 to Pred(ec.length) do
  begin
    e := ec.item(i, 0) as IHTMLElement;
    url := VarToStr(e.getAttribute('href', 0));
    if url <> 'then
      s.Add(url);
  end;
end;

function GetDocument(const markup: WideString): IDispatch;
var
  doc: OleVariant;
begin
  Result := CoHtmlDocument.Create;
  doc := Result;
  doc.Open;
  doc.Write(markup);
  doc.Close;
end;
Sehen die weiteren functionen/proceduren aus aus
Steven
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#15

AW: Fremdes Fenster schließen

  Alt 26. Jul 2010, 21:07
Wenn du JavaScript haben willst, kommst du um einen Renderer nicht drum rum. Ohne JavaScript gehts auch anders. Du musst halt mit einem XML-Parser der auch Fehler akzeptiert da ran und dir dann die href-Attribute der A-Tags geben lassen.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#16

AW: Fremdes Fenster schließen

  Alt 26. Jul 2010, 21:12
Hm wie meinst du das einen rendere?
Steven
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#17

AW: Fremdes Fenster schließen

  Alt 26. Jul 2010, 21:18
Also guck mal: Wenn per Javascript irgendwelche Links erzeugt werden, dann trägt die der IE schön in seinen DOM ein und du kannst die Javascript-Links auch finden.
Wenn du auf diese verzichten kannst, kannst du auch einen einfachen XML-Parser nehmen. Die sind bestimmt schneller. (Diesen nehme ich hier)

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz