Alors je vous expliquer mon problème, j'ai une gui qui me permet de lancer un autre programme au démarrage. Pour cela je modifie la base de registre. Voici mon code, il fonctionne c'est sur:
Le programme que je veux ce lance bien au démarrage, mais il n'arrive pas ouvrir un fichier dont il a besoin qui se situe dans "./conf/monfichier.txt".
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 bool RunAtStartup(char * fileName){ HKEY key; //LPTSTR pszFileName; = fileName; QMessageBox::critical(0 , "Surf Protector - Error", QString::fromUtf8(fileName)); if(RegCreateKeyExA( HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &key, NULL)) { QMessageBox::critical(0 , "Surf Protector - Error", "Could not create the registry key"); return false; } if( RegSetValueExA( key, "AnalyserEngineConfiguration", 0, // reserved REG_SZ, // dwType (LPBYTE) fileName, (DWORD) strlen( fileName )+1) ) { RegCloseKey(key); QMessageBox::critical(0 , "Surf Protector - Error", "Could not set AnalyserEngineConfiguration!"); return false; } RegCloseKey(key); return TRUE; }
J'ai donc fait un GetCurrentDirectory() pour connaitre le répertoire de mon programme lors de son lancement. Et à ma grande surprise il ne me retourne pas le chemin du programme qui est "C:\Documents and Settings\Thomas\Bureau\mon_prog" mais "C:\Documents and Settings\Thomas".
Comment cela se fait il? Tous les logiciels qui se lance au démarrage, démarre t'il à partir de "C:\Documents and Settings\Thomas"? Si oui est ce possible de changer cela?
Partager