Problème avec ShellExecute

sergedes Messages postés 10 Date d'inscription mardi 17 juin 2003 Statut Membre Dernière intervention 31 octobre 2009 - 30 oct. 2009 à 10:53
sergedes Messages postés 10 Date d'inscription mardi 17 juin 2003 Statut Membre Dernière intervention 31 octobre 2009 - 31 oct. 2009 à 11:47
Bonjour,

j'ai besoin de créer un lecteur virtuel dans mon programme avec la commande subst sous dos.

Je me sers de la commande ShellExecute dans mon appli., je vois bien la fenêtre dos s'ouvrir, mais par contre, je ne retrouve pas le lecteur x: dans le poste de travail.

ShellExecute( hwndDlg, "open", "subst", "x: c:\\sdamp\\amp", NULL, SW_SHOWDEFAULT);


Quelqu'un peut'il m'aider ?

Merci d'avance.


bob

2 réponses

uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
30 oct. 2009 à 13:05
Salut,
Là tu ouvres l'object "subst", dont tu as précisé qu'il se trouvait dans le répertoire courant de ton processus appelant, en passant en paramètre d'exécution "x: c:\\sdamp\\amp".

Un bref coup d'oeil à la msdn te permettra de corriger ton erreur.


Cordialement, uaip.
0
sergedes Messages postés 10 Date d'inscription mardi 17 juin 2003 Statut Membre Dernière intervention 31 octobre 2009
31 oct. 2009 à 11:47
Bonjour,

Merci uaip, j'ai compris dans la msdn qu'il faut obligatoirement mettre la direction du répertoire ou se trouve subst.exe

Soit ShellExecute( hwndDlg, "open", "c:\windows\system32\subst.exe", "x: c:\\sdamp\\amp", NULL, SW_SHOWDEFAULT);

Pour vista ou

ShellExecute( hwndDlg, "open", "c:\windows\command\subst.exe", "x: c:\\sdamp\\amp", NULL, SW_SHOWDEFAULT);
Pour XP

Mais j'ai trouvé une meilleur commande API :

DefineDosDevice (0, "x:", "c:\\sdamp\\amp"); // pour créer le lecteur virtuel

DefineDosDevice (DDD_REMOVE_DEFINITION , "x:", NULL); // pour le detruire

Merci beaucoup pour ton aide.

Serge.

bob
0
Rejoignez-nous