ShellExecute & W7 - API Win32 - Programmation
Marsh Posté le 08-03-2010 à 17:01:28
poste ton code stp
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);
Marsh Posté le 10-03-2010 à 16:35:52
ben voilà, c'est donc un problème de droits d'accés...
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?
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.
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
Marsh Posté le 12-03-2010 à 16:49:40
Je donne les droits max à "Tout le monde", control total, et ça change rien
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 ?
Marsh Posté le 12-03-2010 à 18:59:34
Harkonnen a écrit : je viens de voir que ton programme est dans C:\Windows |
Ç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.
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.