Çalışan Programı Kapatma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- emrahkaraarslan
- Üye
- Mesajlar: 243
- Kayıt: 21 Haz 2005 12:28
- Konum: Trabzon
Çalışan Programı Kapatma
Merhaba, bir program çalışıyor mesela emule bunu çalıştırma işlemini kodla yaptım, yalnız nasıl kapatma işlemini yapacağımı bulamadım, yani belli bir saatte kapatmak istiyorum, bunun için hangi kodu kullanabilirim bilgilendirirseniz sevinirim, teşekkürler.
Allah'ım bana değiştirebileceklerimi değiştirme değiştiremeyeceklerimi kabullenme ve aradaki farkı anlayabilme yeteneği ver
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Mrb; viewtopic.php?t=18465&highlight= bağlantısnı incele. Sana sadece WM_CLOSE mesajını o programa göndermek kalıyor. İyi çalışmalar.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
- emrahkaraarslan
- Üye
- Mesajlar: 243
- Kayıt: 21 Haz 2005 12:28
- Konum: Trabzon
- Emule'nin CLASS'ının adı #32770'dir. Bu sınıf sadece EMULE'ye özgü değildir. Başka programlar da vardır. Örneğin "Outlook Express"
- Benzer sınıf ismi olanlar içinden Emule'ninkini bulmak için aslında CLASSNAME'in yanında "Window Title"ını da bilmen lazım gerekir.
- EMULE'nin bir sürü çeşidi olmasından dolayı sabit bir pencere başlığı / ismi de yoktur.
- Ben de senin için hepsinin başlığında ortak olarak bulunacak kelime EMULE olacağına göre, bir kolaylık sağlayım deyip döngü içerisinde açık programların başlıklarında, içeriğinde emule olanları bulup kapat şeklinde bir kurgu hazırladım. Kendine göre çeşitli çözümler üretebilirsin.
- Unutuyordum, EMULE'nin ayarlarında "Kapatılırken Sor" olayını kapatman lazım. Uyarı veren pencere gelir. KillProcess de yapabiliriz ama sağlıklı olmaz. Download'ların vs. zarar görmesini istemeyiz
- Afiyet olsun... 
- Benzer sınıf ismi olanlar içinden Emule'ninkini bulmak için aslında CLASSNAME'in yanında "Window Title"ını da bilmen lazım gerekir.

- EMULE'nin bir sürü çeşidi olmasından dolayı sabit bir pencere başlığı / ismi de yoktur.

- Ben de senin için hepsinin başlığında ortak olarak bulunacak kelime EMULE olacağına göre, bir kolaylık sağlayım deyip döngü içerisinde açık programların başlıklarında, içeriğinde emule olanları bulup kapat şeklinde bir kurgu hazırladım. Kendine göre çeşitli çözümler üretebilirsin.

- Unutuyordum, EMULE'nin ayarlarında "Kapatılırken Sor" olayını kapatman lazım. Uyarı veren pencere gelir. KillProcess de yapabiliriz ama sağlıklı olmaz. Download'ların vs. zarar görmesini istemeyiz

Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
Var
hEmule : THandle;
Title,
ClassName : array[0..255] of char;
begin
hEmule := Application.Handle;
while hEmule > 0 do
begin
GetWindowText(hEmule, Title ,255);
GetClassName (hEmule, ClassName,255);
If (ClassName = '#32770') AND ( Pos('EMULE', UpperCase(Title) ) > 0 ) then begin
SendMessage(hEmule, WM_CLOSE, 0, 0);
end;
hEmule := GetnextWindow(hEmule, GW_HWNDNEXT);
end; // While
end;

- emrahkaraarslan
- Üye
- Mesajlar: 243
- Kayıt: 21 Haz 2005 12:28
- Konum: Trabzon
@mrmarman çok çok teşekkürler, elinize sağlık.
düzenleme: Bir şey daha sormak istiyorum. Peki ben aynı işlemi cfosspeed ve utorrent için nasıl yapabilirim, yani bunların class ları nedir, en önemlisi bunları herhangi bir program için nasıl öğrenebilirim.
düzenleme: Bir şey daha sormak istiyorum. Peki ben aynı işlemi cfosspeed ve utorrent için nasıl yapabilirim, yani bunların class ları nedir, en önemlisi bunları herhangi bir program için nasıl öğrenebilirim.
Allah'ım bana değiştirebileceklerimi değiştirme değiştiremeyeceklerimi kabullenme ve aradaki farkı anlayabilme yeteneği ver
- emrahkaraarslan
- Üye
- Mesajlar: 243
- Kayıt: 21 Haz 2005 12:28
- Konum: Trabzon