Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi URLs aus Firefox-Instanzen auslesen (https://www.delphipraxis.net/40651-urls-aus-firefox-instanzen-auslesen.html)

mdx 25. Apr 2009 08:22

Re: URLs aus Firefox-Instanzen auslesen
 
Na toll, jetzt kommt wieder:
[DCC Fehler] E2033 Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen

Also, mein "kompletter" Code (Mal alles so wie du gemacht - Nur Test!)

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ddeman;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

procedure GetCurrentURL(out URL, Title: AnsiString);
var
   DDEClient : TDDEClientConv;
   p, q: PAnsiChar;
   i: Integer;
begin
   DDEClient := TDDEClientConv.Create(nil);
   try
     with DDEClient do if SetLink('IExplore', 'WWW_GetWindowInfo') or
       SetLink('Netscape', 'WWW_GetWindowInfo') or
       SetLink('Mosaic', 'WWW_GetWindowInfo') or
       SetLink('Netscp6', 'WWW_GetWindowInfo') or
       SetLink('Mozilla', 'WWW_GetWindowInfo') or
       SetLink('Firefox', 'WWW_GetWindowInfo') then
       p := RequestData('0xFFFFFFFF')
     else raise Exception.Create('Could not establish browser DDE link');
     if Assigned(p) then try
       q := p;
       Assert(q^ = '"');
       SetLength(URL, StrLen(q));
       Inc(q);
       i := 0;
       while q^ <> '"' do begin
         if (q^ = '\') and (q[1] = '"') then Inc(q);
         Inc(i);
         URL[i] := q^;
         Inc(q);
       end;
       SetLength(URL, i);
       SetLength(Title, StrLen(q));
       i := 0;
       Inc(q, 3);
       while q^ <> '"' do begin
         if (q^ = '\') and (q[1] = '"') then Inc(q);
         Inc(i);
         Title[i] := q^;
         Inc(q);
       end;
       SetLength(Title, i);
     finally
       StrDispose(p);
     end else raise Exception.Create('Could not fetch browser data');
   finally
     DDEClient.Free;
   end;
end;
{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
 url, title: String;
begin
  HIER KOMMT DER FEHLER--> GetCurrentURL(url, title);
  ShowMessage(url + #13#10 + title);
end;

end.

jaenicke 25. Apr 2009 08:25

Re: URLs aus Firefox-Instanzen auslesen
 
Zitat:

Zitat von jaenicke
Delphi-Quellcode:
var
  MyUrl, MyTitle: AnsiString;

Zitat:

Zitat von mdx
Delphi-Quellcode:
var
 url, title: String;

Fällt dir etwas auf? :cyclops:
Der Parameter der Prozedur ist nun einmal ein AnsiString jetzt, und als var-Parameter muss dieser Typ exakt übereinstimmen.

mdx 25. Apr 2009 08:32

Re: URLs aus Firefox-Instanzen auslesen
 
Was man alles übersehen kann =)
Danke @ jaenicke

Also, richtig muss da natürlich sein: AnsiString!


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:57 Uhr.
Seite 3 von 3     123   

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