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

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...