![]() |
Service mit PopupMenu
Ich versuch grad einen Dienst zu installieren und zu starten der mir im TNA ein Symbol anzeigen, bei dem ich mit der rechten maustaste ein popupmenu angezeigt bekomme.
Hab ne Service-Anwendung gestartet, in das Fenster ein CoolTrayIcon reingepackt, ein Popupmenu, das popup mit dem tray verbunden und dann einen eintrag ins popup hinzugefügt der mir eine nachricht anzeigt:
Delphi-Quellcode:
Installieren und starten kann ich den service, aber es wird kein trayicon angezeigt. Wieso klappt das nicht? Im Beispiel des CoolTrayIcons klappt es doch auch. Ich finde irgendwie keinen unterschied was das angeht
unit uService;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs, Menus, CoolTrayIcon; type TService1 = class(TService) CoolTrayIcon1: TCoolTrayIcon; PopupMenu1: TPopupMenu; Ok1: TMenuItem; procedure Ok1Click(Sender: TObject); private { Private-Deklarationen } public function GetServiceController: TServiceController; override; { Public-Deklarationen } end; var Service1: TService1; implementation {$R *.DFM} procedure ServiceController(CtrlCode: DWord); stdcall; begin Service1.Controller(CtrlCode); end; function TService1.GetServiceController: TServiceController; begin Result := ServiceController; end; procedure TService1.Ok1Click(Sender: TObject); begin ShowMessage('Hallo'); end; end. |
Re: Service mit PopupMenu
Suche doch mal in der DP nach [dp]service tray*[/dp] und dabei gleich auch noch nach
![]() Kurz: Es ist mit [dp="interaktiven Dienst*"]interaktiven Diensten[/dp] möglich. Aber von denen ist sehr abzuraten (auch MS nutzt die nicht mehr), da deren Sicherheitsrisiken zu enorm sind. Andere Lösungen sind in den meisten zu findenen Threads angesprochen. Siehe auch ![]() ...:cat:... |
Re: Service mit PopupMenu
Habs jetzt erstmal Interaktiv gemacht. Es wird auch angezeigt, leider wird aber dir form nicht angezeigt.
So ruf ich die Form auf:
Delphi-Quellcode:
In im OnClose-Ereignis der Form:
procedure TTN2004Service.Einstellungen1Click(Sender: TObject);
begin if FrmMain = nil then begin FrmMain := TFrmMain.Create(nil); FrmMain.Show; end; end;
Delphi-Quellcode:
procedure TFrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin Action := caNone; FrmMain.Release; end; |
Re: Service mit PopupMenu
Dann ändere mal:
Code:
...:cat:...
procedure TTN2004Service.Einstellungen1Click(Sender: TObject);
begin if FrmMain = nil then begin FrmMain := TFrmMain.Create(nil); [s][color=#ff0000]FrmMain.Show;[/color][/s] end; [color=#ff0000]FrmMain.Show;[/color] end; P.S.: Und Du bist Dir sicher, daß Du einen interaktiven Service schreiben möchtest :shock: Das würde Dir in mancher Firma inzwischen einen "blauen Brief" einbringen. |
Re: Service mit PopupMenu
Wo liegt das problem? ist das grundsätzlich oder hat es was mit internet zu tun?
|
Re: Service mit PopupMenu
Hi!
Sind diese interaktiven Services so schlimm, dass man ne Abmahnung bekommt? Wo ist das Problem mit ihnen? Habe zwar die Beiträge in der DP gelsen, aber da steht eigentlich nur drin, dass sie gefährlich sind, nicht wieso. Wär für etwas Aufklärung dankbar. Ciao fkerber |
Re: Service mit PopupMenu
Also der Fall einer Abmahnung ist mir bekannt, ja. Das war allerdings auch eine (größere) Firma, in der es eine Richtlinie gab, welche solche Dienste ausdrücklich verboten hat.
Ansonsten gibt es recht gute Informationen bei MSDN und hier: ![]() ...:cat:... |
Re: Service mit PopupMenu
Hi!
Danke für die Infos. Ciao fkerber |
Re: Service mit PopupMenu
Ich würde einfach hergehen, und den Service mit seiner Funktionalität direkt implementieren.
Für das TrayIcon und das Menu nimmst Du dann eine eigene kleine Anwendung, die das Icon und das Menu zur Verfügung stellt und dann ihrerseits mit dem Dienst kommuniziert und diesen steuert. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:56 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