bir program ile diğer program ilişkisi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
CemErgun
Üye
Mesajlar: 91
Kayıt: 05 May 2009 11:31
Konum: antalya

bir program ile diğer program ilişkisi

Mesaj gönderen CemErgun »

selam arkadaşlar, ben bir program yapıyorum şuan fakat bir sorunum var bu program kapandığı anda (yani kill çekildiği anda) diğer programında kapanmasını istiyorum, var mı bi fikri olan?
procedure TForm1.FormCreate(Sender: TObject);
begin
halt;
end;
qamyoncu
Üye
Mesajlar: 266
Kayıt: 12 Tem 2008 04:30

Re: bir program ile diğer program ilişkisi

Mesaj gönderen qamyoncu »

Kod: Tümünü seç

procedure programkapa(programadi:string);
var
myhandle:Thandle;
begin
myhandle:=Findwindow(nil , pchar(programadi));
Sendmessage(Myhandle, WM_CLOSE , 0 , 0);
end;
+Önemli Not: programadi değişkenine kapatmak istediğin programın 'caption' bilgisini girmelisin. Örneğin google açık bir internet explorer'ın başlığı: 'Google - Windows Internet Explorer' dir. Bunu Windows Görev Yöneticisinden rahatlıkla görebilirsin.

+Kaynak: http://www.google.com.tr/search?hl=tr&q ... =&aq=f&oq=
+Yani: google amcaya bana 'delphi ile başka programı nası kapıcam' diye sormak yeterli :)
+Kolay Gelsin, bir de örnek veriyorum formuna bir buton ve edit ekleyip şu kodları onClick eventine yazabilirsin :wink: :

Kod: Tümünü seç

begin
programkapa(edit1.text);
end;
Batuhan TAŞDÖVEN
'Yükseldikçe küçülen bir uçurtma..'
Kullanıcı avatarı
CemErgun
Üye
Mesajlar: 91
Kayıt: 05 May 2009 11:31
Konum: antalya

Re: bir program ile diğer program ilişkisi

Mesaj gönderen CemErgun »

cevabın için teşekkürler fakat bunu bende biliyorum, yazımı tam anlayamadın sanırım neyse mühim değil, kill çektiğimiz zaman diyorum..
procedure TForm1.FormCreate(Sender: TObject);
begin
halt;
end;
qamyoncu
Üye
Mesajlar: 266
Kayıt: 12 Tem 2008 04:30

Re: bir program ile diğer program ilişkisi

Mesaj gönderen qamyoncu »

Kod: Tümünü seç

Uses tlhelp32;

Procedure TForm1.Button_GetProcListClick(Sender : TObject);
Var
ContinueLoop : BOOL;
FSnapshotHandle : THandle;
FProcessEntry32 : TProcessEntry32;

Begin
ListBox1.Items.Clear;

FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
While integer(ContinueLoop) <> 0 Do
Begin

ListBox1.Items.AddObject(ExtractFileName(FProcessEntry32.szExeFile), Tobject(FProcessEntry32.th32ProcessID));

ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
End;
CloseHandle(FSnapshotHandle);
End;

Procedure TForm1.Button_KillProcClick(Sender : TObject);
Var
Ret : BOOL;
ProcessID : integer;
ProcessHndle : THandle;
SelProcIndex : Integer;
Begin
SelProcIndex := ListBox1.ItemIndex;

If SelProcIndex < 0 Then exit;
Try
With ListBox1 Do
Begin
If MessageDlg('Do You Want To Terminate "' + ListBox1.Items[SelProcIndex] + '"?', mtConfirmation, [mbYes, mbNo], 0) = mrYes Then
Begin

