begin process at 2012 05 29 02:27:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

System

 > 

CreateProcessWithLogonW


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

CreateProcessWithLogonW

jeudi 13 août 2009 à 12:10:03 | CreateProcessWithLogonW

Rankin

Salut à tous,

J'ai créé un programme qui doit exécuter des commandes sous un compte admin. J'ai prévu le cas où un utilisateur simple exécute mon application : dans ce cas la commande sera exécutée avec d'autres privilèges.
J'utilise actuellement un appel au programme externe CPAU.exe, mais je n'en suis pas satisfait : ce n'est pas propre et j'ai un cas où la commande ne peu s'exécuter (appel à une fonction système dont les arguments comprennent des espaces).

Étant donné que CPAU.exe est fait en C++ et qu'il fait ce que je veux faire, il paraît logique que mon programme effectue lui-même la création de processus par un autre utilisateur.

Après recherche, j'ai constaté qu'il y avait plusieurs façons de faire : un LogonUser suivi de CreateProcessWithToken ou CreateProcessAsUser.
Comme apparemment de nombreuses personnes, j'ai rencontré l'erreur 1314, droits insuffisants.

Je me suis donc rabattu vers la fonction "CreateProcessWithLogonW" qui, semble-t-il, a été la solution miracle pour de nombreux programmeurs. Le problème, c'est qu'à la compilation, j'ai l'erreur suivante :

"`CreateProcessWithLogonW' undeclared (first use this function) "
Or, cette fonction est bien définie dans le header winbase.h que j'inclus dans mon programme, et Wxdev-c++ 6.10.2 que j'utilise me propose le choix de cette fonction en auto-complétion.

Dois-je ajouter un lien à la compilation, mon fichier winbase n'est-il pas correct, ... ?
J'avoue ne plus trop savoir quoi faire pour me dépêtrer de cette situation !

Merci pour vos conseils / aide / encouragements ;)


jeudi 13 août 2009 à 12:41:59 | Re : CreateProcessWithLogonW

magma


To compile an application that uses this function, define _WIN32_WINNT as 0x0500 or later.

jeudi 13 août 2009 à 13:01:43 | Re : CreateProcessWithLogonW

Rankin

Yes, that's what I did, but it doesn't work anyway :/



jeudi 13 août 2009 à 13:44:11 | Re : CreateProcessWithLogonW

Rankin

Well, I tried to comment the "#if (_WIN32_WINNT >= 0x0500)" in Winbase.h.
I encountered several other problems after, like invalid handles, but I finally managed to run my application.
How can I redefine the value of _WIN32_WINNT if it's already done with a value lower than 0x0500 ?



jeudi 13 août 2009 à 14:15:13 | Re : CreateProcessWithLogonW

rt15

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !

Hi,

Why is it an english thread here ?

If you try this code :

Code C/C++ :
#define TOTO 1

#define TOTO 2
#if TOTO == 1
#error My compiler is stupid
#endif


You won't have the "My compiler is stupid" error but a warning :
warning C4005: 'TOTO' : macro redefinition

Consequently:
1) The last defined value is used.
2) There is a warning if you re-define something (But you can use #undef).

The common problem in your case is that your code looks like this:
Code C/C++ :
#include <windows.h>

define _WIN32_WINNT 0x0500


Consequently, when you include winbase, _WIN32_WINNT is not yet defined.
_WIN32_WINNT must be defined before the first include of windows.h.
Code C/C++ :
define _WIN32_WINNT 0x0500

#include <windows.h>


jeudi 13 août 2009 à 14:32:03 | Re : CreateProcessWithLogonW

Rankin


"Why is it an english thread here ? "

Première réponse en anglais, j'ai suivi :)

Effectivement je faisais ma définition après l'inclusion avec un ifndef ; je risquais pas de modifier grand chose. Merci pour ces conseils !

PS : et je pense comprendre que la première réponse est un copier-coller de MSDN. Je me suis couvert de ridicule. Heureusement, ça ne tue pas :)



Cette discussion est classée dans : fonction, programme, exécuter, cas, createprocesswithlogonw


Répondre à ce message

Sujets en rapport avec ce message

un programme qui en crée un autre [ par ritchou42 ] salut [^^yeuxenlair] je voulais savoir quel est la façon de procédé si je veux crée un programme sous win qui puissant générer un .exe en fonction du Thread ? [ par galax98 ] Bonjour Une petite question sans doute basique mais je n'arrive pas à m'en sortir. J'ai développé une application Windows sous dev-cpp, avec notamment Problème d'utilisation d'un Fonction déclarée dans un .cpp différent. [ par Valentintinmar ] Bonjour à tous, Je travaille sur un programme dévellopé sur Visual C++ en unicode, le programme est construits avec plusieurs .cpp et plusieurs .h J stack overflow [ par ssana83 ] Bonjour, j'ai réalisé un programme de création d'un arbre donc j'ai utilisé une fonction récursive. J'ai essayé le programme ça marche sauf avec certa La fonction ioperm() [ par baptchr55 ] Bonjour à tous, j'ai une simple petite question... Dans le cadre d'un projet j'ai récupéré une petit programme pour l'ouverture du port // que j'ai p programme en c qui calcule la fonction m^e mod n pour m,e et n des valeurs grands [ par ami2008 ] Bonjour,je veux un programme en c qui calcule la fonction m^e mod n pour m,e et n des valeurs grands... j'ai trouvé dans cppfrance la fonction qui cal suppression des fichiers [ par boualiasma ] Bonjour, Je voulais supprimer totalement à partir de mon programme C sous windows tous les fichiers textes temporaires dans mon répertoire de travail GetLocalTime [ par manyyy67 ] Bonjour, Je debute en c++, je suis charger des faire quelque ameliorations sur un (gros) programme professionel en c++(le IE est visual C++ 6 et le pr programme curseur [ par bassemamara1984 ] bonjour dans mon programme je veut afficher des image alors j'ai charger 4 image pour faire apparaitre un carré sur mon programme vous saver que pour Communication interprocessus [ par infodaoudi ] Bonjour, j'ai un programme (et non pas une fonction) qui doit retourner plusieurs paramètres (15 de types différent) , ces paramètres devront être com


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,281 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales