Précédent   Forum des professionnels en informatique > Systèmes > Windows
Windows Forum d'entraide sur le système Windows. Lire la F.A.Q Windows XP et la F.A.Q Windows Vista
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/10/2007, 15h28   #1
Invité de passage
 
Inscription : octobre 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 7
Points : 1
Points : 1
Par défaut service windows et l'option "interaction avec le bureau"

Salut à tous !

je me suis fait un petit programme, que j'ai mis en "service windows" afin de pouvoir communiquer avec lui même si aucun utilisateur n'est connecté.

je souhaite qu'il puisse "interagir" avec le bureau, en affichant par exemple une fenetre. Il faut cocher l'option "interagir avec le bureau" dans les options du service, ce que je fais indirectement en modifiant la BDR. Et ça marche ! Mais uniquement une fois que j'ai fait la manip suivante :
dans les options du service, je décoche puis recoche l'option "interagir avec le bureau", fait "appliquer", puis redémarre le service (!!!)

Et là, ça marche...

Et si je fais pas ce "décoche-recoche" (sans appliquer entre-deux !) et ce redémarrage du service, rien ne s'affiche...

Quelqu'un a une idée du problème, parce que là, je sèche
Mwoua est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2007, 16h43   #2
Expert Confirmé Sénior
 
Avatar de ram-0000
 
Raymond
Inscription : mai 2007
Messages : 7 474
Détails du profil
Informations personnelles :
Nom : Raymond

Informations forums :
Inscription : mai 2007
Messages : 7 474
Points : 10 994
Points : 10 994
Je pense que le problème vient du fait que le privilège "Interagir avec le bureau" est donné au service uniquement au lancement du service

Il n'est pas donné à un service qui s'exécute déjà

Raymond
ram-0000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2007, 18h33   #3
Invité de passage
 
Inscription : octobre 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 7
Points : 1
Points : 1
salut ram_0000

bah en fait, si j'arrete le service et que je le redemarre sans faire la manip' que j'ai décrite, bah ça marche pas.

De plus, lorsque je crée le service, je ne le démarre pas tout de suite. je lui "donne" l'accès au bureau, et le démarre enuite, mais sans résultat...

Est-ce que tu pourrais faire un essai chez toi ? Que je sache si ça viens de chez moi ou pas ?

Merci pour ta réponse en tout cas !
Mwoua est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2007, 16h45   #4
Invité de passage
 
Inscription : octobre 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 7
Points : 1
Points : 1
Je viens de me rendre compte que après avoir fait cette "manip", la base de registre est quasi-pas modifiée : seule la clef "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\RNG" est différente, mais je pense pas que c'est sur cette valeur qu'il faille jouer. Sa valeur change tout le temps ; à mon avis elle n'a rien à voire avec mon problème.

J'ai aussi remarqué que si j'ai fait la "manip", après un redémarrage du pc ça marche encore. Il doit donc y avoir une info écrite sur le disque quelque part. Quelqu'un connaitrait un logiciel ou une façon de faire pour savoir si c'est le cas ; et, si oui, localiser cette info ?

Merci de votre aide !
Mwoua est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2007, 10h36   #5
Rédacteur/Modérateur
 
Avatar de Vincent Rogier
 
vincent rogier
Inscription : juillet 2007
Messages : 2 355
Détails du profil
Informations personnelles :
Nom : vincent rogier
Âge : 34

Informations forums :
Inscription : juillet 2007
Messages : 2 355
Points : 3 108
Points : 3 108
il te suffirait d'installer ton service avec le flag SERVICE_INTERACTIVE_PROCESS

voici une librarie de gestion de services windows qui te permettra de gérer beaucoup plus simplement et efficament tes services :

[Source] [C] Librairie d'encapsulation de Services Windows
Vincent Rogier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2007, 15h28   #6
Invité de passage
 
Inscription : octobre 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 7
Points : 1
Points : 1
Arf, je crois que tu n'a pas tout lu

Lorsque je crée mon service, je lui affecte le droit d'interagir avec le bureau (flag SERVICE_INTERACTIVE_PROCESS) par modification de la clef ad-hoc dans la BDR (ou bien manuellement dans les propriétés du service dans services.msc).

