Setelah kemarin saya mencoba membuat postingan tentang cara membuat simple SSH sekarang saya akan coba berexperiment membuat simple P-LINK dengan delphi,untuk plink sendiri mungkin bisa teman-teman mencari referensinya lewat mesin pencari google pengertiannya dan fungsi nya apa plink tersebut.Menurut saya pribadi plink tersebut kegunaanya adalah sama halnya dengan bitvise.
Yang Harus Disiapkan
Sebelum membuat project simple plink ini tentu ada beberapa aplikasi yang harus disiapkan yang pertama tentunya adalah aplikasi plink sendiri yang mana bisa didapatkan di situsnya kemudian yang kedua adalah proxifier yang mana disini saya akan coba dengan menggunakan proxifier yang versi install maka proxifier harus di install terlebih dahulu,apabila ingin menggunakan proxifier yang portable bisa juga digunakan dan siapkan versi yang portable tersebut.
Langkah Pembuatan
Baiklah setelah kedua aplikasi tersebut diatas sudah siap langsung ke cara membuatnya dimana setelah dibuka aplikasi delphinya coba tambahkan beberapa komponen pada form yang baru tersebut disini saya coba menambahkan komponen-komponen:
1. 2 buah Groupbox.
2. 6 buah Label.
3. 6 buah Edit.
4. 3 buah Button.
5. 1 buah Checkbox.
6. 1 buah Memo.
7. 1 buah DosCommand.
Kemudian ada beberapa komponen yang saya coba ganti captionnya pada object inspector dan tentu saya coba posisikan komponen-komponen tersebut agar kelihatan rapi,dimana disini saya coba posisikan komponen-komponen tersebut seperti dibawah ini
![]() |
Penambahan Komponen dan Pengaturan Tataletak |
Penambahan Unit
Setelah komponen-komponen diletakan sedemikian rupa lanjut untuk ke pengkodingannya sebelum ke pengkodingan dalam membuat project ini ada beberapa unit yang harus ditambahkan pada uses dimana untuk menambahkan unit pada uses bisa dipelajari lagi dipostingan saya sebelumnya bagi yang belum tahu cara menambahkan unit.Unit yang ditambahkan tersebut adalah:
IniFiles, Registry, ShellAPI, TLHelp32.
Pengkodingan
Sebelum ke pengkodingan pada project kita buat suatu folder untuk menambahkan aplikasi plink dan profile proxifier,tetapi apabila menggunakan proxifier yang portable maka aplikasi proxifier portable tersebut bisa ditambahkan di folder ini.
![]() |
Penambahan Aplikasi Plink Dan Profile Proxifier |
Kode Formcreate
Pada project ini (Simple P-Link) yang mana dibuat agar supaya bisa menyimpan suatu config sehingga pada saat project ini dibuka kembali apabila mau digunakan maka tidak perlu lagi kita mensetting ulang untuk mengisi configuration yang diperlukan plink tersebut dan disini untuk cara membuat suatu config bisa dibaca di postingan cara membuat config save dan load.Untuk itu kode buat formcreate nya adalah seperti dibawah ini:
procedure TForm1.FormCreate(Sender: TObject);
begin
config := TIniFile.Create(ExtractFilePath(Application.ExeName)+'Plink\Config.ini');
try
Edit1.Text := config.ReadString('CONFIG', 'Host', Edit1.Text);
Edit2.Text := config.ReadString('CONFIG', 'Port', Edit2.Text);
Edit3.Text := config.ReadString('CONFIG', 'User', Edit3.Text);
Edit4.Text := config.ReadString('CONFIG', 'Pass', Edit4.Text);
CheckBox1.Checked := config.ReadBool('CONFIG', 'Uproxy', CheckBox1.Checked);
Edit5.Text := config.ReadString('CONFIG', 'Lproxy', Edit5.Text);
Edit6.Text := config.ReadString('CONFIG', 'Lport', Edit6.Text);
finally
config.Free;
end;
end;
Kode Save Button
Kemudian untuk kode Save button yang mana disini button1 sebagai save dan difungsikan untuk menyimpan configuration daripada sebuah account ssh yang kita punya dengan mengklik 2 X button1 buat procedurenya sebagai berikut
procedure TForm1.Button1Click(Sender: TObject);
begin
config := TIniFile.Create(ExtractFilePath(Application.ExeName)+'Plink\Config.ini');
try
config.WriteString('CONFIG', 'Host', Edit1.Text);
config.WriteString('CONFIG', 'Port', Edit2.Text);
config.WriteString('CONFIG', 'User', Edit3.Text);
config.WriteString('CONFIG', 'Pass', Edit4.Text);
config.WriteBool('CONFIG', 'Uproxy', CheckBox1.Checked);
config.WriteString('CONFIG', 'Lproxy', Edit5.Text);
config.WriteString('CONFIG', 'Lport', Edit6.Text);
finally
config.Free;
end;
end;
Kode Start Button
Tentunya disini sebelum membuat kode atau procedure untuk button start yang mana disini button2 yang difungsikan sebagai start bagi yang belum menginstall komponen DosCommand bisa dibaca terlebih dahulu dipostingan cara menginstall DosCommand.Apabila komponen DosCommand sudah siap coba klik 2 X button2 tersebut untuk membuat procedurenya yang mana procedurenya adalah sebagai berikut
procedure TForm1.Button2Click(Sender: TObject);
var
reg: TRegistry;
path: String;
pMethode: Integer;
host, port, user, pass, pHost, pPort: String;
rPlink: String;
pf, profPF: String;
begin
host := Edit1.Text;
port := Edit2.Text;
user := Edit3.Text;
pass := Edit4.Text;
pHost := Edit5.Text;
pPort := Edit6.Text;
if CheckBox1.Checked then
pMethode := 3
else begin
pMethode := 0;
end;
reg := TRegistry.Create;
try
with reg do begin
RootKey := HKEY_CURRENT_USER;
path := '\Software\SimonTatham\PuTTY\Sessions\'+ host;
if not KeyExists(path) then
begin
OpenKey(path, True);
WriteInteger('Present', 1);
WriteString('HostName', host);
WriteInteger('PortNumber', StrToInt(port));
WriteInteger('PingInterval', 0);
WriteInteger('PingIntervalSecs', 10);
WriteInteger('TCPNoDelay', 1);
WriteInteger('TCPKeepalives', 1);
WriteInteger('ProxyMethod', pMethode);
WriteString('ProxyHost', pHost);
WriteInteger('ProxyPort', StrToInt(pPort));
WriteString('Cipher', 'blowfish');
end
else begin
OpenKey(path, False);
WriteInteger('Present', 1);
WriteString('HostName', host);
WriteInteger('PortNumber', StrToInt(port));
WriteInteger('PingInterval', 0);
WriteInteger('PingIntervalSecs', 10);
WriteInteger('TCPNoDelay', 1);
WriteInteger('TCPKeepalives', 1);
WriteInteger('ProxyMethod', pMethode);
WriteString('ProxyHost', pHost);
WriteInteger('ProxyPort', StrToInt(pPort));
WriteString('Cipher', 'blowfish');
end;
end;
finally
reg.CloseKey;
reg.Free;
end;
rPlink := ExtractFilePath(Application.ExeName)+'Plink\Plink.exe -v -N -C -D 1080 '+
user+'@'+host+' -P '+port+' -pw '+pass;
DosCommand1.CommandLine := rPlink;
DosCommand1.Execute;
DosCommand1.OutputLines := Memo1.Lines;
pf := 'C:\Program Files (x86)\Proxifier\Proxifier.exe';
profPF := 'Plink\Plink.ppx silent-load';
ShellExecute(Handle, 'open', PAnsiChar(pf), PAnsiChar(profPF), nil, SW_HIDE);
end;
Membuat Killtask
Selanjutnya sebelum ke pengkodingan button Stop buat terlebih dahulu function Killtask dan procedure CleanUpSystemTray yang mana untuk cara membuatnya bisa baca di postingan close aplikasi dengan killtask.
Kode Stop Button
Terakhir dengan mengklik 2 X Button3 yang mana disini difungsikan untuk button stop yaitu untuk menghentikan aplikasi plink dan proxifier dan procedurenya adalah sebagai berikut
procedure TForm1.Button3Click(Sender: TObject);
var
reg: TRegistry;
path, host: String;
begin
host := Edit1.Text;
reg := TRegistry.Create;
try
with reg do begin
RootKey := HKEY_CURRENT_USER;
path := '\Software\SimonTatham\PuTTY\Sessions\'+ host;
if not KeyExists(path) then
DeleteKey(path);
end;
finally
reg.CloseKey;
reg.Free;
end;
DosCommand1.Stop;
Memo1.Clear;
KillTask('Proxifier.exe');
CleanUpSystemTray;
end;
Test Project
Setelah semua kode diatas siap coba klik tombol Run atau pada keyboard tekan F9 untuk tes project.
![]() |
Tes Project Simple P-Link |
Demikianlah untuk postingan kali ini tentang cara membuat simple p-link semoga bermanfa'at dan semoga bisa dikembangkan lagi oleh teman-teman,Nantikan lagi experiment dari saya berikutnya.
Oke Salam Blogger and Happy Koding.
No comments:
Post a Comment