Démarrage automatique d'un service

mgille3 Messages postés 7 Date d'inscription mardi 27 janvier 2015 Statut Membre Dernière intervention 10 février 2015 - 27 janv. 2015 à 08:18
 mgille3 - 20 févr. 2015 à 12:35
Bonjour,
J'ai réalisé des services qui doivent se lancer avant que le premier utilisateur se connecte.
Le démarrage automatique ne se fait pas (Temps de démarrage > 30000 ms dans l'observateur d'évènement)
Pour analyser le problème, J'ai retiré tout traitement.
J'obtiens un service qui se lance bien lorsqu'on fait démarrer, mais ne se lance pas au démarrage du PC
Ceci ne se passe que sur Windows 7.
Ca démarre normalement sur Windows 8.
Une piste ?

13 réponses

sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
Modifié par sp40 le 27/01/2015 à 09:06
Salut,

Dans le gestionnaire de service, comment est défini le démarrage du service ? Est-il bien en automatique ?
Et dans ton source, est-ce que la propriété du service StartType est bien sur stAuto ?

Simon
0
mgille3 Messages postés 7 Date d'inscription mardi 27 janvier 2015 Statut Membre Dernière intervention 10 février 2015
27 janv. 2015 à 12:56
Oui dans le démarrage du service il est bien en automatique, et lors du démarrage, il y a le message délai dépassé (plus de 30000 ms) dans l'observateur d'évènement.

Dans le source, il y a bien stAuto.

Il démarre automatiquement s'il est installé dans un PC windows 8
0
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
27 janv. 2015 à 14:34
Hum... Est-ce que ça ne pourrait pas être une histoire de droits ?
As tu essayé d'en démarrer un en ligne de commande ?
(Net Start [Nom du service])
Essaie avec un compte d'utilisateur ET un compte d'admin
0
mgille3 Messages postés 7 Date d'inscription mardi 27 janvier 2015 Statut Membre Dernière intervention 10 février 2015
28 janv. 2015 à 15:25
Pour le moment, la commande net start ne marche pas même en administrateur.
Il faut que j'investigue ça
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
28 janv. 2015 à 15:27
Elle ne marche pas ? Quel est le message d'erreur ?
0
mgille3 Messages postés 7 Date d'inscription mardi 27 janvier 2015 Statut Membre Dernière intervention 10 février 2015
28 janv. 2015 à 18:00
La commande net start marche si le cmd est utilisé en tant qu'administrateur
0
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
29 janv. 2015 à 09:12
Regardes si tu ne peux résoudre le problème en gérant les options de sécurité de tes fichiers... (Si tu écris dans un log par exemple et que le fichier de log n'a pas les autorisations d'écriture pour les utilisateurs) C'est un peu lourd pour ça Windows... :(
0
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
29 janv. 2015 à 10:54
Et sinon, publie ton code... ;)
0
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
30 janv. 2015 à 09:23
Et juste pour info, je suis en train de publier une source qui pourrait t'intéresser en rapport avec le debugage de service windows
0
mgille3 Messages postés 7 Date d'inscription mardi 27 janvier 2015 Statut Membre Dernière intervention 10 février 2015
2 févr. 2015 à 13:38
J'ai simplifier encore, et j'ai résolu 1 problème :
Le service de détection des services interactif doit être mis en automatique sur windows 7 pour que je n'ai plus de message d'erreur dans l'observateur d'évènement.
Mon code
type
TSimple_service = class(TService)
Timer1: TTimer;
procedure ServiceStart(Sender: TService; var Started: Boolean);
procedure Timer1Timer(Sender: TObject);
procedure ServiceStop(Sender: TService; var Stopped: Boolean);
private
{ Déclarations privées }
nb_son : integer;
public
function GetServiceController: TServiceController; override;
{ Déclarations publiques }
end;

var
Simple_service: TSimple_service;

implementation

{$R *.DFM}

procedure ServiceController(CtrlCode: DWord); stdcall;
begin
Simple_service.Controller(CtrlCode);
end;

function TSimple_service.GetServiceController: TServiceController;
begin
Result := ServiceController;
end;



procedure TSimple_service.ServiceStart(Sender: TService; var Started: Boolean);
begin
nb_son := 0;
timer1.Enabled := true;
Started := True;
end;

procedure TSimple_service.ServiceStop(Sender: TService; var Stopped: Boolean);
begin
Stopped := true;
end;

procedure TSimple_service.Timer1Timer(Sender: TObject);
begin
if nb_son < 10 then
begin
inc(nb_son);
Try
logmessage('simple_service',EVENTLOG_INFORMATION_TYPE,0,nb_son);
PlaySound('C:\Windows\Media\Ring05.wav', 0, SND_SYNC);
except
if fileexists('C:\Windows\Media\Ring05.wav') then
logmessage('simple_service',EVENTLOG_INFORMATION_TYPE,0,20)
else
logmessage('simple_service',EVENTLOG_INFORMATION_TYPE,0,21);

End;
end
else
Timer1.Enabled := false;
end;

Normalement, il doit jouer 10 fois le son.
Sous Windows 8, c'est ce qui arrive.
Sous Windows 7, il démarre normalement, les messages 1 à 10 sont bien dans l'observateur d'évènement, mais pas de son
0
mgille3 Messages postés 7 Date d'inscription mardi 27 janvier 2015 Statut Membre Dernière intervention 10 février 2015
10 févr. 2015 à 09:04
Finalement, le service démarre automatiquement si l'installation se fait dans la commande execute : c:\...\monservice.exe /install.
Dans windows 8, le programme d'installation marche bien, mais sous windows 7 ça fait quelque chose de différent.

Il me reste le problème des sons wav qui fonctionnent en sevice sous windows 8, mais pas sous windows 7.
Sous windows 7, la commande PlaySound('C:\Windows\Media\Ring05.wav', 0, SND_SYNC); fonctionne bien dans un programme avec une session utilisateur
0
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
Modifié par sp40 le 10/02/2015 à 09:10
Désolé, là, je ne peux pas t'aider, je n'ai pas de son sur mon PC... :)
En pas à pas ça ne donne rien ? Pas d'exceptions particulières sur le log par exemple ?
0
mgille3 Messages postés 7 Date d'inscription mardi 27 janvier 2015 Statut Membre Dernière intervention 10 février 2015
10 févr. 2015 à 12:56
Le source est celui du donné plus haut.
Les messages de log de 1 à 10 sont bien affiché dans l'observateur d'évènement
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
20 févr. 2015 à 12:04
Bonjour,

les PC sont munis d'une intelligence artificielle et lorsque les sons ne sont pas bons, ils ne les jouent pas..
0
Mais le son est bien joué dans un programme qui n'est pas un service. La ligne est PlaySound('C:\Windows\Media\Ring05.wav', 0, SND_SYNC). Le fichier Ring05.wav est fourni par microsoft dans les fichiers wav du répertoir Windows\media
0
Rejoignez-nous