![]() |
Service und Vista - Interactive läuft nicht
Moin liebe DelphiPraxis Gemeinde,
nun mal eine Frage von mir. Vielleicht habe ich gerade ein Hänger im Kopf jedoch irgendwie finde ich es nicht raus. Also man erstellt einen ganz nornmalen Service unter Delphi (wie ich es immer schon machte). Hier mal ein Beispiel mit Showmessage geht einfach nicht mehr (beep auch nicht). Interactive ist auf TRUE gesetzt. Der Service lässt sich einwandfrei kompilieren installieren ausführen usw.. Wenn ich im Timer eine Datei mitschreibe klappt es, also der timer läuft. Das ganze unter Vista. Services lassen sich ja unter vista nur als Admin installieren. Habe ich ja auch gemacht. Einer ne Idee?? Gruss Daniel Magin
Delphi-Quellcode:
unit u_ServiceModule;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs, ExtCtrls; type TService7 = class(TService) Timer1: TTimer; procedure Timer1Timer(Sender: TObject); procedure ServiceExecute(Sender: TService); private { Private-Deklarationen } public function GetServiceController: TServiceController; override; { Public-Deklarationen } end; var Service7: TService7; implementation {$R *.DFM} procedure ServiceController(CtrlCode: DWord); stdcall; begin Service7.Controller(CtrlCode); end; function TService7.GetServiceController: TServiceController; begin Result := ServiceController; end; procedure TService7.ServiceExecute(Sender: TService); begin Timer1.Enabled:=true; while not Terminated do ServiceThread.ProcessRequests(True); Timer1.Enabled := False end; procedure TService7.Timer1Timer(Sender: TObject); begin // beep; showmessage('Hallo ich bins'); // sTemp:=TStringList.Create; // if FileExists('c:\tmp\aa_service.txt') then // sTemp.LoadFromFile('c:\tmp\aa_service.txt'); // // // sTemp.add(TimeToStr(now)); // stemp.SaveToFile('c:\tmp\aa_service.txt'); // stemp.free; end; end. |
Re: Service und Vista - Interactive läuft nicht
Zitat:
Zitat:
|
Re: Service und Vista - Interactive läuft nicht
hi bernhard,
bist du sicher, ich dachte ich hab damals auf den roadshows mit xp und delphi 6 oder 7 (?) ein timer mit beep gebaut. werde es mal unter xp nochmal probieren. aber erstmal danke |
Re: Service und Vista - Interactive läuft nicht
Hi Bernhard,
also unter XP läuft das einwandfrei (beep und showmessage). also ist es in vista verboten. Hat jemand eine Idee es dort beep und showmessage'n zu lassen gruss daniel magin EDIT: Also der Dienst Beep auch wenn keiner eingeloggt ist (in XP). |
Re: Service und Vista - Interactive läuft nicht
Zitat:
Zitat:
Zitat:
|
Re: Service und Vista - Interactive läuft nicht
wird halt nicht mehr gebeept sondern wie du schon auch gemeint hast zu einer tray app per tcp ne message gesendet.
egal trotzdem danke und noch viel spass ;-) |
Re: Service und Vista - Interactive läuft nicht
Ui, deine Frage überrascht mich jetzt aber etwas. :shock: Dass es bei Hobbyprogrammierern noch nicht ganz durchgedrungen ist, dass interaktive Dienste eine Sicherheitslücke darstellen und deswegen seit Windows Vista auch nicht mehr unterstützt werden, kann ich ja noch verstehen. Aber bei dir?
|
Re: Service und Vista - Interactive läuft nicht
Soviel ich weis, lässt Vista keine direkten Userinteraktionen mit Systemdiensten zu bzw. schränkt diese ein.
guck mal hier ![]() |
Re: Service und Vista - Interactive läuft nicht
Das ganze Unterfangen funktioniert eigentlich seit Win2000 nicht mehr. Das Problem sind Sessions für den Multiuserbetrieb. Jeder eingeloggte Benutzer (Konsole oder Terminal-RDP) bekommt eine eigene Session. Unter XP teilen sich Dienste und der erste eingeloggte Benutzer die Session Nummer 0. Ein neuer Benutzer bekommt die 1 usw. In Vista hat wurde für Dienste und der erste Benutzer zwei Sessions eingeführt und daher sind interaktive Dienste nicht mehr möglich.
Eine Session ist eine Umgebung, die WindowStations, Desktops und einiges mehr besitzt. Jede hat eine winsta0\winlogon + default Desktop. SendMessage (Und damit das ganze Windowmanagersystem) funktioniert nicht über Sessiongrenzen hinweg und sogar ein Großteil der Handles sind ungültig. Benutze WTSSendMessage für eine session-gezielte Nachrichtenbox (nur lokal). UpdateHabe ich doch glatt meinen Artikel vergessen: ![]() |
Re: Service und Vista - Interactive läuft nicht
Handles sind sogar desktopspezifisch.
|
Re: Service und Vista - Interactive läuft nicht
Zitat:
|
Re: Service und Vista - Interactive läuft nicht
Ich denke, dass Luckie hier User-Handles meint. Kernel-Handles sind natürlich prozessspezifisch.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:54 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 by Thomas Breitkreuz