delphide pencere kontrolü?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
incsoft

delphide pencere kontrolü?

Mesaj gönderen incsoft »

Delphide windows üzerinde açılan pencereleri kontrol ettirerek istemiş olduğum açılan pencereleri kapattırmak istiyorum.Örneğin Bilgisayarım penceresi açıldığında onu kapattırmak istiyorum.Acaba bu işlemi hangi kodla yapabilirim?

Bu işlemi TIMER a bağlayarak yapmak istiyorum.....

Şimdiden teşekkürler...
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

Google da : delphi findwindow example dedigimde

Kod: Tümünü seç

procedure TFrmAna.Timer1Timer(Sender: TObject);
var
  h:THandle;
begin
  h:=FindWindow(nil,'My Computer');
  if h <> 0 then PostMessage(h, WM_CLOSE, 0, 0);
end;
http://www.latiumsoftware.com/en/delphi/00034.php
ÜŞENME,ERTELEME,VAZGEÇME
incsoft

acaba timer la yapmak

Mesaj gönderen incsoft »

timer ile bu işlemi gerçekleştirmek makinayı yavaşlatırmı?
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

sadece bunu yapmak istiyorsanız yavaslatmaz
interval de makul bir degerde olursa 100 gibi bi sorun olmaz sanırım
ÜŞENME,ERTELEME,VAZGEÇME
incsoft

20 pencere filan

Mesaj gönderen incsoft »

Yaklaşık olarak 20 ya da 30 kadar pencereyi sorgulattıracağım...
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Selam.

- Mesajlarınızı inceliyordum, @gkimirti'nin cevapları geçerli araya girmek istemem ama dikkat edilmesi gereken bir konuyu eklemek istedim.

- Pencerelerin isimlerinin değişebilir tipte olup olmadığını kontrol edip öyle başlayın ya da kendinizin belirleyeceği pencere tiplerinden (Internet Explorer vs.) farklı olanların tümünü kapatarak da bu muhtemel durumu aşabilirsiniz.
Resim
Resim ....Resim
incsoft

tşk ve kitap önerisi

Mesaj gönderen incsoft »

Yardımlarını esirgemeyen arkadaşlara çok teşekkür ediyorum.Delphiye yeni başlayanlardanım.O yüzden dolayı ara sıra sizlere ihtiyacım olacak.Birde sizden bir kitap tavsiyesi bekliyorum.

Sayın Tansu TURKOGLU'nun kitabı elimde mevcut.Bu kitabın yeni başlayanlar için olmadığının farkına vardım.

Acaba hangi kitabı önerirsiniz..
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Ruhver Bareng'inin Kitabını almanı tafsiye ederim. Tabii piyasada bulabilirsen.

İyi Çalışmalar...

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ı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- İlgilendiğin kod örnekleri, biraz daha ileri düzeyde delphi gerektirdiğini lütfen unutmayın.

- Bunun ortasını yakalmış kaynak olarak gördüğüm Türkmen Yayınevinden İhsan KARAGÜLLE & Zeytin PALA'nın Delphi kitabını önerebilirim. Geçen bir kitapevinde incelerken buradaki benzer tipteki soruları düşündüm, verebileceğim kaynak kitap ismi aradım. Bu sorulara en yakın kitap bu diye değerlendiriyorum.

- @husonet'in bahsettiği kitabı da inceledim. Seçkin Yayınevinden çıkıyor. Bunu da tavsiye ederim.
Resim
Resim ....Resim
incsoft

acaba sizce bu mantiklimi?

Mesaj gönderen incsoft »

Göndermiş olduğunuz komutla Pencere Kontrollerini yaparak kapattırıyorum.

procedure TForm1.Timer1Timer(Sender: TObject);
var
h:THandle;
begin
h:=FindWindow(nil,'Bilgisayarım');
if h <> 0 then PostMessage(h, WM_CLOSE, 0,0 );
end;
end.

Farz edelim ki 50 adet pencere kontrolü yapacağız.Bu durumda aşağıdaki gibi yapmak sizce mantıklımı?

procedure TForm1.Timer1Timer(Sender: TObject);
var
h,hh,hhh,a,aa,aaa,b,bb:THandle;
begin
h:=FindWindow(nil,'Bilgisayarım');
hh:=FindWindow(nil,'Görüntü Özellikleri');
hhh:=FindWindow(nil,'Çalıştır');
a:=FindWindow(nil,'Internet Seçenekleri');
aa:=FindWindow(nil,'Kısayol Silinmesini Onayla');
aaa:=FindWindow(nil,'Dosya Silinmesini Onayla');
b:=FindWindow(nil,'Klasör Silmeyi Onayla');
bb:=FindWindow(nil,'Çok Sayıda Dosya Silmeyi Onayla');
if h <> 0 then PostMessage(h, WM_CLOSE, 0, 0);
if hh <> 0 then PostMessage(hh, WM_CLOSE, 0, 0);
if hhh <> 0 then PostMessage(hhh, WM_CLOSE, 0, 0);
if a <> 0 then PostMessage(a, WM_CLOSE, 0, 0);
if aa <> 0 then PostMessage(aa, WM_CLOSE, 0, 0);
if aaa <> 0 then PostMessage(aaa, WM_CLOSE, 0, 0);
if b <> 0 then PostMessage(b, WM_CLOSE, 0, 0);
if bb <> 0 then PostMessage(bb, WM_CLOSE, 0, 0);
end;

