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

0/5 (11 avis)

Snippet vu 7 364 fois - Téléchargée 36 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
BruNews
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
26
17 déc. 2004 à 13:04
kirdrik2000 > InternetGetConnectedState() est a considerer comme obsolete avec les connexions modernes constantes (adsl, routeur...).
Le seul moyen est de tenter une connexion via socket.
kirdrik2000
Messages postés
8
Date d'inscription
mardi 7 décembre 2004
Statut
Membre
Dernière intervention
2 juin 2005

17 déc. 2004 à 12:45
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 .
victorcoasne
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
7
10 mai 2004 à 11:41
Assez clair pour la base des registres 9/10
Guidelor
Messages postés
236
Date d'inscription
jeudi 31 octobre 2002
Statut
Membre
Dernière intervention
18 août 2006

5 mars 2004 à 22:30
Super !
c ce que je cherchais !
merci !
cs_alain34270
Messages postés
85
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
18 septembre 2005

31 janv. 2004 à 07:57
il faut ajouter dans le projet la bibliotheque wininet.lib, et ça marche !
alain

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.