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 mit PopupMenu (https://www.delphipraxis.net/26654-service-mit-popupmenu.html)

Nalincah 27. Jul 2004 08:52


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:
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.
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

sakura 27. Jul 2004 09:00

Re: Service mit PopupMenu
 
Suche doch mal in der DP nach [dp]service tray*[/dp] und dabei gleich auch noch nach Hier im Forum suchenshatter Attack. Das hatten wir schon oft.

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 Hier im Forum suchenpipe

...:cat:...

Nalincah 27. Jul 2004 09:12

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:
procedure TTN2004Service.Einstellungen1Click(Sender: TObject);
begin
  if FrmMain = nil then
  begin
    FrmMain := TFrmMain.Create(nil);
    FrmMain.Show;
  end;
end;
In im OnClose-Ereignis der Form:

Delphi-Quellcode:
procedure TFrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caNone;
  FrmMain.Release;
end;

sakura 27. Jul 2004 09:19

Re: Service mit PopupMenu
 
Dann ändere mal:

Code:
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;
...:cat:...

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.

Nalincah 27. Jul 2004 09:23

Re: Service mit PopupMenu
 
Wo liegt das problem? ist das grundsätzlich oder hat es was mit internet zu tun?

fkerber 27. Jul 2004 09:31

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

sakura 27. Jul 2004 09:51

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: http://security.tombom.co.uk/shatter.html

...:cat:...

fkerber 27. Jul 2004 10:29

Re: Service mit PopupMenu
 
Hi!

Danke für die Infos.

Ciao fkerber

Phoenix 27. Jul 2004 10:37

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 08:02 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