Acaba tek bir tanımlamayla bu işlemi gerçekleştiremeyiz mi?

procedure TForm1.Timer1Timer(Sender: TObject);
var
h:THandle;
begin
h:=FindWindow(nil,'Bilgisayarım', 'Çalıştır', 'Görüntü Özellikleri');
if h <> 0 then PostMessage(h, WM_CLOSE, 0, 0);
end;

Bu yöntemle maalesef işlemi gerçekleştiremedim.

Şimdiden teşekkürler………
incsoft

Mesaj gönderen incsoft »

Program sorunsuz bir şekilde çalışıyor.Fakat bir sorun var.

"Güvenlik Uyarısı " isimli pencere sadece pronografik sitelerde gelmiyor.Örneğin kullanıcı http://www.mynet.com adresine girip E-MAIL ine bakmak için Kullanıcı Adı nı ve Şifresini yazıp Güvenli Giriş butonuna tıkladığında Güvenlik Uyarısı isimli bir pencere geliyor.Kullanıcı burda EVET Demediği sürece E-MAIL'ine giriş yapamıyor.Buda programın bir açığı.

Aklıma şöyle bir şey geldi.Programda çifte sorgulama yapma.Program hem Internet Explorer ın sayfa başlığını hemde açılan pencereyi sorgulayacak.Örneğin:

Pencere ismi Güvenlik Uyarısı ve Internet Explorer ın Pencere Ismıde Mynet Mymail ise timer1.enabled:=false;

Böyle bir şey mümkünmü acaba?
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

incsoft özel msj'ında sorduğu sorunun aynısın çekmiş.
Program sorunsuz bir şekilde çalışıyor.Fakat bir sorun var.

"Güvenlik Uyarısı " isimli pencere sadece pronografik sitelerde gelmiyor.Örneğin kullanıcı http://www.mynet.com adresine girip E-MAIL ine bakmak için Kullanıcı Adı nı ve Şifresini yazıp Güvenli Giriş butonuna tıkladığında Güvenlik Uyarısı isimli bir pencere geliyor.Kullanıcı burda EVET Demediği sürece E-MAIL'ine giriş yapamıyor.Buda programın bir açığı.

Aklıma şöyle bir şey geldi.Programda çifte sorgulama yapma.Program hem Internet Explorer ın sayfa başlığını hemde açılan pencereyi sorgulayacak.Örneğin:

Pencere ismi Güvenlik Uyarısı ve Internet Explorer ın Pencere Ismıde Mynet Mymail ise timer1.enabled:=false;

Böyle bir şey mümkünmü acaba?
Lütfen Delphi ile ilgili soruları Forum'a atalım. Ve Forum kurallarını okuyalım.

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ı
mussimsek
Admin
Mesajlar: 7601
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

incsoft nerdeyse 1,5 ay oldu hala özel mesaj yazıyorsun. Ayıp oluyor ama :roll: Bu seferlik görmemiş oluyum.

Kolay gelsin.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Acaba tek bir tanımlamayla bu işlemi gerçekleştiremeyiz mi?

procedure TForm1.Timer1Timer(Sender: TObject);
var
h:THandle;
begin
h:=FindWindow(nil,'Bilgisayarım', 'Çalıştır', 'Görüntü Özellikleri');
if h <> 0 then PostMessage(h, WM_CLOSE, 0, 0);
end;

Bu yöntemle maalesef işlemi gerçekleştiremedim.
- Bu sorunun cevabı fonksiyonel procedure yazmaya dayalıdır... Ne demek bu şimdi diyeceksin anlatayım...

Tekrar tekrar yaptığın işlemleri basit bir procedure yazıp, kodda sadeleştirmeye gideceksin... Şöyle ki...

Kod: Tümünü seç

Procedure FormuKapat(Baslik:String);
Var
  h : THandle;
begin
  h := FindWindow( nil, PChar(Baslik));
  if h <> 0 then PostMessage(h, WM_CLOSE, 0, 0);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  FormuKapat('Bilgisayarım');
  FormuKapat('Görüntü Özellikleri');
  FormuKapat('Çalıştır');
  FormuKapat('Internet Seçenekleri');
  FormuKapat('Dosya Silmeyi Onayla');
  FormuKapat('Klasör Silmeyi Onayla');
  FormuKapat('Çok Sayıda Dosya Silmeyi Onayla');
end;
- Güvenlik uyarısı sayfasında da benzer kontrolleri yapacaksın...
Resim
Resim ....Resim
incsoft

Mesaj gönderen incsoft »

Kusura Bakmayın Arkadaşlar........
Cevapla