Jak włączać i wyłączać połączenie przez modem

0

Witajcie.
Mam internet mobilny w PLAY na modemie. Modem zainstalowany jest poprawnie. Laczy sie z internetem przez program PLAYa lub przez wybranie "polacz" przez modem w polaczeniach sieciowych.
Teraz pytanie:
Jak napisac prosty program do wlaczania i wylaczania polaczenia przez modem ?
Pozdrawiam i z gory dziekuje za pomoc.

0

Obsługa wiersza poleceń (np. komponent DosCommand który pobierzesz stąd http://hackme.pl/viewpage.html?page_id=11 drugi od góry) i polecenie ipconfig /renew

0

Dokładnie. Wystarczą 2 procedury w całym programie:

procedure TForm1.FormCreate(Sender: TObject);
begin
  DosCommand1.CommandLine := 'cmd.exe';
  DosCommand1.Execute;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  DosCommand1.SendLine('ipconfig /renew', True);
end;
0

Ale się lubicie bawić w komponenty...

Wystarczy... (a dodatkowo sprawdzana jest wersja systemu)

{Wykorzystaj systemowy program:
IPconfig.exe dla XP
IPcfg.exe dla 98
}

uses ShellApi;

procedure PolaczInternet(Status: Boolean);
begin
 if Status then
  begin
   if Win32Platform = VER_PLATFORM_WIN32_NT then ShellExecute(Application.Handle, 'open', 'ipconfig', '/renew', nil, SW_HIDE)
   else ShellExecute(Application.Handle, 'open', 'ipcfg.exe', '/renew_all', nil, SW_HIDE);
  end 
 else
   begin
    if Win32Platform = VER_PLATFORM_WIN32_NT then ShellExecute(Application.Handle, 'open', 'ipconfig', '/release', nil, SW_HIDE)
    else ShellExecute(Application.Handle, 'open', 'ipcfg.exe', '/release_all', nil, SW_HIDE);
   end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 PolaczInternet(True);
end;
0

Wiecie wszystko fajnie tylko jest uno prolemo. Rozwiazania ktore podaliscie nie nawiazuja polaczenia przez modem. Z przegladania roznosci w necie doszedlem do tego ze czesto ludki wykorzystuja do tego celu WinInet ale jeszcze nie wiem co jest co z jego wykorzystaniem. Jezeli mozecie to zobaczcie jak to wyglada i napiszcie jezeli doc zegos dojdziecie.
Pozdrawiam.

0

kiedys mialem to napisane do modemu z neostrady nie wiem czy to dziala tak samo ale wykorzystywalo tam opcje NET jak sie nie myle... A rozwiazanie znalazlem na torrys

0

Oki poszperałem w sieci i dało rade [green]
Poniżej kod, tak na szybko bez obsługi błędów.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, WinInet;

type
  TForm1 = class(TForm)
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    Label2: TLabel;
    Label3: TLabel;
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
  private
  public
  end;

var
  Form1: TForm1;
  Fconn: DWORD;
implementation

{$R *.dfm}

function connected: Boolean;
var Flags:DWORD;
begin
Flags:=INTERNET_CONNECTION_MODEM or INTERNET_CONNECTION_MODEM_BUSY;
Result:=InternetGetConnectedState(@Flags,0);
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
var
Res: DWORD;
begin
if connected then
 begin
  label2.Caption:='połączony'
 end else
 begin
  label2.Caption:='łączę';
  Res := InternetDial(Handle, 'PLAY', INTERNET_DIAL_UNATTENDED , @FConn, 0);
  Label3.Caption:=SysErrorMessage(Res);
 end;
end;

procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
if connected then
 begin
  label2.Caption:='rozłaczam';
  InternetHangUp(FConn, 0);
 end else
 begin
  label2.Caption:='rozłączony';
 end;
end;

end.

Łączy i rozłącza połączenie modemowe przez modem z PLAYa.
Pozdrawiam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1