API kullanımı hakkında

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Begin.End
Üye
Mesajlar: 45
Kayıt: 05 Nis 2007 11:50

API kullanımı hakkında

Mesaj gönderen Begin.End »

S.a arkadaslar ben programıma soyle bır ozellık eklemek ıstıyorum..

programım acıkken gorev yonetıcısınden kapatılmak ıstendıgınde
.... programı kapatılacak emınmısınız? seklınde bı uyarı vermek ıstıyorum..bunu apılerle yapacagım sanırım ama bu konu hakkında detaylı bılgıye sahıp degılım... bı kac gundur bu forumda ve dıger forumlarda aramama ragmen ıstedıgım bılgıyı bulamadım..yardımlarınızı beklıorum sımdıden tesekkurler.. Hayırlı ramazanlar..
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

Mesaj gönderen serkan »

görev yöneticisinden sonlandırıldığında uyarı veren br program varmıkii,siz yapmak istiyorsunuz?
Kullanıcı avatarı
Begin.End
Üye
Mesajlar: 45
Kayıt: 05 Nis 2007 11:50

Mesaj gönderen Begin.End »

serkan yazdı:görev yöneticisinden sonlandırıldığında uyarı veren br program varmıkii,siz yapmak istiyorsunuz?
Selamlar forumlardan ogrendıgım kadarıyla wındows mesajları yakalanarak yapılabılıyormus..benım yapmak ıstedıgımde bu zaten
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

Mesaj gönderen serkan »

görev yönetici işletim sistemi ile programın arasındaki iletişimi keserek görevi sonlandırıyor zaten (Kilitlenen bir programın görev yöneticisinden sonlandırılması için) işletim sistemi ile iletişimin kesileceği için mesajşları yakalamanda pek mümkün gözükmüyor...Yinede bir araştır bakalım..
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Görev yöneticisinden saklayabilirsin. Bu işini görürü mü ?

bkz.
viewtopic.php?t=8036&postdays=0&postord ... t=15#72234
Resim
Resim ....Resim
Kullanıcı avatarı
Begin.End
Üye
Mesajlar: 45
Kayıt: 05 Nis 2007 11:50

Mesaj gönderen Begin.End »

mrmarman yazdı:- Görev yöneticisinden saklayabilirsin. Bu işini görürü mü ?

bkz.
viewtopic.php?t=8036&postdays=0&postord ... t=15#72234

Hocam görev yöneticisinde görünmesini istiyorum..Çünkü herhangi bi sorun olduğunda ordan kapatılması gerekir..
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Bir sorun olduğunda oradan da kapatabileceğini sanmak bunu yapmaktan daha mı etkili tartışmaya açık. Sana başka bir çözüm önereyim...

- Programın kapatılamaz olsun. Görev Yöneticisinden gizle. Sadece programın kendi kendini kapatabilir olsun. Tabi önce projenin kendi erişim bilgisini bir INI dosyaya yazsın. Ondan sonra acil durumlarda kapatmak istediğinde -ki sanırım sık görülecek bir durum olmayacaktır, aksi ise projenin elden geçirilmesi lazım gelir bir sorun var demektir- ikinci bir proje ise bu INI dosyasından okuduğu erişim nosuyla projeni öldürsün... Fikir işe yarar bence...

- Ana programının OnCreate olayına şunu yaz...

Kod: Tümünü seç

  With TINIFile.Create( ExtractFilePath(Application.ExeName) + 'App.INI' ) do begin
    WriteInteger('PROJE', 'AppHandle', Application.Handle);
    Free;
  end;
- OnClose olayına da AppHandle değerini sıfır (0) yazan kodu yaz.

- Bu senin projenin handle'ini INI dosyasına kaydeder. Sonra da yukarda bildirdiğim şekilde programı Task Manager'den gizle. Bu kullanıcıların programını direkt bulup kapatmasını engeller.

- Sen bunu acil durumlarda kapatmak istediğinde ise ikinci bir ayrı proje yaz bulunsun. Bu proje ise INI dosyasından bu handle nosunu okuyup KillProcess yapsın. Şöyle :

Kod: Tümünü seç

Var
  AppID : dWord;
begin
  With TINIFile.Create( ExtractFilePath(Application.ExeName) + 'App.INI' ) do begin
    AppID := ReadInteger('PROJE', 'AppHandle', 0);
    Free;
  end;
  If (AppID <> 0) then begin
    KillProcess( AppId );
  end;
end;
- Tabi ondan sonra da INI'deki AppHandle değerini (0) yapsın.

Not : KillProcess için bkz. viewtopic.php?t=2178#10607
Resim
Resim ....Resim
Kullanıcı avatarı
Begin.End
Üye
Mesajlar: 45
Kayıt: 05 Nis 2007 11:50

Mesaj gönderen Begin.End »

Hocam cok saolun guzel dusunce gıbı...ama ben bıkac degısıklık yapıp ole denıyecemmm cok tesekkurler elınıze saglık
Cevapla