ProcessID := LongInt(ListBox1.Items.Objects[SelProcIndex]);
ProcessHndle := OpenProcess(PROCESS_TERMINATE, BOOL(0), ProcessID);
Ret := TerminateProcess(ProcessHndle, 0);
If Integer(Ret) = 0 Then
MessageDlg('Can Not Terminate "' + ListBox1.Items[SelProcIndex] + '"', mtInformation, [mbOk], 0)
Else
ListBox1.Items.Delete(SelProcIndex);
End;
End;
Except
End;
End;
+ Sanırım biraz hammallık olacak. Aklıma bu geldi, cevap yazmışken yarım bırakmak istemedim, dediğinizi yanlış anlamışım özür diliyorum, kabul görünüz: :)
+Bu kod ile o an açık olan process'leri listeliyoruz. Timer ile, periyodik olarak istediğiniz programın kill edilip edilmediğini listboxta program exe'sinin var olup olmamasıyla kontrol edebilirsiniz. Eğer yoksa 2. projenizi de kill edebilirsiniz.:) Yani toplam 3 proje olucak. Daha iyi çözümler olacağına da inanıyorum..
+Kaynak: http://www.google.com.tr/search?hl=tr&q ... %3Dlang_tr :)
+Başarılar..
Batuhan TAŞDÖVEN
'Yükseldikçe küçülen bir uçurtma..'
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Re: bir program ile diğer program ilişkisi

Mesaj gönderen husonet »

programlar bir birleriyle bir çok şekilde haberleşebilirler

Bunlar Örn. Handle bunu threadlar kullanarak açık olan pencerenin handlına bakarsın handlı yoksa kendisinide öldürürsün.
Diğeri ise TCP IP ile haberleştirilirsin haberleşme kesilirse aynı mantık kendini Kill ettirirsin

Handle örnekleri sitede mevcut

Kolay Gelsin

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
CemErgun
Üye
Mesajlar: 91
Kayıt: 05 May 2009 11:31
Konum: antalya

Re: bir program ile diğer program ilişkisi

Mesaj gönderen CemErgun »

şimdi bi oyun var bu oyunun clientine güvenlik programı yapıyorum herşeyi tamam fakat benim programım killendiği anda onunda kapanması gerek onu anlatmaya calısıyorum


yorumlar için teşekkürler
procedure TForm1.FormCreate(Sender: TObject);
begin
halt;
end;
qamyoncu
Üye
Mesajlar: 266
Kayıt: 12 Tem 2008 04:30

Re: bir program ile diğer program ilişkisi

Mesaj gönderen qamyoncu »

+Üstteki yorumlar ile dediğinizi yapabilirsiniz.
+Kolay Gelsin..
Batuhan TAŞDÖVEN
'Yükseldikçe küçülen bir uçurtma..'
Sawyer
Üye
Mesajlar: 29
Kayıt: 05 May 2009 11:30

Re: bir program ile diğer program ilişkisi

Mesaj gönderen Sawyer »

arkadaşın dediğini anlamamışsınız.

bu programın koruduğu dosya onunla alakası olmayan bi dosya kendisi yazmadı yani proje kaynak kodlarıda yok oynama yapılamaz. Bu oyuna giriş dosyası zannedersem. Oyunu hile programlarından korumak adına bir güvenliik sistemi yazıyor. programdan tüm hile programlarını engellemiş sadece programın kendi güvenliği kalmış. Bu güvenlik programı killtask ile killendiği zaman oyunun programı açık kalıyor ve güvenlik falan kalmıyor. o yüzden bu programla 2 si yapışık ikizler gibi çalışması lazım demek istiyor :D
Kullanıcı avatarı
CemErgun
Üye
Mesajlar: 91
Kayıt: 05 May 2009 11:31
Konum: antalya

Re: bir program ile diğer program ilişkisi

Mesaj gönderen CemErgun »

evet sawyer saol aynen öyle
procedure TForm1.FormCreate(Sender: TObject);
begin
halt;
end;
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: bir program ile diğer program ilişkisi

Mesaj gönderen aslangeri »

2 yol önerebilirm.
1.si servis olarak programı hazırlaman servis sonlandığı zaman tekrar çalışacak şekilde ayarlarsan görevi sonlandırsalar bile terkrar başlayacaktır.
2.si programı bir kopyasını daha hazırlarsın. iki program birbirini ve korumak istediğin diğer programı korur. biri sonlanınca tekrar çalıştırırsın yada sonlandırırsın.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
CemErgun
Üye
Mesajlar: 91
Kayıt: 05 May 2009 11:31
Konum: antalya

Re: bir program ile diğer program ilişkisi

Mesaj gönderen CemErgun »

teşekkür ederim aslangeri fakat 1. dediğini anlayamadım 2. dediğinde ise

killtask('1.exe');
killtask('2.exe');

diye bir yordamın altına yazarsa ikiside anında kapanır ve yine gider...
procedure TForm1.FormCreate(Sender: TObject);
begin
halt;
end;
Cevapla