ShellExecute & W7

ShellExecute & W7 - API Win32 - Programmation

Marsh Posté le 08-03-2010 à 14:43:05    

Bonjour,
 
J'ai un problème avec les fonctions ShellExecute (et _spawn), sous Windows 7 : mon code marchait très bien sous XP, mais sous 7 (pas testé sous Vista), j'ai systèmatiquement un Access Denied quand j'essaie d'exécuter un autre .exe.
 
Seule exeption : certains exe Windows comme Regedit ou NotePad qui eux, avec le même code, se lance bien.
 
Je cherche bien sûr du coté de la sécurité et de l'UAC, j'ai fait des tests avec 'RunAs', mais rien n'y fait.
 
Faut-il que je change quelque chose dans les exe appelés ? Un manifest ?
 
D'avance merci.

Reply

Marsh Posté le 08-03-2010 à 14:43:05   

Reply

Marsh Posté le 08-03-2010 à 17:01:28    

poste ton code stp


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 09-03-2010 à 17:27:34    

Mon code est basic :
 
Fonctionne :
ShellExecute(hwnd, "runas", "C:\\Windows\\Notepad.exe", 0, 0, SW_SHOWNORMAL);
 
Ne fonctionne pas :
ShellExecute(hwnd, "runas", "C:\\Windows\\MonProgramme.exe", 0, 0, SW_SHOWNORMAL);

Reply

Marsh Posté le 09-03-2010 à 18:19:59    

El la fonction te retourne quoi comme erreur?

Reply

Marsh Posté le 10-03-2010 à 16:32:05    

-5 -> Access Denied

Reply

Marsh Posté le 10-03-2010 à 16:35:52    

ben voilà, c'est donc un problème de droits d'accés...


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 10-03-2010 à 18:55:09    

Et sous w7, si tu lances ton programme en mode administrateur (clic droit executer en tant qu'admin), le shellexecute fonctionne t il?

Reply

Marsh Posté le 12-03-2010 à 14:02:22    

Merci Harkonnen, quand j'ai un Access Denied, je me doute que c'est un problème de droit d'accès. Maintenant ce que je me demande, c'est pourquoi j'ai ce problème sur un exe donné, et pas sur NotePad.exe ??
 
L'exe que je dois lancer, c'est aussi moi qui le développe, donc s'il faut changer quelque chose dedans ... J'ai regardé du coté des Manifest embarqué, mais ça ne donne pas grand chose.
 
:(

Reply

Marsh Posté le 12-03-2010 à 14:09:22    

nmeuret a écrit :

Merci Harkonnen, quand j'ai un Access Denied, je me doute que c'est un problème de droit d'accès. Maintenant ce que je me demande, c'est pourquoi j'ai ce problème sur un exe donné, et pas sur NotePad.exe ??


mais tu as regardé les droits sur ce fichier ? (clic droit=> propriétés => onglet sécurité)
au pire, fait un essai en autorisant tous les droits à "Tout le monde", si ça marche alors il te faudra restreindre petit à petit :spamafote:


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 12-03-2010 à 16:49:40    

Je donne les droits max à "Tout le monde", control total, et ça change rien :(

Reply

Marsh Posté le 12-03-2010 à 16:49:40   

Reply

Marsh Posté le 12-03-2010 à 17:12:59    

je viens de voir que ton programme est dans C:\Windows
t'as pas moyen de le mettre ailleurs que dans ce répertoire, qui est soumis à moultes sécurités depuis Vista ?


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 12-03-2010 à 18:59:34    

Harkonnen a écrit :

je viens de voir que ton programme est dans C:\Windows
t'as pas moyen de le mettre ailleurs que dans ce répertoire, qui est soumis à moultes sécurités depuis Vista ?

Ça serait déjà plus propre, dans Program Files ce serait sans doute plus adapté.
Tu es obligé d'utiliser ShellExecute ? Utilise si tu peux CreateProcess qui permet de mieux gérer les applis lancées il me semble.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed