Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Service / Durchsuche von Fenstertiteln.. (https://www.delphipraxis.net/48145-service-durchsuche-von-fenstertiteln.html)

DarKlajid 21. Jun 2005 08:42


Service / Durchsuche von Fenstertiteln..
 
Mahlzeit.

Hintergrund: Hier läuft eine Applikation auf diversen Rechnern, die unattended laufen (remote-monitoring ab und an, ansonsten stehen die in der Ecke). Leider hat die Anwendung einen Fehler, der ab und an (nicht nachvollziehbar bisher) ein Popup mit einer Nullpointer-Exception bringt. Solange das Popup offen ist, steht die Anwendung. Schliesst man das Popup, wird die Anwendung beendet und - von extern - automatisch neu gestartet.

Leider lässt sich die Applikation nicht eben mal ersetzen und der Hersteller lässt mit Fixes auf sich warten. Daher möchte der Kunde hier, dass ich einen Service erstelle, der die Liste der offenen Fenster nach dem (bekannten) Titel des Fehler-Popups durchsucht und dieses mit kurzem Vermerk im Eventlog schliesst. Der Service ist fertig, auf Basis von EnumWindows/EnumDesktopWindows durchsuche ich alle Forms und bei mir funktioniert das prima. Dummerweise nicht auf den Rechnern für die der Service geschrieben ist.. Problem ist scheinbar, dass kein User eingeloggt ist. Tests zeigen dass ich auf einem Rechner mit einem eingeloggten User Fenster finde, wenn der Service läuft aber niemand eingeloggt ist finde ich nichts.
Die Berechtigung "interact with desktop" hat der Service.

Was mache ich falsch? Was kann ich noch probieren?

Danke im voraus,
Ben

Olli 23. Jun 2005 19:51

Re: Service / Durchsuche von Fenstertiteln..
 
Ups :gruebel:, hab ich doch wohl aus Versehen die Erzdämonin Belkelel aka Dar'Klajid aka "Die dunkle Verführerin" beschworen ... :mrgreen: ... muß an meinem Alter Ego liegen :zwinker:.
Sorry an die anderen Forenmitglieder, ich werde sofort eine Exvocatio einleiten :angel2: :mrgreen:

Zitat:

Zitat von DarKlajid
Leider lässt sich die Applikation nicht eben mal ersetzen und der Hersteller lässt mit Fixes auf sich warten. Daher möchte der Kunde hier, dass ich einen Service erstelle, der die Liste der offenen Fenster nach dem (bekannten) Titel des Fehler-Popups durchsucht und dieses mit kurzem Vermerk im Eventlog schliesst.

Warum muß es ein Service sein?

Zitat:

Zitat von DarKlajid
Der Service ist fertig, auf Basis von EnumWindows/EnumDesktopWindows durchsuche ich alle Forms und bei mir funktioniert das prima. Dummerweise nicht auf den Rechnern für die der Service geschrieben ist.. Problem ist scheinbar, dass kein User eingeloggt ist. Tests zeigen dass ich auf einem Rechner mit einem eingeloggten User Fenster finde, wenn der Service läuft aber niemand eingeloggt ist finde ich nichts.
Die Berechtigung "interact with desktop" hat der Service.

Du bist auf dem falschen Desktop unterwegs, denke ich. Normalerweise sind User auf WinSta0\Default unterwegs, hingegen der SAS (Winlogon) Desktop ist ein anderer und auf den bekommt man auch anders Rechte.

EDIT: Wäre nicht ein Autologon eine Alternative? Auf den SAS-Desktop kannst du zwar auch Zugriff erhalten, ist aber relativ schwierig verglichen mit der Alternative.

Gruß,

Olli 1. Jun 2006 01:11

Re: Service / Durchsuche von Fenstertiteln..
 
Kommt hier noch was, oder können wir die Frage als beantwortet markieren lassen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz