Jump to content

Etablir une connexion ADSL en C/C++


Golden-boy
 Share

Recommended Posts

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.

Link to comment
Share on other 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;

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



×
×
  • Create New...