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.
Publicité
Posté le 08-03-2010 à 14:43:05
Harkonnen
Modérateur Un modo pour les bannir tous
Posté le 08-03-2010 à 17:01:28
poste ton code stp
---------------
J'ai un string dans l'array (Paris Hilton)
Ne fonctionne pas :
ShellExecute(hwnd, "runas", "C:\\Windows\\MonProgramme.exe", 0, 0, SW_SHOWNORMAL);
breizhbugs
Posté le 09-03-2010 à 18:19:59
El la fonction te retourne quoi comme erreur?
nmeuret
Posté le 10-03-2010 à 16:32:05
-5 -> Access Denied
Harkonnen
Modérateur Un modo pour les bannir tous
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)
breizhbugs
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?
nmeuret
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.
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
---------------
J'ai un string dans l'array (Paris Hilton)
nmeuret
Posté le 12-03-2010 à 16:49:40
Je donne les droits max à "Tout le monde", control total, et ça change rien
Publicité
Posté le 12-03-2010 à 16:49:40
Harkonnen
Modérateur Un modo pour les bannir tous
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 ?
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.