AGB  ·  Datenschutz  ·  Impressum  







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

GetCurrentUrl in einem Service

Ein Thema von Thanatos81 · begonnen am 18. Feb 2009 · letzter Beitrag vom 19. Feb 2009
Antwort Antwort
Seite 1 von 2  1 2      
Thanatos81
(Gast)

n/a Beiträge
 
#1

GetCurrentUrl in einem Service

  Alt 18. Feb 2009, 10:32
Moin zusammen!

Ich versuche gerade die GetCurrentUrl-Prozedur aus diesem Beitrag in einem Service zu packen.

Hintergrund ist, dass ich überwachen möchte wann welche Internetseite aufgerufen wird. Idealerweise möchte ich URL und Title loggen, URL alleine würde aber auch gehen.

Das Problem ist ja, dass ich aus dem Service heraus auf den Desktop des Users (WinSta0\default) zugreifen muss. Der Desktop reicht, weil an dem entsprechenden Rechner nur ein Benutzer angemeldet ist, die schnelle Benutzerumschaltung aus und auch ein Autologon.

Nun, das Öffnen der WindowStation, des Desktops und ein EnumDesktopWindows funktionieren einwandfrei. Nur das GetCurrentUrl nicht. Habe auch schon versucht vorher SetProcessWindowStation und SetThreadDesktop aufzurufen, das hilft aber leider nichts.

Kann ich GetCurrentUrl in einem Service komplett vergessen, weil es DDE nutzt? Gibt es sonst eine Möglichkeit, z.B. per Handle des Browser, die aktuelle URL auszulesen?

Delphi-Quellcode:
wsHandle := OpenWindowStation('WinSta0', true, WINSTA_ACCESSCLIPBOARD or
  WINSTA_ENUMDESKTOPS or
  WINSTA_ENUMERATE or
  WINSTA_READATTRIBUTES or
  WINSTA_READSCREEN);

if wsHandle <> 0 then
begin
  dHandle := OpenDesktop('Default', 1, false,
    DESKTOP_ENUMERATE or
    DESKTOP_HOOKCONTROL or
    DESKTOP_READOBJECTS or
    DESKTOP_SWITCHDESKTOP);
  if dHandle <> 0 then
  begin
    sl := TStringList.Create;
    try
      sl.Duplicates := dupIgnore;
      EnumDesktopWindows(dHandle, @EnumWindowCallback, Integer(sl));
      sl.SaveToFile('c:\liste.txt');

      if SetProcessWindowStation(wsHandle) <> 0 then
        if SetThreadDesktop(dHandle) <> 0 then
          GetCurrentUrl(url, title); //< - -Hier steigt der Service aus
      

      if (trim(url) <> '') or (trim(title) <> '') then
      begin
        sl.Clear;
        sl.Add(url + ': ' + title);
        sl.SaveToFile('c:\urls.txt');
      end;
      sleep(5000);
    finally
      FreeAndNil(sl);
    end;
  end;
end;
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#2

Re: GetCurrentUrl in einem Service

  Alt 18. Feb 2009, 14:36
Meine Glasskugel sagt mir:
SetThreadDesktop(dHandle); schlägt vllt. fehl.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Thanatos81
(Gast)

n/a Beiträge
 
#3

Re: GetCurrentUrl in einem Service

  Alt 18. Feb 2009, 15:20
Komisch, das sagte meine Glaskugel auch schon. Selber Hersteller?

Deswegen habe ich zwischenzeitlich eine Überprüfung des Rückgabewertes auf ungleich 0 eingebaut. Hab das nur nich neu reingeschrieben, um nicht unnötig zu pushen. Aber ich werd mal gleich den ersten Beitrag dementsprechend editieren.
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#4

Re: GetCurrentUrl in einem Service

  Alt 18. Feb 2009, 15:49
Wo kommt die Funktion überhaupt her?
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Thanatos81
(Gast)

n/a Beiträge
 
#5

Re: GetCurrentUrl in einem Service

  Alt 18. Feb 2009, 15:52
Zitat von Dezipaitor:
Wo kommt die Funktion überhaupt her?
Welche? SetThreadDesktop? Die kommt aus der Api, unter Delphi einfach "Windows" in die uses aufnehmen und schon steht die zur Verfügung.
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#6

Re: GetCurrentUrl in einem Service

  Alt 19. Feb 2009, 00:48
Nein:

GetCurrentUrl
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Thanatos81
(Gast)

n/a Beiträge
 
#7

Re: GetCurrentUrl in einem Service

  Alt 19. Feb 2009, 08:13
Zitat von Thanatos81:
Ich versuche gerade die GetCurrentUrl-Prozedur aus diesem Beitrag in einem Service zu packen.
Na, das hab ich doch extra im ersten Post erwähnt
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: GetCurrentUrl in einem Service

  Alt 19. Feb 2009, 08:20
Verwendest du Vista/Windows 2008
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Thanatos81
(Gast)

n/a Beiträge
 
#9

Re: GetCurrentUrl in einem Service

  Alt 19. Feb 2009, 08:25
Nein, Windows XP und 2000. Vista/Windows 7 sind nicht von Interesse und Server-Systeme eh nicht. Da sitzt niemand dran und surft
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: GetCurrentUrl in einem Service

  Alt 19. Feb 2009, 08:27
Zitat von Thanatos81:
Nein, Windows XP und 2000. Vista/Windows 7 sind nicht von Interesse und Server-Systeme eh nicht. Da sitzt niemand dran und surft
IE7 oder IE8? Dieser wird ja (AFAIK auch unter XP) mit sehr wenigen Rechten gestartet.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 13:07 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