J'ai crée un service pour Win2k. Lorsque je lance une application par un
CreateProcess à partir de ce service, l'application ainsi lancée apparait
bien dans le gestionnaire de taches mais ne s'affiche pas et semble ne pas
avoir de file de message alors que si je la lance par l'explorateur tout
fonctionne normalement.
Je me demandais si je n'avais pas fait une betise lors de l'appel du
CreateProcess. Voilà comment j'initialise la structure STARTUPINFO :
J'ai crée un service pour Win2k. Lorsque je lance une application par un CreateProcess à partir de ce service, l'application ainsi lancée apparait bien dans le gestionnaire de taches mais ne s'affiche pas et semble ne pas avoir de file de message alors que si je la lance par l'explorateur tout fonctionne normalement.
Normal.
Je me demandais si je n'avais pas fait une betise lors de l'appel du CreateProcess. Voilà comment j'initialise la structure STARTUPINFO :
Le probleme ne vient pas de là.
Je pencherai plutot pour un probleme lors du CreateService ( voir flag SERVICE_INTERACTIVE_PROCESS, notion de LocalSystem Account, Interactive Services etc.). En gros ton appli apparait dans le gestionnaire des taches parce qu'elle s'execute bien, mais elle s'execute sur un autre bureau ( voir Window Stations and Desktops ).
Loic.
"Jean-Yves" a écrit
Bonjour,
J'ai crée un service pour Win2k. Lorsque je lance une application par un
CreateProcess à partir de ce service, l'application ainsi lancée apparait
bien dans le gestionnaire de taches mais ne s'affiche pas et semble ne pas
avoir de file de message alors que si je la lance par l'explorateur tout
fonctionne normalement.
Normal.
Je me demandais si je n'avais pas fait une betise lors de l'appel du
CreateProcess. Voilà comment j'initialise la structure STARTUPINFO :
Le probleme ne vient pas de là.
Je pencherai plutot pour un probleme lors du CreateService ( voir flag
SERVICE_INTERACTIVE_PROCESS, notion de LocalSystem Account, Interactive
Services etc.). En gros ton appli apparait dans le gestionnaire des taches
parce qu'elle s'execute bien, mais elle s'execute sur un autre bureau ( voir
Window Stations and Desktops ).
J'ai crée un service pour Win2k. Lorsque je lance une application par un CreateProcess à partir de ce service, l'application ainsi lancée apparait bien dans le gestionnaire de taches mais ne s'affiche pas et semble ne pas avoir de file de message alors que si je la lance par l'explorateur tout fonctionne normalement.
Normal.
Je me demandais si je n'avais pas fait une betise lors de l'appel du CreateProcess. Voilà comment j'initialise la structure STARTUPINFO :
Le probleme ne vient pas de là.
Je pencherai plutot pour un probleme lors du CreateService ( voir flag SERVICE_INTERACTIVE_PROCESS, notion de LocalSystem Account, Interactive Services etc.). En gros ton appli apparait dans le gestionnaire des taches parce qu'elle s'execute bien, mais elle s'execute sur un autre bureau ( voir Window Stations and Desktops ).
Loic.
Jean-Yves
Je cree le service avec un compte utilisateur (et non un compte système) pour avoir les droits reseau sur le domaine (l'application à executer se trouve sur le disque d'un ordinateur distant. Je fait le service avec le flag "SERVICE_INTERACTIVE_PROCESS", mais j'ai aussi essayé sans et le resultat est le même.
Jean-Yves
"Lo" a écrit dans le message de news:bqf10t$11d$
"Jean-Yves" a écrit > Bonjour,
> J'ai crée un service pour Win2k. Lorsque je lance une application par un > CreateProcess à partir de ce service, l'application ainsi lancée
apparait
> bien dans le gestionnaire de taches mais ne s'affiche pas et semble ne
pas
> avoir de file de message alors que si je la lance par l'explorateur tout > fonctionne normalement.
Normal.
> Je me demandais si je n'avais pas fait une betise lors de l'appel du > CreateProcess. Voilà comment j'initialise la structure STARTUPINFO :
Le probleme ne vient pas de là.
Je pencherai plutot pour un probleme lors du CreateService ( voir flag SERVICE_INTERACTIVE_PROCESS, notion de LocalSystem Account, Interactive Services etc.). En gros ton appli apparait dans le gestionnaire des taches parce qu'elle s'execute bien, mais elle s'execute sur un autre bureau (
voir
Window Stations and Desktops ).
Loic.
Je cree le service avec un compte utilisateur (et non un compte système)
pour avoir les droits reseau sur le domaine (l'application à executer se
trouve sur le disque d'un ordinateur distant.
Je fait le service avec le flag "SERVICE_INTERACTIVE_PROCESS", mais j'ai
aussi essayé sans et le resultat est le même.
Jean-Yves
"Lo" <slowlo@caramail.com> a écrit dans le message de
news:bqf10t$11d$1@s1.read.news.oleane.net...
"Jean-Yves" a écrit
> Bonjour,
> J'ai crée un service pour Win2k. Lorsque je lance une application par un
> CreateProcess à partir de ce service, l'application ainsi lancée
apparait
> bien dans le gestionnaire de taches mais ne s'affiche pas et semble ne
pas
> avoir de file de message alors que si je la lance par l'explorateur tout
> fonctionne normalement.
Normal.
> Je me demandais si je n'avais pas fait une betise lors de l'appel du
> CreateProcess. Voilà comment j'initialise la structure STARTUPINFO :
Le probleme ne vient pas de là.
Je pencherai plutot pour un probleme lors du CreateService ( voir flag
SERVICE_INTERACTIVE_PROCESS, notion de LocalSystem Account, Interactive
Services etc.). En gros ton appli apparait dans le gestionnaire des taches
parce qu'elle s'execute bien, mais elle s'execute sur un autre bureau (
Je cree le service avec un compte utilisateur (et non un compte système) pour avoir les droits reseau sur le domaine (l'application à executer se trouve sur le disque d'un ordinateur distant. Je fait le service avec le flag "SERVICE_INTERACTIVE_PROCESS", mais j'ai aussi essayé sans et le resultat est le même.
Jean-Yves
"Lo" a écrit dans le message de news:bqf10t$11d$
"Jean-Yves" a écrit > Bonjour,
> J'ai crée un service pour Win2k. Lorsque je lance une application par un > CreateProcess à partir de ce service, l'application ainsi lancée
apparait
> bien dans le gestionnaire de taches mais ne s'affiche pas et semble ne
pas
> avoir de file de message alors que si je la lance par l'explorateur tout > fonctionne normalement.
Normal.
> Je me demandais si je n'avais pas fait une betise lors de l'appel du > CreateProcess. Voilà comment j'initialise la structure STARTUPINFO :
Le probleme ne vient pas de là.
Je pencherai plutot pour un probleme lors du CreateService ( voir flag SERVICE_INTERACTIVE_PROCESS, notion de LocalSystem Account, Interactive Services etc.). En gros ton appli apparait dans le gestionnaire des taches parce qu'elle s'execute bien, mais elle s'execute sur un autre bureau (
voir
Window Stations and Desktops ).
Loic.
Thierry
Bonjour,
Jean-Yves a écrit :
Je fait le service avec le flag "SERVICE_INTERACTIVE_PROCESS", mais j'ai aussi essayé sans et le resultat est le même.
T'as un autre bug alors, mais garde ce flag de toute façon.
(t'es bien sur qui y est le flag ?? verifie dans la BDR que y'a bien 0x100 dans le mask ConfigFlags).
-- "MOI JE VEUX JOUER DE L'HELICON (PON PON PON PON)"
Bonjour,
Jean-Yves a écrit :
Je fait le service avec le flag "SERVICE_INTERACTIVE_PROCESS", mais j'ai
aussi essayé sans et le resultat est le même.
T'as un autre bug alors, mais garde ce flag de toute façon.
(t'es bien sur qui y est le flag ?? verifie dans la BDR que y'a bien 0x100
dans le mask ConfigFlags).
--
"MOI JE VEUX JOUER DE L'HELICON (PON PON PON PON)"
Je fait le service avec le flag "SERVICE_INTERACTIVE_PROCESS", mais j'ai aussi essayé sans et le resultat est le même.
T'as un autre bug alors, mais garde ce flag de toute façon.
(t'es bien sur qui y est le flag ?? verifie dans la BDR que y'a bien 0x100 dans le mask ConfigFlags).
-- "MOI JE VEUX JOUER DE L'HELICON (PON PON PON PON)"
Jean-Yves
Bonne idée.
Effectivement quand je modifie le compte système (pour mettre un compte utilisateur), le flag "interagir avec l'utilisateur" disparait. Comment faire pour avoir ce flag et des droits reseau ?
"Thierry" a écrit dans le message de news:
Bonjour,
Jean-Yves a écrit :
> Je fait le service avec le flag "SERVICE_INTERACTIVE_PROCESS", mais j'ai > aussi essayé sans et le resultat est le même.
T'as un autre bug alors, mais garde ce flag de toute façon.
(t'es bien sur qui y est le flag ?? verifie dans la BDR que y'a bien 0x100 dans le mask ConfigFlags).
-- "MOI JE VEUX JOUER DE L'HELICON (PON PON PON PON)"
Bonne idée.
Effectivement quand je modifie le compte système (pour mettre un compte
utilisateur), le flag "interagir avec l'utilisateur" disparait. Comment
faire pour avoir ce flag et des droits reseau ?
"Thierry" <yarglah@com.invalid> a écrit dans le message de
news:XnF94446C2BD40FCpouletetcetc@213.228.0.138...
Bonjour,
Jean-Yves a écrit :
> Je fait le service avec le flag "SERVICE_INTERACTIVE_PROCESS", mais j'ai
> aussi essayé sans et le resultat est le même.
T'as un autre bug alors, mais garde ce flag de toute façon.
(t'es bien sur qui y est le flag ?? verifie dans la BDR que y'a bien 0x100
dans le mask ConfigFlags).
--
"MOI JE VEUX JOUER DE L'HELICON (PON PON PON PON)"
Effectivement quand je modifie le compte système (pour mettre un compte utilisateur), le flag "interagir avec l'utilisateur" disparait. Comment faire pour avoir ce flag et des droits reseau ?
"Thierry" a écrit dans le message de news:
Bonjour,
Jean-Yves a écrit :
> Je fait le service avec le flag "SERVICE_INTERACTIVE_PROCESS", mais j'ai > aussi essayé sans et le resultat est le même.
T'as un autre bug alors, mais garde ce flag de toute façon.
(t'es bien sur qui y est le flag ?? verifie dans la BDR que y'a bien 0x100 dans le mask ConfigFlags).
-- "MOI JE VEUX JOUER DE L'HELICON (PON PON PON PON)"
Lo
"Jean-Yves" a écrit
Effectivement quand je modifie le compte système (pour mettre un compte utilisateur), le flag "interagir avec l'utilisateur" disparait. Comment faire pour avoir ce flag et des droits reseau ?
> > Je fait le service avec le flag "SERVICE_INTERACTIVE_PROCESS", mais
j'ai
> > aussi essayé sans et le resultat est le même. > > T'as un autre bug alors, mais garde ce flag de toute façon. > > (t'es bien sur qui y est le flag ?? verifie dans la BDR que y'a bien
0x100
> dans le mask ConfigFlags).
MSDN :
SERVICE_INTERACTIVE_PROCESS : This value is valid only if lpServiceStartName is the LocalSystem account.
Voir "Interacting with the User in a Service" dans le MSDN. Ca peut peut-etre aider. ( sinon va falloir se resoudre à ce que le service ne soit pas interactif .. )
Loic.
"Jean-Yves" a écrit
Effectivement quand je modifie le compte système (pour mettre un compte
utilisateur), le flag "interagir avec l'utilisateur" disparait. Comment
faire pour avoir ce flag et des droits reseau ?
> > Je fait le service avec le flag "SERVICE_INTERACTIVE_PROCESS", mais
j'ai
> > aussi essayé sans et le resultat est le même.
>
> T'as un autre bug alors, mais garde ce flag de toute façon.
>
> (t'es bien sur qui y est le flag ?? verifie dans la BDR que y'a bien
0x100
> dans le mask ConfigFlags).
MSDN :
SERVICE_INTERACTIVE_PROCESS : This value is valid only if lpServiceStartName
is the LocalSystem account.
Voir "Interacting with the User in a Service" dans le MSDN. Ca peut
peut-etre aider. ( sinon va falloir se resoudre à ce que le service ne soit
pas interactif .. )
Effectivement quand je modifie le compte système (pour mettre un compte utilisateur), le flag "interagir avec l'utilisateur" disparait. Comment faire pour avoir ce flag et des droits reseau ?
> > Je fait le service avec le flag "SERVICE_INTERACTIVE_PROCESS", mais
j'ai
> > aussi essayé sans et le resultat est le même. > > T'as un autre bug alors, mais garde ce flag de toute façon. > > (t'es bien sur qui y est le flag ?? verifie dans la BDR que y'a bien
0x100
> dans le mask ConfigFlags).
MSDN :
SERVICE_INTERACTIVE_PROCESS : This value is valid only if lpServiceStartName is the LocalSystem account.
Voir "Interacting with the User in a Service" dans le MSDN. Ca peut peut-etre aider. ( sinon va falloir se resoudre à ce que le service ne soit pas interactif .. )
Loic.
Jean-Yves
Ben en fait c'est pas vraiment le service qui doit être interactif (lui le seul truc qu'il fait c'est ecouter sur un port une requete socket pour lancer un executable qui peut être situé en local ou sur le reseau). Par contre l'application lancée doit elle être interactive.
"Lo" a écrit dans le message de news:bqf3bg$2gi$
"Jean-Yves" a écrit
> Effectivement quand je modifie le compte système (pour mettre un compte > utilisateur), le flag "interagir avec l'utilisateur" disparait. Comment > faire pour avoir ce flag et des droits reseau ? > > > > Je fait le service avec le flag "SERVICE_INTERACTIVE_PROCESS", mais j'ai > > > aussi essayé sans et le resultat est le même. > > > > T'as un autre bug alors, mais garde ce flag de toute façon. > > > > (t'es bien sur qui y est le flag ?? verifie dans la BDR que y'a bien 0x100 > > dans le mask ConfigFlags).
MSDN :
SERVICE_INTERACTIVE_PROCESS : This value is valid only if
lpServiceStartName
is the LocalSystem account.
Voir "Interacting with the User in a Service" dans le MSDN. Ca peut peut-etre aider. ( sinon va falloir se resoudre à ce que le service ne
soit
pas interactif .. )
Loic.
Ben en fait c'est pas vraiment le service qui doit être interactif (lui le
seul truc qu'il fait c'est ecouter sur un port une requete socket pour
lancer un executable qui peut être situé en local ou sur le reseau).
Par contre l'application lancée doit elle être interactive.
"Lo" <slowlo@caramail.com> a écrit dans le message de
news:bqf3bg$2gi$1@s1.read.news.oleane.net...
"Jean-Yves" a écrit
> Effectivement quand je modifie le compte système (pour mettre un compte
> utilisateur), le flag "interagir avec l'utilisateur" disparait. Comment
> faire pour avoir ce flag et des droits reseau ?
>
> > > Je fait le service avec le flag "SERVICE_INTERACTIVE_PROCESS", mais
j'ai
> > > aussi essayé sans et le resultat est le même.
> >
> > T'as un autre bug alors, mais garde ce flag de toute façon.
> >
> > (t'es bien sur qui y est le flag ?? verifie dans la BDR que y'a bien
0x100
> > dans le mask ConfigFlags).
MSDN :
SERVICE_INTERACTIVE_PROCESS : This value is valid only if
lpServiceStartName
is the LocalSystem account.
Voir "Interacting with the User in a Service" dans le MSDN. Ca peut
peut-etre aider. ( sinon va falloir se resoudre à ce que le service ne
Ben en fait c'est pas vraiment le service qui doit être interactif (lui le seul truc qu'il fait c'est ecouter sur un port une requete socket pour lancer un executable qui peut être situé en local ou sur le reseau). Par contre l'application lancée doit elle être interactive.
"Lo" a écrit dans le message de news:bqf3bg$2gi$
"Jean-Yves" a écrit
> Effectivement quand je modifie le compte système (pour mettre un compte > utilisateur), le flag "interagir avec l'utilisateur" disparait. Comment > faire pour avoir ce flag et des droits reseau ? > > > > Je fait le service avec le flag "SERVICE_INTERACTIVE_PROCESS", mais j'ai > > > aussi essayé sans et le resultat est le même. > > > > T'as un autre bug alors, mais garde ce flag de toute façon. > > > > (t'es bien sur qui y est le flag ?? verifie dans la BDR que y'a bien 0x100 > > dans le mask ConfigFlags).
MSDN :
SERVICE_INTERACTIVE_PROCESS : This value is valid only if
lpServiceStartName
is the LocalSystem account.
Voir "Interacting with the User in a Service" dans le MSDN. Ca peut peut-etre aider. ( sinon va falloir se resoudre à ce que le service ne
soit
pas interactif .. )
Loic.
Lo
"Jean-Yves" a écrit dans le message de news: bqf3lr$2mm$
Ben en fait c'est pas vraiment le service qui doit être interactif (lui le seul truc qu'il fait c'est ecouter sur un port une requete socket pour lancer un executable qui peut être situé en local ou sur le reseau). Par contre l'application lancée doit elle être interactive.
Dans CreateProcess : startInfo.lpDesktop = NULL ;
-> If lpDesktop is NULL, the new process inherits the desktop and window station of its parent process. If lpDesktop is an empty string, the process does not inherit the desktop and window station of its parent process; instead, the system determines if a new desktop and window station need to be created. If the impersonated user already has a desktop, the system will use the existing desktop.
Donc essayer de mettre une chaine vide à la place. Et sinon il faut recuperer le desktop/station de l'utilisateur loggué et passer le bon parametres ( il y'a sans doute des questions de droit ). m'enfin j'en sais pas beaucoup plus.
Loic.
"Jean-Yves" <jean-yves@nospam.com> a écrit dans le message de news:
bqf3lr$2mm$1@s1.read.news.oleane.net...
Ben en fait c'est pas vraiment le service qui doit être interactif (lui le
seul truc qu'il fait c'est ecouter sur un port une requete socket pour
lancer un executable qui peut être situé en local ou sur le reseau).
Par contre l'application lancée doit elle être interactive.
Dans CreateProcess :
startInfo.lpDesktop = NULL ;
-> If lpDesktop is NULL, the new process inherits the desktop and window
station of its parent process. If lpDesktop is an empty string, the process
does not inherit the desktop and window station of its parent process;
instead, the system determines if a new desktop and window station need to
be created. If the impersonated user already has a desktop, the system will
use the existing desktop.
Donc essayer de mettre une chaine vide à la place. Et sinon il faut
recuperer le desktop/station de l'utilisateur loggué et passer le bon
parametres ( il y'a sans doute des questions de droit ). m'enfin j'en sais
pas beaucoup plus.
"Jean-Yves" a écrit dans le message de news: bqf3lr$2mm$
Ben en fait c'est pas vraiment le service qui doit être interactif (lui le seul truc qu'il fait c'est ecouter sur un port une requete socket pour lancer un executable qui peut être situé en local ou sur le reseau). Par contre l'application lancée doit elle être interactive.
Dans CreateProcess : startInfo.lpDesktop = NULL ;
-> If lpDesktop is NULL, the new process inherits the desktop and window station of its parent process. If lpDesktop is an empty string, the process does not inherit the desktop and window station of its parent process; instead, the system determines if a new desktop and window station need to be created. If the impersonated user already has a desktop, the system will use the existing desktop.
Donc essayer de mettre une chaine vide à la place. Et sinon il faut recuperer le desktop/station de l'utilisateur loggué et passer le bon parametres ( il y'a sans doute des questions de droit ). m'enfin j'en sais pas beaucoup plus.
Loic.
adebaene
"Jean-Yves" wrote in message news:<bqeubf$va3$...
Bonjour,
Bonjour.
J'ai crée un service pour Win2k. Lorsque je lance une application par un CreateProcess à partir de ce service, l'application ainsi lancée apparait bien dans le gestionnaire de taches mais ne s'affiche pas et semble ne pas avoir de file de message alors que si je la lance par l'explorateur tout fonctionne normalement.
Normal : - ton service est lancé dans le contexte de sécurité système ou le contexte d'un compte "réseau", mais en tout cas pas sous le compte de la personne qui est loggée sur la machine. - ton service tourne dans une windows station et un desktop autre que la windows station et le desktop interactifs.
Ce qu'il faut faire : - ImpersonnateLoggedOnUser - CreateProcessAsUser en spécifiant lpDesktop="winsta0default" dans le STARTUPINFO. - RevertToSelf.
Toute la question étant ensuite de savoir comment tu récupères le handle passé à ImpersonnateLoggedOnUser. Ca dépend de ce que tu veux faire et de ton environnement. Est-ce que, par exemple, tu as réfléchi a ce que dois faire si personne n'est loggé sur la machine? Et sur un serveur TerminalServices, c'est dans l'environnement de quel utilisateur que l'application doit se lancer?
Dans tous les cas, l'article "Starting an Interactive Client Process" dans MSDN pourrait te mettre sur la piste
Arnaud
"Jean-Yves" <jean-yves@nospam.com> wrote in message news:<bqeubf$va3$1@s1.read.news.oleane.net>...
Bonjour,
Bonjour.
J'ai crée un service pour Win2k. Lorsque je lance une application par un
CreateProcess à partir de ce service, l'application ainsi lancée apparait
bien dans le gestionnaire de taches mais ne s'affiche pas et semble ne pas
avoir de file de message alors que si je la lance par l'explorateur tout
fonctionne normalement.
Normal :
- ton service est lancé dans le contexte de sécurité système ou le
contexte d'un compte "réseau", mais en tout cas pas sous le compte de
la personne qui est loggée sur la machine.
- ton service tourne dans une windows station et un desktop autre que
la windows station et le desktop interactifs.
Ce qu'il faut faire :
- ImpersonnateLoggedOnUser
- CreateProcessAsUser en spécifiant lpDesktop="winsta0\default" dans
le STARTUPINFO.
- RevertToSelf.
Toute la question étant ensuite de savoir comment tu récupères le
handle passé à ImpersonnateLoggedOnUser. Ca dépend de ce que tu veux
faire et de ton environnement. Est-ce que, par exemple, tu as réfléchi
a ce que dois faire si personne n'est loggé sur la machine? Et sur un
serveur TerminalServices, c'est dans l'environnement de quel
utilisateur que l'application doit se lancer?
Dans tous les cas, l'article "Starting an Interactive Client Process"
dans MSDN pourrait te mettre sur la piste
J'ai crée un service pour Win2k. Lorsque je lance une application par un CreateProcess à partir de ce service, l'application ainsi lancée apparait bien dans le gestionnaire de taches mais ne s'affiche pas et semble ne pas avoir de file de message alors que si je la lance par l'explorateur tout fonctionne normalement.
Normal : - ton service est lancé dans le contexte de sécurité système ou le contexte d'un compte "réseau", mais en tout cas pas sous le compte de la personne qui est loggée sur la machine. - ton service tourne dans une windows station et un desktop autre que la windows station et le desktop interactifs.
Ce qu'il faut faire : - ImpersonnateLoggedOnUser - CreateProcessAsUser en spécifiant lpDesktop="winsta0default" dans le STARTUPINFO. - RevertToSelf.
Toute la question étant ensuite de savoir comment tu récupères le handle passé à ImpersonnateLoggedOnUser. Ca dépend de ce que tu veux faire et de ton environnement. Est-ce que, par exemple, tu as réfléchi a ce que dois faire si personne n'est loggé sur la machine? Et sur un serveur TerminalServices, c'est dans l'environnement de quel utilisateur que l'application doit se lancer?
Dans tous les cas, l'article "Starting an Interactive Client Process" dans MSDN pourrait te mettre sur la piste
Arnaud
Jean-Yves
Merci beaucoup pour toutes ces infos.
"Lo" a écrit dans le message de news:bqfkqf$ds4$
"Jean-Yves" a écrit dans le message de news: bqf3lr$2mm$ > Ben en fait c'est pas vraiment le service qui doit être interactif (lui
le
> seul truc qu'il fait c'est ecouter sur un port une requete socket pour > lancer un executable qui peut être situé en local ou sur le reseau). > Par contre l'application lancée doit elle être interactive.
Dans CreateProcess : startInfo.lpDesktop = NULL ;
-> If lpDesktop is NULL, the new process inherits the desktop and window station of its parent process. If lpDesktop is an empty string, the
process
does not inherit the desktop and window station of its parent process; instead, the system determines if a new desktop and window station need to be created. If the impersonated user already has a desktop, the system
will
use the existing desktop.
Donc essayer de mettre une chaine vide à la place. Et sinon il faut recuperer le desktop/station de l'utilisateur loggué et passer le bon parametres ( il y'a sans doute des questions de droit ). m'enfin j'en sais pas beaucoup plus.
Loic.
Merci beaucoup pour toutes ces infos.
"Lo" <slowlo@caramail.com> a écrit dans le message de
news:bqfkqf$ds4$1@s1.read.news.oleane.net...
"Jean-Yves" <jean-yves@nospam.com> a écrit dans le message de news:
bqf3lr$2mm$1@s1.read.news.oleane.net...
> Ben en fait c'est pas vraiment le service qui doit être interactif (lui
le
> seul truc qu'il fait c'est ecouter sur un port une requete socket pour
> lancer un executable qui peut être situé en local ou sur le reseau).
> Par contre l'application lancée doit elle être interactive.
Dans CreateProcess :
startInfo.lpDesktop = NULL ;
-> If lpDesktop is NULL, the new process inherits the desktop and window
station of its parent process. If lpDesktop is an empty string, the
process
does not inherit the desktop and window station of its parent process;
instead, the system determines if a new desktop and window station need to
be created. If the impersonated user already has a desktop, the system
will
use the existing desktop.
Donc essayer de mettre une chaine vide à la place. Et sinon il faut
recuperer le desktop/station de l'utilisateur loggué et passer le bon
parametres ( il y'a sans doute des questions de droit ). m'enfin j'en sais
pas beaucoup plus.
"Jean-Yves" a écrit dans le message de news: bqf3lr$2mm$ > Ben en fait c'est pas vraiment le service qui doit être interactif (lui
le
> seul truc qu'il fait c'est ecouter sur un port une requete socket pour > lancer un executable qui peut être situé en local ou sur le reseau). > Par contre l'application lancée doit elle être interactive.
Dans CreateProcess : startInfo.lpDesktop = NULL ;
-> If lpDesktop is NULL, the new process inherits the desktop and window station of its parent process. If lpDesktop is an empty string, the
process
does not inherit the desktop and window station of its parent process; instead, the system determines if a new desktop and window station need to be created. If the impersonated user already has a desktop, the system
will
use the existing desktop.
Donc essayer de mettre une chaine vide à la place. Et sinon il faut recuperer le desktop/station de l'utilisateur loggué et passer le bon parametres ( il y'a sans doute des questions de droit ). m'enfin j'en sais pas beaucoup plus.