delphide pencere kontrolü?
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
delphide pencere kontrolü?
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...
Bu işlemi TIMER a bağlayarak yapmak istiyorum.....
Şimdiden teşekkürler...
Google da : delphi findwindow example dedigimde
http://www.latiumsoftware.com/en/delphi/00034.php
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;
ÜŞENME,ERTELEME,VAZGEÇME
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.
- 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.
tşk ve kitap önerisi
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..
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..
Ruhver Bareng'inin Kitabını almanı tafsiye ederim. Tabii piyasada bulabilirsen.
İyi Çalışmalar...
İ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.
- İ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.
- 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.
acaba sizce bu mantiklimi?
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………
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………
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?
"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?
incsoft özel msj'ında sorduğu sorunun aynısın çekmiş.
Lütfen Delphi ile ilgili soruları Forum'a atalım. Ve Forum kurallarını okuyalım.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?
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
- Bu sorunun cevabı fonksiyonel procedure yazmaya dayalıdır... Ne demek bu şimdi diyeceksin anlatayım...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.
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;