Mais tout se passe comme si ce "flag" n'était pris en compte que lorsque je fait "appliquer" ou "ok" dans les propriétés du service (dans services.msc). Ce qui m'embête parce que j'ai pas envie de faire ça sur les x ordis du réseau.

Il me faut bien-sûr également redémarrer le service.

Est-ce que je suis le seul à avoir ce problème ?
Mwoua est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2007, 15h50   #7
Invité de passage
 
Inscription : octobre 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 7
Points : 1
Points : 1
Pour bien comprendre et aussi pour faire un essai chez vous, histoire que je sois sûr que ça vienne pas de moi :

http://www.mwoua.ovh.org/index_fichiers/_service.zip

Dans ce répertoire, y'a ce qu'il faut pour installer un sevice qui ne fait qu'ouvrir une commande DOS, désinstaller ce service proprement ( ), et aussi l'installer sans cette option "interagir avec le bureau" pour pouvoir le faire à la main et constater que la commande DOS est visible dans ce cas.

Vous l'aurez compris, j'ia besoin de vous !!! Si chacun pouvait faire l'essai, et me dire si ça fait pareil que chez moi...

Merci !!!!
Mwoua est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2007, 17h23   #8
Rédacteur/Modérateur
 
Avatar de Vincent Rogier
 
vincent rogier
Inscription : juillet 2007
Messages : 2 355
Détails du profil
Informations personnelles :
Nom : vincent rogier
Âge : 34

Informations forums :
Inscription : juillet 2007
Messages : 2 355
Points : 3 108
Points : 3 108
bon,

c'est de la bidouille (instsrv,srvany et cie...) !!!

Ne sois pas étonné que cela ne fonctionne pas, surtout pour lancer un bat ...

j'ai essayé, ca marche pas chez moi (Vista Pro).

si tu a fais un "petit progamme" comme tu dis, utilise l'api Windows ou la librairie que je t'ai indiqué...
Vincent Rogier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2007, 17h30   #9
Invité de passage
 
Inscription : octobre 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 7
Points : 1
Points : 1
Bah non, c'est pas de la bidouille

instsrv et srvany sont donnés par Microsoft pour enregistrer un progamme comme serveur.

Sinon, ça marche pas chez toi en faisant l'installation complète ? Et en cochant manuellement l'option, ça marche ?

Le problèmé concernant la lib que tu m'a passée, c'est que programme pas en c, mais en "purebasic". Je crée un exe et après je l'enregistre en tant que service garce à instsrv et srvany.
Mwoua est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2007, 01h02   #10
Invité de passage
 
Inscription : octobre 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 7
Points : 1
Points : 1
Bon, puisque tout le monde est en vacances ( ), j'ai contourné le problème...

J'ai créé un service avec PureBasic (le logiciel de programmation que j'utilise), et pas transformé un exe en service avec la methode que donne microsoft.

N'empèche que j'aimerai bien savoir pourquoi la 1ère méthode ne marche pas

En tout cas, merci à tous
Mwoua est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2009, 09h56   #11
Invité régulier
 
Inscription : avril 2009
Messages : 25
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 25
Points : 6
Points : 6
Pour les prochaines personnes a qui cela arrive j'ai trouver la solution :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        private void Agent_AfterInstall(object sender, InstallEventArgs e)
        {
            ManagementObject wmiService = null;
            ManagementBaseObject InParam = null;
            try
            {
                wmiService = new ManagementObject(string.Format("Win32_Service.Name='{0}'",
                                 Agent.ServiceName));
                InParam = wmiService.GetMethodParameters("Change");
                InParam["DesktopInteract"] = true;
                wmiService.InvokeMethod("Change", InParam, null);
            }
            finally
            {
                if (InParam != null)
                    InParam.Dispose();
                if (wmiService != null)
                    wmiService.Dispose();
            }
        }
modifier la méthode after_install du project installer et ca roule !
dIwAmIb est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h51.


 
 
 
 
Partenaires

Hébergement Web