(vc++) base de registre - savoir si un ordinateur est connecte

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 206 fois - Téléchargée 34 fois

Contenu du snippet

Bon ben voila c'est tout simple mais ca peut etre chiant a trouver sans aide :-)
C surtout pour aider les manipulateur de bases de registre et à la demande suite a mon premier code sur les bases de registres !
C tout bidon mais je pense que ca peut aider...

J ai rajouté une autre méthode utilisant pas les bases de registre mais ke j'aime moin... l avantage c ke je pense ke ca marchera sur tous les windows (je pense).
!!! Attention pour la deuxieme y faut Wininet.lib (sous vc++)

Source / Exemple :


//======================================================
//PREMIERE METHODE (base de registre)

#include <Windows.h>
#include <Winreg.h>
#include <iostream.h>

void main ()
{
	HKEY hkey = 0;
	unsigned long dwLen = sizeof(unsigned long);
	int dwKeyEn = 0;
	int returnValue = 0;

	//Ouvre la clef ou se trouve la valeur pour connaitre l'etat de la connection
	returnValue = RegOpenKey (HKEY_LOCAL_MACHINE, "System\\CurrentControlSet\\Services\\RemoteAccess", &hkey);
	if (returnValue != ERROR_SUCCESS)
		cout << "erreur";
	
	//Lit la valeur
	returnValue = RegQueryValueEx (hkey, "Remote Connection", NULL, NULL, (LPBYTE)&dwKeyEn, &dwLen);
	if (returnValue != ERROR_SUCCESS)
		cout << "erreur";

	//Affiche le résultat
	if (dwKeyEn)
		cout << "Ordinateur connecte a internet !\n\n";
	else
		cout << "Ordinateur non connecte a internet.\n\n";

	//ferme la clef
	RegCloseKey (hkey);
} 

//======================================================
//DEUXIEME METHODE (Wininet)

#include <iostream.h>
#include <winsock2.h>
#include <Wininet.h>	/*JE COMPRENDS PAS...
Normalement la y fot mettre #include <Wininet.h>, nan ?
Alors pk ca marche kan meme #include "Wininet.h" chez moi ?

  • /
void main () { int IsConnected = false; cout << IsConnected << endl; DWORD *dwFlags = NULL; IsConnected = InternetGetConnectedState (dwFlags, NULL); cout << IsConnected; }

Conclusion :


Woila si vous avez des questions ;-)

A voir également

Ajouter un commentaire Commentaires
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
kirdrik2000 > InternetGetConnectedState() est a considerer comme obsolete avec les connexions modernes constantes (adsl, routeur...).
Le seul moyen est de tenter une connexion via socket.
Messages postés
8
Date d'inscription
mardi 7 décembre 2004
Statut
Membre
Dernière intervention
2 juin 2005

Lu ,

Je suis sous XP PRO j'ai donc opté pour le code 2
Ben chez moi c tjrs le meme resultat pour Isconnected :
d'abord 0 puis apres appel 1...Que je sois connecté ou non .
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
6
Assez clair pour la base des registres 9/10
Messages postés
236
Date d'inscription
jeudi 31 octobre 2002
Statut
Membre
Dernière intervention
18 août 2006

Super !
c ce que je cherchais !
merci !
Messages postés
85
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
18 septembre 2005

il faut ajouter dans le projet la bibliotheque wininet.lib, et ça marche !
alain
Afficher les 11 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.