Aller au contenu
Règlement du forum ×
IPTV et arnaques ×

Etablir une connexion ADSL en C/C++


Golden-boy

Messages recommandés

Salut !

 

Je cherche depuis 6 mois comment créer un programme en C ou en C++ un peu comme ADSL autoconnect mais impossible de trouver comment établir un connexion ADSL ou comment vérifier son état.

Si quelqu'un pouvait m'aider ça serait vraiment génial, je sui même prêt à apprendre tout un autre langage rien que pour créer ce fichu programme.

merci.

Lien vers le commentaire
Partager sur d’autres sites

  • 3 weeks later...

Salut, tu peux aussi utiliser les objets ole de l'api com de windows, ça te permettra de "simuler" le clique sur connecter, j'avais fait un truque du genre sous delphi, je te donne le code, je traduirai en cpp dès que j'ai le temps ;) :

uses ComObj;

procedure SwitchOnOff;
var
  sConnectionName : string;
  sEnableVerb : string;
  sDisableVerb : string;
  shellApp, oControlPanel, oNetConnections, oLanConnection: OleVariant;

  I, J: integer;
  bEnabled: boolean;
  oEnableVerb, oDisableVerb: Variant;
  s: string;

function NormalString(S: string): string;
var
 I: Integer;
begin
 Result := '';
 for I := 1 to Length(S) do
 begin
   if (S[i] >= 'A') and (S[i]       S[i] := Char(Word(S[i]) or $0020);
   case S[i] of
     ' ': ;
     '&': ;
     'é', 'è', 'ê': Result := Result + 'e';
     else Result := Result + S[i];
   end;
 end;
end;

function IsConnectFolder(S: string): Boolean;
begin
 S := NormalString(S);
 Result := (S = 'connexionsreseau') or (S = 'networkconnection');
end;

function IsEnableConnect(S: string): Boolean;
begin
 S := NormalString(S);
 Result := (S = 'activer') or (S = 'activate') or (S = 'seconnecter') or (S = 'connect');
end;
begin
  shellApp := CreateOleObject('shell.application');
  oControlPanel := shellApp.Namespace(3);

  oNetConnections := Null;
  for I := 0 to oControlPanel.Items.Count - 1 do
  begin
     if IsConnectFolder(oControlPanel.Items.item(I).Name) then
     begin
        oNetConnections := oControlPanel.items.Item(I).getfolder;
        Break;
     end;
  end;
  if VarIsNull(oNetConnections) then
  begin
    if oControlPanel.Items.Count > 3 then
      oNetConnections := oControlPanel.items.Item(3).getfolder
    else
      Exit;
  end;

  for I := 0 to oNetConnections.items.count - 1 do
  begin
    oLanConnection := oNetConnections.items.item(I);
    for J := 0 to oLanConnection.verbs.Count - 1 do
      if IsEnableConnect(oLanConnection.verbs.item(J).name) then
      begin
         oLanConnection.invokeverb(oLanConnection.verbs.item(J).name);
         oLanConnection.verbs.item(J).DoIt;
	  Break;
      end;
  end;
end;

cette procedure te connecte ou te déconnecte selon ton état initial ..

j'avoue ce n'est pas très propre comme méthode, mais sa a le mérite de fonctionner;

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...