Salut a tous,
J'ai un petit problème que je peine à comprendre. Dans mon programme, si je le lance normalement (par un double click), j'obtient comme ligne de commande vide (normal), et un current directory qui donne le chemin ou se trouve le prog (normal aussi). Le programme se trouvant sur le disque D, le chemin commence donc par d:\
Par contre si je lance le programme en faisant glisser une autre icone de fichier (n'importe laquelle), j'obtiens comme ligne de commande l'adresse de ce fichier (il est en format court, mais sans importance).
PAR CONTRE, même si cette icone étais sur le disque D, le current directory deviens TOUS LES COUPS c:\
Je n'arrive pas a comprendre pourquoi si je glisse par exemple l'icone de "d:\text\exxai.txt", ma ligne de ocmmande est bien "d:\text\exxai.txt", mais que le repertoire courant devienne toujours "c:\"
Ca change non seulement de repertoire, mais carrement de disque. J'hallucine.
C'est dans mon prog, c'est une fonctionnalité de windows que j'ai pas compris ???
Alors si vous avez une idée, je vous remercie d'avance !!
Ci dessous, l'extrait de code qui produit cet effet.
Merci a tous !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 using namespace std; #include <windows.h> #include <string> /* Declaration des fonctions */ LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM); int Info( string titre, string message ); // //--Simplification de la message Box---------------------------------------------// // int Info( string titre, string message ) { // cette box affiche les differnts sosu dommaines contenus dans lurl MessageBox // affichage du contenu ( NULL, // handle de la fenetre parent (aucune ici) message.c_str(), //contenuFichier, titre.c_str(), // address of title of message box MB_OK | MB_ICONINFORMATION // style of message box (bouton OK + icone I) ); } /* Make the class name into a global variable */ char szClassName[ ] = "WindowsApp"; int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil) { string lnCommande = lpszArgument; char pBuff[MAX_PATH]; string curDir; GetCurrentDirectory( MAX_PATH, pBuff ); curDir.assign(pBuff); lnCommande = ">" + lnCommande + "<"; Info("ligne de Commande",lnCommande); curDir = ">" + curDir + "<"; Info("Repertoire Courant", curDir); return 0; }
Partager