IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

[Win] Lancer un programme au démarrage


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de psyphi
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Allemagne

    Informations professionnelles :
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2006
    Messages : 119
    Par défaut [Win] Lancer un programme au démarrage
    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:
    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;
    }
    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".
    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?

  2. #2
    Membre chevronné Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Par défaut
    C'est pour ça qu'il faut utiliser GetModuleFileName.

  3. #3
    Membre éprouvé Avatar de psyphi
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Allemagne

    Informations professionnelles :
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2006
    Messages : 119
    Par défaut
    Merci de ta réponse, mais finalement j'utilise un clef registre que je créer lors de l'installation du programme et qui contient le chemin d'installation.
    Je ne sais pas quelle méthode est la plus propre.

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Par défaut
    Citation Envoyé par psyphi
    Je ne sais pas quelle méthode est la plus propre.
    A mon humble avis, celle de Mayti4.

  5. #5
    Membre éprouvé Avatar de psyphi
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Allemagne

    Informations professionnelles :
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2006
    Messages : 119
    Par défaut
    Pourquoi?
    Sinon j'ai vu que pas mal de logiciel fesait comme moi et écrivait dans la base de registre le chemin d'accès à leur programme

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Par défaut
    Citation Envoyé par psyphi
    Pourquoi?
    Parce-que :
    - cela évite d'avoir à l'écrire dans la base de registre ;
    - cela permet de déplacer et/ou renommer le programme sans avoir à modifier la base de registre ;
    - cela fonctionnera toujours même si la base de registre est modifiée.
    Citation Envoyé par psyphi
    Sinon j'ai vu que pas mal de logiciel fesait comme moi et écrivait dans la base de registre le chemin d'accès à leur programme
    Sinon, j'ai vu plein de gens téléphoner en conduisant. Cela ne veut pas dire que c'est bien.

Discussions similaires

  1. Lancer un programme au démarrage
    Par Mehdipepper dans le forum Autres Logiciels
    Réponses: 6
    Dernier message: 21/05/2006, 07h12
  2. Lancer un programme au démarrage de windows
    Par jejeb dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 25/03/2006, 21h32
  3. [SOLARIS] lancer un programme au démarrage
    Par gangsoleil dans le forum Solaris
    Réponses: 2
    Dernier message: 01/12/2005, 22h11
  4. Comment lancer un programme au démarrage de Windows ?
    Par nesquik dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 29/07/2005, 17h48
  5. Lancer un programme au démarrage
    Par ludo_7 dans le forum Windows
    Réponses: 7
    Dernier message: 09/10/2003, 16h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo