Entwickler-Ecke

Internet / Netzwerk - Internet Explorer Adresse


pk910 - Mo 14.05.07 16:24
Titel: Internet Explorer Adresse
Wie kann ich feststellen, ob der Internet Explorer gerade läuft?
und wie kann ich dann feststellen, welche seite aufgerufen wurde?


Chryzler - Mo 14.05.07 16:47

Du könntest ein Add-on für den Internet Explorer schreiben, oder nach dem Prozess suchen. Die aktuelle Internetseite kannst du jedoch am einfachsten nur über ein Add-on herausfinden, würd ich jetzt sagen.


jakobwenzel - Mo 14.05.07 17:02

Anhand der Fenstercaption die IE-Fenster finden, dann das Handle vom Adressfeld und das dann auslesen.


Chryzler - Mo 14.05.07 17:47

user profile iconjakobwenzel hat folgendes geschrieben:
Anhand der Fenstercaption die IE-Fenster finden, dann das Handle vom Adressfeld und das dann auslesen.

Und wenn der User gerade am eintippen einer neuen Adresse ist, dann hast du Pech mit dieser Methode. ;)
Was mir noch eingefallen ist, du könntest einen HTTP-Proxyserver machen (geht sehr einfach mit TIdHTTPProxyServer) und von dort dann die URLs beziehen.


Andreas L. - Mo 14.05.07 17:59

user profile iconChryzler hat folgendes geschrieben:
user profile iconjakobwenzel hat folgendes geschrieben:
Anhand der Fenstercaption die IE-Fenster finden, dann das Handle vom Adressfeld und das dann auslesen.

Und wenn der User gerade am eintippen einer neuen Adresse ist, dann hast du Pech mit dieser Methode. ;)
Was mir noch eingefallen ist, du könntest einen HTTP-Proxyserver machen (geht sehr einfach mit TIdHTTPProxyServer) und von dort dann die URLs beziehen.


Aber 1. musst du damit den User "zwingen" deinen Proxy in den Internetoptionen einzutragen und 2. musst du erst noch die Datei IdHttpproxysever.pas ein bisschen editieren. Im normalen Version dieser Datei ist es nur möglich den Dateinamen und Pfad zu bekommen, nicht jedoch die Domain. Was du ändern musst erfährst du hier: http://andreas-lauss.de/archives/tidhttpproxyserver-und-der-verlorene-host


Chryzler - Mo 14.05.07 18:08

user profile iconAndreas L. hat folgendes geschrieben:
user profile iconChryzler hat folgendes geschrieben:
user profile iconjakobwenzel hat folgendes geschrieben:
Anhand der Fenstercaption die IE-Fenster finden, dann das Handle vom Adressfeld und das dann auslesen.

Und wenn der User gerade am eintippen einer neuen Adresse ist, dann hast du Pech mit dieser Methode. ;)
Was mir noch eingefallen ist, du könntest einen HTTP-Proxyserver machen (geht sehr einfach mit TIdHTTPProxyServer) und von dort dann die URLs beziehen.


Aber 1. musst du damit den User "zwingen" deinen Proxy in den Internetoptionen einzutragen und 2. musst du erst noch die Datei IdHttpproxysever.pas ein bisschen editieren. Im normalen Version dieser Datei ist es nur möglich den Dateinamen und Pfad zu bekommen, nicht jedoch die Domain. Was du ändern musst erfährst du hier: http://andreas-lauss.de/archives/tidhttpproxyserver-und-der-verlorene-host

Also ich habe die Domain immer über den Header "Host" ausgelesen, hat bei mir immer funktioniert.


Andreas L. - Mo 14.05.07 18:58

user profile iconChryzler hat folgendes geschrieben:
user profile iconAndreas L. hat folgendes geschrieben:
user profile iconChryzler hat folgendes geschrieben:
user profile iconjakobwenzel hat folgendes geschrieben:
Anhand der Fenstercaption die IE-Fenster finden, dann das Handle vom Adressfeld und das dann auslesen.

