SERVICE NT | TOUS CE QUE VOUS DEVEZ SAVOIR | INCLU DOC, ZIP ET SOURCE

Signaler
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
-
cs_krzysiu
Messages postés
23
Date d'inscription
mardi 13 juillet 2004
Statut
Membre
Dernière intervention
3 septembre 2011
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/21678-service-nt-tous-ce-que-vous-devez-savoir-inclu-doc-zip-et-source

cs_krzysiu
Messages postés
23
Date d'inscription
mardi 13 juillet 2004
Statut
Membre
Dernière intervention
3 septembre 2011

Ben oui mais, ça cours pas les rues comme dit Mauricio, j'ai bien un palliatif, mais c'est du bricolage.

d'ou cette exhumation .
cs_PascalZ
Messages postés
13
Date d'inscription
samedi 8 février 2003
Statut
Membre
Dernière intervention
4 juillet 2012

Fichtre ! ca c'est du déterrage de topic ! :)
cs_krzysiu
Messages postés
23
Date d'inscription
mardi 13 juillet 2004
Statut
Membre
Dernière intervention
3 septembre 2011

Bonjour a tous,

Je me suis inspiré de ton code pour creer un service qui envoie des mails. tout va bien quand je le teste sur mon poste (W7 Pro).
Par contre lorsque je l'installe sur un autre PC W7 Pro, là j'ai : Erreur 2 : le fichier spécifier est introuvable.

Je suis en train de chercher sur internet, mais pour le moment rien.

Si quelqu'un à une idée... Merci
cs_MAURICIO
Messages postés
2233
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
5
Arg, le tray icon n' apparait pas après reinicialsation du PC ...
Si quelqu' un connait la solution, je suis preneur!
A+
cs_MAURICIO
Messages postés
2233
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
5
Salut GaudeTM,

faut dire que les sources sur les services, ça court pas les rues!
Vu que j' en ai besoin pour un programme de mails qui importe les mails de plusieurs comptes (il marche en ce moment comme exe normal).

J' apporte un petit suplément à cette source, comment insérer un TrayIcon avec un PopMenu :

const
WM_TASKBAREVENT = WM_USER + 1;

type
TService1 = class(TService)
Timer1: TTimer;
Timer2: TTimer;
PopMenu: TPopupMenu;
MIMainWindow: TMenuItem;
MIPause: TMenuItem;
N1: TMenuItem;
MIClose: TMenuItem;
procedure ServiceExecute(Sender: TService);
procedure Timer1Timer(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure ServiceCreate(Sender: TObject);
procedure ServiceDestroy(Sender: TObject);
private
{ Private declarations }
procedure HandleIconMessage(var Msg: TMessage);
procedure WMTaskBarEvent(var Msg: TMessage); message WM_TASKBAREVENT;
public
FHandle: HWND; // On va créer un HWND juste pour capturer le click de la souris ...
IconData : TNotifyIconData;
function GetServiceController: TServiceController; override;
{ Public declarations }
end;

var
Service1: TService1;

procedure TService1.WMTaskBarEvent(var Msg: TMessage);
var pt: TPoint;
begin
if msg.LParam = WM_RBUTTONDOWN
then begin
GetCursorPos(pt);
PopMenu.Popup(pt.x, pt.y);
PostMessage(aHWND, WM_NULL, 0, 0);
end;
end;

procedure TService1.HandleIconMessage(var Msg: TMessage);
begin
if Msg.Msg = WM_TASKBAREVENT
then WMTaskBarEvent(Msg);
end;

procedure TService1.ServiceCreate(Sender: TObject);
begin
FHandle := Classes.AllocateHWnd(HandleIconMessage);

// Tray Icon :
IconData.cbSize := sizeof(IconData);
IconData.Wnd := FHandle;

IconData.uID := 100;
IconData.uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
IconData.uCallbackMessage := WM_TASKBAREVENT;
IconData.hIcon := Forms.Application.Icon.Handle;
StrPCopy(IconData.szTip, Service1.DisplayName);
Shell_NotifyIcon(NIM_ADD, @IconData);
end;

procedure TService1.ServiceDestroy(Sender: TObject);
begin
Shell_NotifyIcon(NIM_DELETE, @IconData);
Classes.DeallocateHWnd(FHandle);
end;

A+