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

  1. #1
    Membre régulier Avatar de psyphi
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Allemagne

    Informations professionnelles :
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2006
    Messages : 119
    Points : 120
    Points
    120
    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?
    Mon blog: http://blog.bores.fr
    Mon wiki: http://bores.fr/wiki
    Mes programmes libres: https://github.com/tbores

  2. #2
    Membre confirmé Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Points : 488
    Points
    488
    Par défaut
    C'est pour ça qu'il faut utiliser GetModuleFileName.
    L'itération est humaine; la récursion, divine.

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

    Informations professionnelles :
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2006
    Messages : 119
    Points : 120
    Points
    120
    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.
    Mon blog: http://blog.bores.fr
    Mon wiki: http://bores.fr/wiki
    Mes programmes libres: https://github.com/tbores

  4. #4
    Membre éprouvé

    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
    Points : 1 067
    Points
    1 067
    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.
    Un problème bien exposé
    est, pour moitié, solutionné. / La connaissance s'accroît quand on la partage, pas quand on l'impose. / La violence est le langage des faibles.

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

    Informations professionnelles :
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2006
    Messages : 119
    Points : 120
    Points
    120
    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
    Mon blog: http://blog.bores.fr
    Mon wiki: http://bores.fr/wiki
    Mes programmes libres: https://github.com/tbores

  6. #6
    Membre éprouvé

    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
    Points : 1 067
    Points
    1 067
    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.
    Un problème bien exposé
    est, pour moitié, solutionné. / La connaissance s'accroît quand on la partage, pas quand on l'impose. / La violence est le langage des faibles.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 27
    Points : 26
    Points
    26
    Par défaut
    Bonjour,
    Je veux lancer mon application lors du démarrage de système, au niveau de ce point aucun Pb avec le sujet de "psyphi".
    Mais mon problème c'est: je veux que mon application se lance même avant la boîte d'authentification "winlog.exe".

    Merci d'avance pour vos réponses.

  8. #8
    Membre régulier Avatar de psyphi
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Allemagne

    Informations professionnelles :
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2006
    Messages : 119
    Points : 120
    Points
    120
    Par défaut
    Alors là je ne sais pas trop à mon avis il doit falloir descendre assez bas niveau programmation. Désolé mais je en m'y connais pas assez pour te répondre.
    Mais je sais que c'est possible car mon antivirus se lance avant même que je me sois loguer.
    Par contre si tu trouves la solutions elle m'interesse!!
    Mon blog: http://blog.bores.fr
    Mon wiki: http://bores.fr/wiki
    Mes programmes libres: https://github.com/tbores

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 464
    Points : 542
    Points
    542
    Par défaut
    --> faire un service.
    "La forme même des Pyramides prouve que de tous temps, les ouvriers n'ont jamais pensé qu'à en faire de moins en moins."

    G. CLEMENCEAU

  10. #10
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 27
    Points : 26
    Points
    26
    Par défaut
    Il n'y a pas d'autres solutions?

  11. #11
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par riadhz
    Il n'y a pas d'autres solutions?
    Je crois bien que non..
    les programmes qui se lancent au démarrage et tournent en tache de fond il vaut mieux développer un service

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