Déplacer un executable

Signaler
Messages postés
7
Date d'inscription
jeudi 25 juin 2009
Statut
Membre
Dernière intervention
3 janvier 2011
-
Messages postés
7
Date d'inscription
jeudi 25 juin 2009
Statut
Membre
Dernière intervention
3 janvier 2011
-
Bonjour à tous. je suis sous windows avec visual studio je programme en c++ et je suis sur un projet pour mon BTS IRIS et la je bloque je dois déplacer l'éxécutable d'un dossier à un autre.. en gros le programme se lance il propose à la personne où le déplacer donc il fait "parcourir" (ceci fonctionne) mais je ne vois pas comment déplacer le programme lui même.

Merci de votre aide

3 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Tu crées un .bat (en dynamique par le prog) et JUSTE AVANT de se couper, le prog lance le bat.

ciao...
BruNews, MVP VC++
Messages postés
7
Date d'inscription
jeudi 25 juin 2009
Statut
Membre
Dernière intervention
3 janvier 2011

j'ai réussie à déplacer mon executable grace a ce code :

MoveFile(TEXT("C:\\Users\\clavat\\Desktop\\Debug\\client.EXE"),TEXT("C:\\Users\\clavat\\Documents\\client.EXE"));

mais le problème est que le path source (1er paramètre est bon 1 seul fois car apre une fois l'exe deplacer il n'est plus bon... il faudrais que je récupère le path courant de l'exe, peut etre avec ce code :

string temps;
GetCurrentDirectory(MAX_PATH, temps);

mais il me dit une erreur :
Erreur 6 error C2664: 'GetCurrentDirectoryW' : impossible de convertir le paramètre 2 de 'std::string' en 'LPWSTR' c:\users\clavat\desktop\client\main.cpp 31

merci de ton aide
Messages postés
7
Date d'inscription
jeudi 25 juin 2009
Statut
Membre
Dernière intervention
3 janvier 2011

string temps = argv[0];
temps[0] = 'C';
temps[temps.length()-3] = 'E';
temps[temps.length()-2] = 'X';
temps[temps.length()-1] = 'E';

int len;
int slength = (int)temps.length() + 1;
len = MultiByteToWideChar(CP_ACP, 0, temps.c_str(), slength, 0, 0);
wchar_t* buf = new wchar_t[len];
MultiByteToWideChar(CP_ACP, 0, temps.c_str(), slength, buf, len);
std::wstring r(buf);
delete[] buf;
LPCWSTR result = r.c_str();
MoveFile(result,TEXT("C:\\Users\\clavat\\Desktop\\client.EXE"));

Voila fini avec un peu de recherche et de jugote, ce code déplace votre éxécutable sur le bureau enfin a vous de définir l'endroit.
Enjoy