Und wenn der User gerade am eintippen einer neuen Adresse ist, dann hast du Pech mit dieser Methode. ;)
Was mir noch eingefallen ist, du könntest einen HTTP-Proxyserver machen (geht sehr einfach mit TIdHTTPProxyServer) und von dort dann die URLs beziehen.


Aber 1. musst du damit den User "zwingen" deinen Proxy in den Internetoptionen einzutragen und 2. musst du erst noch die Datei IdHttpproxysever.pas ein bisschen editieren. Im normalen Version dieser Datei ist es nur möglich den Dateinamen und Pfad zu bekommen, nicht jedoch die Domain. Was du ändern musst erfährst du hier: http://andreas-lauss.de/archives/tidhttpproxyserver-und-der-verlorene-host

Also ich habe die Domain immer über den Header "Host" ausgelesen, hat bei mir immer funktioniert.


Und genau der Host kommt bei mir im Header lustigerweise nicht vor.


Delphi-Quelltext
1:
2:
for i := 0 to AHeaders.count -1 do
listbox1.items.add(AHeaders.Strings[i]);

Oder so ähnlich, hab jetzt Delphi nicht offen.


pk910 - So 20.05.07 01:31

user profile iconjakobwenzel hat folgendes geschrieben:
Anhand der Fenstercaption die IE-Fenster finden, dann das Handle vom Adressfeld und das dann auslesen.



Kann man dazu feststellen, ob enter gedrückt wurde?


oder erstmal generall: wie mache ich das? ^^


HelgeLange - So 20.05.07 04:16

probier das mal :


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
function GetIE_URL(var List: TStringList): Integer;
var sw  : TShellWindows;
    i,j : integer;
    ie  : IWebBrowser;
begin
 i := 0;
 List := TStringList.Create;
 sw := TShellWindows.Create(nil);
 for j := 0 to (sw.Count-1do begin
  sw.item(j).QueryInterface(IWebBrowser, ie);
  if ie <> nil then begin
   List.Add(ie.Get_LocationURL);
   Inc(i);
  end;
 end;
 If i = 0 Then List.Destroy;
 Result := i;
end;


pk910 - So 20.05.07 10:42

TShellWindows
IWebBrowser

kennt er nicht... wie mache ich ihm das bekannt?


pokerf4ce - Di 29.05.07 14:58

user profile iconpk910 hat folgendes geschrieben:
TShellWindows
IWebBrowser

kennt er nicht... wie mache ich ihm das bekannt?




IWebBrowser ist warscheinlich TWebBrowser bzw das gleiche, du musst die TWebBrowser Kompo aufs Form ziehen!

und TShellWindows kannst du benutzen mit:

uses
... ShellAPI;


korrigiert mich wenn ich falsch liege


Chryzler - Di 29.05.07 15:44

user profile iconpokerf4ce hat folgendes geschrieben:
user profile iconpk910 hat folgendes geschrieben:
TShellWindows
IWebBrowser

kennt er nicht... wie mache ich ihm das bekannt?




IWebBrowser ist warscheinlich TWebBrowser bzw das gleiche, du musst die TWebBrowser Kompo aufs Form ziehen!

und TShellWindows kannst du benutzen mit:

uses
... ShellAPI;


korrigiert mich wenn ich falsch liege

IWebBrowser ist nicht gleich TWebBrowser, sondern ein Interface. (Was das wiederum ist hab ich bis heute nicht verstanden...). IWebBrowser ist halt in irgendeiner Unit deklariert, keine Ahnung welche.


pokerf4ce - Di 29.05.07 16:06

user profile iconChryzler hat folgendes geschrieben:

IWebBrowser ist halt in irgendeiner Unit deklariert, keine Ahnung welche.



ja in der von TWebBrowser :o, oder?