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

MFC Discussion :

Faire démarrer mon application en 1ere dans WinXP


Sujet :

MFC

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 35
    Points : 20
    Points
    20
    Par défaut Faire démarrer mon application en 1ere dans WinXP
    Bonjour,

    J'ai une application que je souhaite exécuter au démarrage de windows en tous premiers, savez vous ou je dois inscrire celà dans windows, dans quelle fichier exactement ??

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    et bien essaye de te placer la :
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
    pour infos c'est aussi içi que l'on retrouve les de virus.

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 35
    Points : 20
    Points
    20
    Par défaut
    Ok j'ai trouvé les info dans regedit mais comment faire si je souhaite par exemple executer mon programme au demarrage? un .exe précisement

    Merci

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    tu crées une clé à cet endroit avec pour valeur le nom et l'emplacement de ton exe

  5. #5
    Membre du Club
    Inscrit en
    Octobre 2002
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 39
    Points : 40
    Points
    40
    Par défaut
    c simple comme farscape a dit faudra ajouter le chemin de ton app au regkey approprie
    pour cela tu ajoutes dans ton programme d'install ou ds l'application elle meme ce ptit bout de code

    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
     
    BOOL UpdateRegKey()
    {
    //si tu ajoutes ce code a l'app elle meme utilise ce bloc(detection automatique)
    ////////////////////////////////////////////////////////////////////////
    //Get File name 
    	char *csAppPath = new char[MAX_PATH];
    	memset(csAppPath,0,MAX_PATH);
    	if(!::GetModuleFileName(0, csAppPath, MAX_PATH))
    	{
    		delete csAppPath;
    		DWORD err = GetLastError();
    		char toto[256]; 
    		FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,NULL,err,0,toto,255,NULL);
    		AfxMessageBox(toto);
    		return FALSE;
    	}
    	if(!csAppPath)
    		return FALSE;
    /////////////////////////////////////////////////////////////////////////////////
    //sinon tu dois passer a la fonction le chemin de l'application
    ////////////////////////////////////////////////////////////////////////////////
    	char *parent = ParentDirectory(csAppPath);//fonction ke j'ai faite pour trouver le parent d'un fichier ou dossier
    	if(!parent)
    	{
    		MyDelete(csAppPath);
    		return FALSE;
    	}
    	strAppPath = _T(parent);
    	delete parent;
    	SetCurrentDirectory(csAppPath);
    //test if the app has been already registred
    	HKEY hRegKey = NULL;
    	BYTE *value=new BYTE[500]; 
    	DWORD lenght = 0;
    	DWORD error = 0;
    	TCHAR szKey[256];
    	DWORD flag=(DWORD)REG_SZ;
    	_tcscpy(szKey, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Run"));
    	if ((error=RegOpenKeyEx(HKEY_LOCAL_MACHINE,szKey,0,KEY_QUERY_VALUE,&hRegKey))!= ERROR_SUCCESS) 
    	{
    		char *toto = new char[256]; 
    		FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,NULL,error,0,toto,255,NULL);
    		delete toto;
    		delete value;
    	}
    	else
    	{
    		if((error=RegQueryValueEx(hRegKey,APP_NAME,0,&flag,value,&lenght))!=ERROR_SUCCESS)
    		{
    			char *toto = new char[256];
    			FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,NULL,error,0,toto,255,NULL);
    			delete toto;
    			delete value;
    		}
    	}
    	if(value && !strcmp((char*)value,csAppPath))
    	{
    		delete csAppPath;
    		delete value;
    		return TRUE;
    	}
    	delete value;
    //register app
    	if (RegOpenKey(HKEY_LOCAL_MACHINE, szKey, &hRegKey) != ERROR_SUCCESS) 
    	{
    		DWORD err = GetLastError();
    		char toto[256]; 
    		FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,NULL,err,0,toto,255,NULL);
    		delete csAppPath;
    		return FALSE;
    	}
    	else
    	{
    		if(::RegSetValueEx(hRegKey,APP_NAME,0,(DWORD)REG_SZ,(BYTE*)csAppPath,strlen(csAppPath))!=ERROR_SUCCESS)
    		{
    			DWORD err = GetLastError();
    			char toto[256]; 
    			FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,NULL,err,0,toto,255,NULL);
    			delete csAppPath;
    			return FALSE;
    		}
    	}
    	delete csAppPath;
    	return TRUE;
    }
    char* ParentDirectory(char *pathname)
    {
    if (!pathname)
    		return NULL;
    	char *ret = NULL;	
    	unsigned int i = strlen(pathname) - 1;
    	if ( pathname[strlen(pathname) - 1] == '\\' )
    		i--;
    	for ( ; i != 0; i--)
    	{
    		if (pathname[i] == '\\')			
    		 break;
    	}
    		ret = new char[strlen(pathname) +1];
    	if ( i != 0)
    	{
    		unsigned int j;
    		for ( j = 0; j < i ; j++ )
    			ret[j] = pathname[j];
    		ret[j] = '\0';
    	}
    	return ret;
    }

  6. #6
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 35
    Points : 20
    Points
    20
    Par défaut
    Merci Nicolas Hilaire

    Merci farscape

  7. #7
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 35
    Points : 20
    Points
    20
    Par défaut
    Merci Black_Daimond

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Outlook] Faire communiquer mon application php avec MS Outlook
    Par carnifex dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 01/02/2012, 09h08
  2. Réponses: 4
    Dernier message: 08/07/2008, 14h39
  3. Réponses: 6
    Dernier message: 25/06/2007, 14h00
  4. Réponses: 5
    Dernier message: 07/05/2007, 10h44
  5. Faire évoluer mon application
    Par laclac dans le forum Général Java
    Réponses: 2
    Dernier message: 23/05/2006, 21h13

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