kali Ini Saya Mau Berbagi Tips Kembali seputar Delphi 7 yaitu Cara Membuat Dialer MDMA Mobile Data Monitor Aplication Terbaru 2015 sebelum saya lanjutkan silahkan baca juga postingan sebelumnya yaitu Cara Download Video Youtube Tanpa Software ok mdma disini adalah sebuah tools pengganti aplikasi modem saya yakin anda pasti sudah tahu tentang maksud postingan ini , harap jadi catatan tutorial buat mdma ini akan dipecah ke dalam beberapa postingan untuk memudahkan anda dalam mempelajarinya contoh mdma yang akan dibuat ini adalah kita akan mengambil beberapa fungsi dari mmda x final karya agan soebish seperti dibawah ini:
Perhatikan gambar diatas itu adalah satu bagiannya yang akan paling banyak saya bahas , jadi nanti kita akan menambahkan atau nanti anda bisa menambahkan parameter apn, type, profile, ip hunter, reconnect, auto route, default gateway, ip header compression, disable netbios, dns tunnel, upgrade qos dan lain lainnya yang paling umum yang sering digunakan , dan saya yakin anda pun tidak akan memperhatikan beberapa parameter yang sudah ada pada mmda saat ini dan postingan disini mari kita akan ambil beberapa settingan pentingnya saja yang biasa admin gunakan juga, mari kita langsung praktek saja, untuk melanjutkan tutorial ini silahkan aktifkan delphi 7 anda.
1. Langkah pertama tambahkan dulu komponen: Button atau BitBtn (4) , ComboBox (1), Timer (3), edit (1), checkbox (8), Status Bar (1), RichEdit (1), Memo (1), XpManifest (1), Bevel (1), Doscommand (1)
Semua komponen tersebut tidak akan semua di bahas pada tutorial kali ini tetapi anda pasang dulu saja semuanya karena sewaktu waktu akan dibuthukan untuk kelanjutannya.
Semua komponen tersebut tidak akan semua di bahas pada tutorial kali ini tetapi anda pasang dulu saja semuanya karena sewaktu waktu akan dibuthukan untuk kelanjutannya.
2. Langkah yang kedua silahkan tambahkan uses Registry, Menus, WinSock, Ras, untk uses ras anda bisa menggunakan konsep shellapi dengan memanggil rasdial.exe
3. Langkah yang ketiga lalu tambahkan kode dibawah tepat dibawah { Private declarations }:
dialparams: TRasDialParams;
hras: THRasConn;
status : Boolean;
4.Langkah yang keempat tambahkan array dan fungsinya tepat dibawah implementation {$R *.DFM}
Function GetIPAddress():String;
type
pu_long = ^u_long;
var
varTWSAData : TWSAData;
varPHostEnt : PHostEnt;
varTInAddr : TInAddr;
namebuf : Array[0..255] of char;
begin
If WSAStartup($101,varTWSAData) <> 0 Then
Result := 'No. IP Address'
Else Begin
gethostname(namebuf,sizeof(namebuf));
varPHostEnt := gethostbyname(namebuf);
varTInAddr.S_addr := u_long(pu_long(varPHostEnt^.h_addr_list^)^);
Result := inet_ntoa(varTInAddr);
End;
WSACleanup;
end;
function StatusString(state: TRasConnState; error: Longint): String;
var
c: Array[0..100] of Char;
s: String;
begin
if error <> 0 then begin
RasGetErrorString(error, c, 100);
Result := c;
end else begin
s := '';
case State of
RASCS_OpenPort:
s := 'Opening port';
RASCS_PortOpened:
s := 'Port opened';
RASCS_ConnectDevice:
s := 'Connecting device';
RASCS_DeviceConnected:
s := 'Device connected';
RASCS_AllDevicesConnected:
s := 'All devices connected';
RASCS_Authenticate:
s := 'Authenticating';
RASCS_AuthNotify:
s := 'Authentication: notify';
RASCS_AuthRetry:
s := 'Authentication: retry';
RASCS_AuthCallback:
s := 'Authentication: callback';
RASCS_AuthChangePassword:
s := 'Authentication: change password';
RASCS_AuthProject:
s := 'Authentication: projecting';
RASCS_AuthLinkSpeed:
s := 'Authentication: link speed';
RASCS_AuthAck:
s := 'Authentication acknowledged';
RASCS_ReAuthenticate:
s := ' Reauthenticating';
RASCS_Authenticated:
s := 'Authenticated. Logging on network';
RASCS_PrepareForCallback:
s := 'Preparing for callback';
RASCS_WaitForModemReset:
s := 'Waiting for modem reset';
RASCS_WaitForCallback:
s := 'Waiting for callback';
RASCS_Projected:
s := 'Projected';
RASCS_StartAuthentication:
s := 'Authenticating';
RASCS_CallbackComplete:
s := 'Callback complete';
RASCS_LogonNetwork:
s := 'Logging on network';
RASCS_Interactive:
s := 'Interactive';
RASCS_RetryAuthentication:
s := 'Retry Authentication';
RASCS_CallbackSetByCaller:
s := 'Callback set by caller';
RASCS_PasswordExpired:
s := 'Password expired';
RASCS_Connected:
s := 'Connected';
RASCS_Disconnected:
s := 'Disconnected';
end;
Result := s;
end;
end;
procedure TForm1.IPHunter;
var ListIP : TStringList;
i : Integer;
curIP : string;
begin
curIP := GetIpAddress;
ListIP := TStringList.Create;
ListIP.Text := Edit1.Text;
ListIP.Text := StringReplace(ListIP.Text,';',#13#10,[rfReplaceAll]);
for i:=0 to ListIP.Count - 1 do begin
if Pos(ListIP[i],curIP) <> 0 then begin
status := True;
RichEdit1.Lines.Add('IP: '+curip+ ' (OK)');
Exit;
end;
end;
if not status then
RichEdit1.lines.Add('IP: '+curip);
Button1.Click;
Form1.Timer1.Enabled:=True;
end;
procedure RasCallback(msg: Integer; state: TRasConnState;
error: Longint); stdcall
begin
Form1.StatusBar1.Panels[1].Text := statusstring(state, error);
if strcomp(pchar(statusstring(state, error)), 'Connected')= 0 then begin
Form1.timer2.enabled:=true;
end;
if Pos('Connected',Form1.StatusBar1.Panels[1].Text)<> 0 then begin
if Form1.CheckBox1.Checked=True then begin
Sleep(1000);
Form1.IPhunter;
end
end;
end;
5. Langkah kelima Klik Button 1 lalu masukan kode:
var r: integer;
c: Array[0..100] of Char;
begin
if Button1.Caption='Dial' then begin
Button1.Caption:='Dialing...';
FillChar(dialparams, SizeOf(TRasDialParams), 0);
with dialparams do
begin
dwSize := Sizeof(TRasDialParams);
StrPCopy(szEntryName, ComboBox1.Items[ComboBox1.ItemIndex]);
end;
hRas := 0;
r := RasDial(nil,
nil,
dialparams,
0,
@RasCallback,
hRas);
Button4.Click;
if r <> 0 then begin
RasGetErrorString(r, c, 100);
StatusBar1.Panels[1].Text:= c;
end;
end else begin
if hRas = 0 then
exit;
if RasHangUp(hRas) <> 0 then
begin
MessageDlg('Error : Cannot hangup connection.', mtCustom,[mbOK] ,0);
end;
end;
6. Langkah yang keenam lalu Klik Button2 oh, iya button 2 sampai 4 anda harus hide show:
var bufsize: Longint;
numEntries: Longint;
entries: Array[1..12] of TRasEntryName;
x: Integer;
begin
entries[1].dwSize := SizeOf(TRasEntryName);
bufsize := SizeOf(TRasEntryName) * 12;
if RasEnumEntries(nil, nil, @entries[1], bufsize, numEntries) = 0 then
begin
if numEntries > 0 then
begin
for x := 1 to numEntries do
ComboBox1.Items.Add(entries[x].szEntryName);
ComboBox1.ItemIndex := 0;
end;
end
else
MessageDlg('Error : Cannot retrieve entry names', mtCustom,[mbOK] ,0);
end;
7. Langkah yang ketujuh klik button3 lalu tambahkan kode:
var fp: LongBool;
r: Longint;
c: Array[0..100] of Char;
begin
if ComboBox1.itemindex=-1 then
exit;
FillChar(dialparams, SizeOf(TRasDialParams), 0);
with dialparams do
begin
dwSize := Sizeof(TRasDialParams);
StrPCopy(szEntryName, ComboBox1.Items[ComboBox1.ItemIndex]);
end;
r := RasGetEntryDialParams(nil, dialparams, fp);
if r = 0 then
with dialparams do
begin
if fp then
end
else
begin
RasGetErrorString(r, c, 100);
MessageDlg(('Error : ' + c), mtCustom,[mbOK] ,0);
end;
end;
8. Langkah yang kedelapan klik Button4 lalu tambahkan kode:
with dialparams do
begin
dwSize := Sizeof(TRasDialParams);
StrPCopy(szEntryName, ComboBox1.Items[ComboBox1.ItemIndex]);
StrPCopy(szpassword, '');
RasSetEntryDialParams(nil, dialparams, True);
end;
end;
9. Langkah yang kesembilan lalu klik timer 1 dan tambahkan kode:
if (pos('Connected',StatusBar1.Panels[1].Text)<>0) or (pos('Not connected',StatusBar1.Panels[1].Text)<>0) then
begin
Button1.Click;
Timer1.Enabled:=False;
end;
10. Langkah yang kesepuluh lalu klik timer2 dan tambahkan kode:
procedure TForm1.Timer2Timer(Sender: TObject);
var bufsize: Longint;
numEntries: Longint;
x: Integer;
entries: Array[1..100] of TRasConn;
stat: TRasConnStatus;
ipeh : String;
begin
ipeh := GetIPAddress;
entries[1].dwSize := SizeOf(TRasConn);
bufsize := SizeOf(TRasConn) * 100;
FillChar(stat, Sizeof(TRasConnStatus), 0);
stat.dwSize := Sizeof(TRasConnStatus);
if RasEnumConnections(@entries[1], bufsize, numEntries) = 0 then begin
if numEntries > 0 then begin
for x := 1 to numEntries do
with Form1, entries[x] do
begin
hras := hrasconn;
RasGetConnectStatus(hras, stat);
StatusBar1.Panels[1].Text := StatusString(stat.rasconnstate, stat.dwError) ;
Button1.Caption:='Hang up';
ComboBox1.Enabled:=False;
if CheckBox1.Checked = False then
begin
RichEdit1.Text := 'IP: '+ipeh;
end;
end;
end else begin
timer2.enabled:=false;
StatusBar1.Panels[1].Text :='Not connected';
Button1.Caption:='Dial';
ComboBox1.enabled:=true;
end;
end else
Messagedlg ('Error : Cannot retrieve connection details ', mtCustom,[mbOK] ,0);
end;
11. Langkah yang kesebelas klik checkbox1 lalu tambahkan kode:
if CheckBox1.Checked then
Edit1.Enabled := True
else Edit1.Enabled := False;
12. Langkah Yang kedua belas klik form1 lalu tambahkan kode dibawah ini perhatikan tulisannya;
procedure TForm1.FormCreate(Sender: TObject);
begin
hras:=0;
Button2.click;
Button3.click;
end;
13. Langkah Terakhir silahkan build dan gambar dibawah ini adalah contoh yang sudah dimodifikasi tampilannya atau sudah dipindahkan posisinya dan untuk komponennya masih menggunakan yang diatas yang sudah saya sebutkan.
Untuk Contoh Source Code Delphi 7 jadinya bisa anda download DISINI contoh source code jadinya tampilannya sudah diatur seperti diatas, tapi perhatikan yang saya kasih tanda anak panah ditutorial selanjutnya kita akan menambahkan listing programnnya untuk bagian bagian tersebut, oh iya untuk contoh paling paling sederhana untuk dialer yang bukan buatan saya bisa anda coba download juga DISINI untuk sebagai pelajaran karena saya bagikan bentuk listing codingnya sangat mudah dan simple sekali dan bisa anda pelajari juga.
Ya dan hanya Itu saja informasi seputar Cara Membuat Dialer MDMA Mobile Data Monitor Aplication Terbaru 2015 semoga bermanfaat dan membantu terima kasih banyak yah atas kunjungannya jangan kapok buat mampir lagi,, he he
Baca Juga Yank... Download Barba Tunnel Monitor Tools TCP UDP Forwarding Terbaru 2015
Baca Juga Yank... Download Barba Tunnel Monitor Tools TCP UDP Forwarding Terbaru 2015