Déplacer un executable

clavat Messages postés 7 Date d'inscription jeudi 25 juin 2009 Statut Membre Dernière intervention 3 janvier 2011 - 13 janv. 2010 à 16:56
clavat Messages postés 7 Date d'inscription jeudi 25 juin 2009 Statut Membre Dernière intervention 3 janvier 2011 - 13 janv. 2010 à 22:45
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

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
13 janv. 2010 à 19:56
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++
0
clavat Messages postés 7 Date d'inscription jeudi 25 juin 2009 Statut Membre Dernière intervention 3 janvier 2011
13 janv. 2010 à 21:43
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
0
clavat Messages postés 7 Date d'inscription jeudi 25 juin 2009 Statut Membre Dernière intervention 3 janvier 2011
13 janv. 2010 à 22:45
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
0
Rejoignez-nous