Şimdiki uygulamamızda iki adet proje geliştirerek “Client” uygulamasından
“Server” uygulamasını yöneteceğiz. Aynı mantıkla daha değişik kodlar
kullanarak projeyi geliştirebilirsiniz.
Formunuza bir adet ComboBox, bir adet Label ve bir adet IdTcpServer kontrolü
yerleştirerek aşağıdaki kod bloğunu da “Unit” pencerenize ekleyiniz.
Cd kapağını açıp kapatmak için “uses” satırına “MMSYSTEM” kütüphanesini
eklemeyi unutmayınız.
Kod:
procedure TForm1.IdTCPServer1Connect(AThread: TIdPeerThread);
begin
AThread.Connection.WriteLn('Bağlantı Sağlandı');
StatusBar1.Panels[0].Text:='Komut Bekleniyor';
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
IdTCPServer1.DefaultPort:=20000;
IdTCPServer1.Active:=true;
end;
procedureTForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
mesaj:AnsiString;
i:Integer;
ad:Array[0..5] of PAnsiChar;
elips:HRGN;
begin
mesaj:=AThread.Connection.ReadLn;//portu oku
if mesaj='notepad' Then
begin
WinExec('c:\winnt\notepad.exe',SW_SHOW);//çalıştır
AThread.Connection.WriteLn('Şu An Server da Nete Pad Çalışıyor');
StatusBar1.Panels[1].Text:='En Son Çalıştır Komutu Geldi';
end
else if mesaj='cdac' Then
begin
mciSendString('set cdaudio door open',nil,0,0);//kapağı aç
AThread.Connection.WriteLn('Cd Kapağı Açıldı');
StatusBar1.Panels[1].Text:='En Son Cd Kağpağını Aç Komutu Geldi';
end
else if mesaj='cdkapat' Then
begin
mciSendString('set cdaudio door closed',nil,0,0);//cd yi kapat
AThread.Connection.WriteLn('Cd Kapağı Kapatıldı');
StatusBar1.Panels[1].Text:='En Son Cd Kğpağını Kapat Komutu Geldi';
end
else if mesaj='ekran' Then
begin
SendMessage(Application.Handle,WM_SYSCOMMAND,SC_SCREENSAVE,0);
AThread.Connection.WriteLn('Ekran Koruyucu Çalıştırıldı');
StatusBar1.Panels[1].Text:='En Son Ekran Koruyucuyu Çalıştır Komutu Geldi';
end
else if mesaj='sil' Then
begin
DeleteFile('c:\nihat.txt');
AThread.Connection.WriteLn('Dosya Silindi');
StatusBar1.Panels[1].Text:='En Son Dosya Sil Komutu Geldi';
end
else if mesaj='kopyala' Then
begin
for i:=0 to 5 do //altı kere kopyala
begin
StrPCopy(ad[0],PCHar(IntToStr(i)));//yeni ismler
CopyFile('c:\nihat.txt',pcHAR('c:\nihat'+ad[0]+'.txt'),FALSE);//6 dosya oluştur
//Kendiliğinden çoğalan virüs dosyaları bu kod ile oluşturulmaktadır.
end;
AThread.Connection.WriteLn('Dosya Kopyalandı');
StatusBar1.Panels[1].Text:='En Son Dosya Kopyala Komutu Geldi';
end
else if mesaj='elips' Then
begin
elips:=CreateEllipticRgn(0,0,Form1.Width,Form1.Height);
SetWindowRgn(Form1.Handle,elips,true);
AThread.Connection.WriteLn('Form Elips Şeklinde');
StatusBar1.Panels[1].Text:='En Son Elips Form Komutu Geldi';
end
else if mesaj='comboac' Then
begin
SendMessage(ComboBox1.Handle,CB_SHOWDROPDOWN,200,0);
AThread.Connection.WriteLn('ComboBox Açıldı');
StatusBar1.Panels[1].Text:='En Son ComboBox ı Aç Komutu Geldi';
end
else if mesaj='kapat' Then
begin
ExitWindows(12,ewx_logoff);
AThread.Connection.WriteLn('Kapanıyor');
StatusBar1.Panels[1].Text:='En Son Kapat Komutu Geldi';
End
else
begin
ShowMessage(mesaj);
AThread.Connection.WriteLn('Mesaj Alındı');
StatusBar1.Panels[1].Text:='Mesaj Geldi';
end;
end;