Aplikasi remote shutdown ini adalah pengembangan dari aplikasi chatting client-server yang dibuat dengan Delphi juga. Banyak artikel-artikel, blog-blog maupun forum diskusi delphi yang membahas aplikasi client server tersebut. Cara kerjanya sangat sederhana sekali, dimana terdapat dua buah aplikasi yaitu aplikasi client dan aplikasi server. Aplikasi server dijalankan pada komputer yang akan di kendalikan atau komputer yang akan di remote, sedangkan aplikasi client dijalankan oleh user di sebuah komputer pengendali. Prinsip kerjanya sangat sederhana, layaknya aplikasi chatting sederhana, aplikasi client mengirimkan sebuah text, yang nantinya akan diterima oleh aplikasi server sebagai sebuah “string”, kemudian akan diolah menjadi sebuah perintah baru, yaitu men-shutdown komputer server. Sederhana sekali bukan???
Mungkin sedikit keterangan di atas dapat memberikan gambaran tentang cara kerja aplikasi yang sangat sederhana dan jauh dari sempurna ini, khususnya bagi para pemula seperti saya. Karena saya juga masih dalam tahap belajar dan sangat membutuhkan masukan dari teman-teman dan para master Delphi.
Ok, Langsung meluncur ke pembuatan programnya, persiapannya cukup seadanya saja: Komputer atau laptop yang terinstal Boland Delphi (Versinya terserah anda, saya menggunakan Borland Delphi 6), Niat dan kemauan belajar, apalagi ya?? รจ Secangkir kopi + Rokok atau snack juga boleh (opsional) hehehehe ……..
Remote Shutdown
Aplikasi ini terbagi menjadi 2, yaitu aplikasi client dan aplikasi server. Aplikasi Client adalah aplikasi pengendali atau pengontrol, sedangkan aplikasi server adalah aplikasi yang di jalankan pada komputer yang ingin di kendalikan (komputer yang ingin di shutdown)
Source Code Program Client :
Berikut ini adalah source code lengkap untuk program client:
unit RSClient; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, WinXP, ScktComp; type TForm1 = class(TForm) GroupBox1: TGroupBox; Edit1: TEdit; Button1: TButton; StaticText1: TStaticText; StaticText2: TStaticText; Button2: TButton; Button3: TButton; WinXP1: TWinXP; ClientSocket1: TClientSocket; procedure Button3Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); procedure ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button3Click(Sender: TObject); begin application.Terminate; // keluar program end; procedure TForm1.Button1Click(Sender: TObject); begin clientsocket1.Host:=edit1.Text; // alamat ip server clientsocket1.Active:=true; // mengaktifkan / membuka socket sisi client clientsocket1.Port:=1880; // menggunakan port 1880 end; procedure TForm1.FormCreate(Sender: TObject); begin button2.Enabled:=false; // saat aplikasi mulai dijalankan button shutdown di disable end; procedure TForm1.ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); //saat soket client error begin button2.Enabled:=false; //disable button shutdown showmessage('Error On Socket'); //menampilkan pesan error end; procedure TForm1.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); //saat sudah terhubung ke server begin statictext2.Caption:='Connected to Server'; //keterangan bahwa sudah terhubung ke server button2.Enabled:=true; // button shutdown di aktifkan end; procedure TForm1.Button2Click(Sender: TObject); begin //button shutdown if (clientsocket1.Socket.Connected) then //saat soket terhubung maka clientsocket1.Socket.SendText('shutdown'); // button 2 mengirim string ke server end; end.Program Server nya :
unit RSServer; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ScktComp, WinXP; type TForm1 = class(TForm) WinXP1: TWinXP; ServerSocket1: TServerSocket; StaticText1: TStaticText; Edit1: TEdit; procedure FormCreate(Sender: TObject); procedure ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); procedure Edit1Change(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin serversocket1.Open; serversocket1.Port:=1880; end; procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); begin edit1.Text:=socket.ReceiveText; end; procedure TForm1.Edit1Change(Sender: TObject); begin if edit1.Text='shutdown' then begin winexec('shutdown -s -t 0 -f',sw_normal); end; end; end.
Aplikasi ini layaknya sebuah pisau bermata dua, tergantung dari si-pengguna. Dapat digunakan sebagai aplikasi yang bersifat postif dan membantu dan dapat juga berfungsi sebagai aplikasi perusak dan merugikan. Tulisan ini hanya sebagai pembelajaran semata, hal-hal yang tidak diinginkan (perusakan) dll, bukan menjadi tanggung jawab penulis.
Program Lengkap+Source Code bisa di download Di Sini
0 komentar:
Posting Komentar