LogonUser et CreateProcessAsUser. Problème d'affichage.

Nofrags Messages postés 3 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 24 mai 2007 - 23 mai 2007 à 11:52
zboujbel Messages postés 1 Date d'inscription mardi 4 novembre 2008 Statut Membre Dernière intervention 6 novembre 2008 - 6 nov. 2008 à 03:45
Bonjour,

Je reprend un service qui ne fonctionne actuellement pas correctement. Il permet de lancer
une application via un programme d'administration installer sur une autre machine.

Voila mon problème, lorsque j'utilise la fonction CreateProcessAsUser(...), l'application que je lance ne s'affiche pas correctement mais focntionne bien. On distingue les contours de l'application mais impossible de voir quelque chose ou de cliquer sur les boutons de l'application.

En utilisant la fonction CreateProcess(...), aucun de ces problèmes ne se produit. Sauf que l'application doit copier des fichiers via le réseau sur différentes machines ce qu'elle ne fait pas.
Le problème vient du fait que les droits du service sont hérités du compte LocalSystem. Il ne peut donc pas copier des fichiers via le réseau.

Existe t-il une solution pour donner les droits d'un utilisateur à une application graphique?

Merci pour vos réponses. Je ne vois vraiment pas comment m'en sortir.

4 réponses

Nofrags Messages postés 3 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 24 mai 2007
23 mai 2007 à 14:16
Je viens de parcourir le code de l'exmple que tu me propose.

J'ai trouvé la fonction CreateProcessWithLogonW permettant de lancer un process
avec les droits d'un autre utilisateur.

Je suis allé voir la documentation SDK de cette fonction et elle indique qu'elle ne peut être
utilisée pour un service car il utilise un compte par défaut non autorisé.

Je vais tester en spécifiant au service d'utiliser un compte par défaut de la machine.

Je vous tien au courant de mes avancées.

Nofrags
0
Nofrags Messages postés 3 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 24 mai 2007
24 mai 2007 à 15:59
Bonjour,

J'ai essayer de tester avec la fonction CreateProcessWithLogonW mais n'est pas
supportée par Delphi 6.

Comment ajouter cette fonction qui est bien présente dans la documentation du SDK de Windows?

Ou existe-t-il une autre solution??

Merci pour vos réponses.
0
cs_Loda Messages postés 814 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 30 juillet 2009 3
25 mai 2007 à 11:34
salut NoFrags,

oui, tu peux l'ajouter dans Delphi. il te faut juste l'importer.

inspire toi de windows.pas : CreateProcessAsUser pour un exemple d'importation d'API windows.

Doc sur CreateProcessWithLogonW :

http://msdn2.microsoft.com/en-us/library/ms682431.aspx

Requires Windows Vista, Windows XP, or Windows 2000 Professional.

n'oublie pas de vérifier si la version de windows support cette fonction.

bon code,

Loda
0
zboujbel Messages postés 1 Date d'inscription mardi 4 novembre 2008 Statut Membre Dernière intervention 6 novembre 2008
6 nov. 2008 à 03:45
Bonjour Nografs,

Je suis entrain de developper un service qui s'execute en tantque SYSTEM et qui utilise LogonUser et CreateProcessAsUser pour lancer une autre application avec un autre utilisateur. Cependant, j'ai eu le même probleme d'affichge que toi (Affichage des contours seulement).

Je me demande quel solution tu as trouvé pour résoudre ce problème.

Merci d'avance de ta collaboration.
0
Rejoignez-nous