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.
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
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;
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;
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.
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
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.