Bilgisayar Ekranındaki Değişiklilerin Kontrolü

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Hakem50
Üye
Mesajlar: 8
Kayıt: 05 Kas 2013 09:44

Bilgisayar Ekranındaki Değişiklilerin Kontrolü

Mesaj gönderen Hakem50 »

Merhaba Arkadaşlar,
İsteğim Biraz Fantastik Olacak Ama Eğer ki Bu durum Mümkünse, Lütfen Yardımcı Olun.
Çalıştığım Yerde Kullandığımız Bir Server Var. Server Bazen Hata Veriyor ve Biz Bu Hatayı Çok Geç Fark ediyoruz. Çünkü Server la Hiç İşimiz Olmuyor Arka Tarafta Kendi Kendine Çalışıyor. Hata Verdiği Zaman ise In ve Out Kutucuğu Var Onlar Yeşil Renk İken Kırmızı Renge Dönüşüyor Tek Hata Belirtisi Bu. Benim İsteğim, Yapacağımız Proğramın Ekrandaki Belirlediğimiz Pixel İçindeki Renk Değişikliğini Belirli Aralıklarla Kontrol Etmesi Renk Değişikliği Varsa Sesli Uyarı Vermesi. Teşekkürler
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Bilgisayar Ekranındaki Değişiklilerin Kontrolü

Mesaj gönderen SimaWB »

Öncelikle ekranın belirli bir bölümünün resmini alan bir fonksiyon yazmalısınız. Örnek:

Kod: Tümünü seç

procedure EkranYakala(aBmp: TBitMap; var Rec: TRect);
var
  Cnv: TCanvas;
begin
  Cnv := TCanvas.Create;
  Cnv.Handle := GetWindowDC(GetDesktopWindow);
  try
    aBmp.Width := Rec.Right;
    aBmp.Height := Rec.Bottom;
    aBmp.Canvas.CopyRect(Rec, Cnv, Rec);
  finally
    ReleaseDC(0, Cnv.Handle);
    Cnv.Free;
  end;
end;
Yukarıdaki prosedür sayesinde ekranın istediğin alanının bitmap resmini alabilirsiniz. Yada bir Image bileşeninde gösterebilirsiniz. Mesela;

Kod: Tümünü seç

var
  Alan: TRect;
begin
  Alan := Rect(100, 150, 200, 250);
  EkranYakala(Image1.Picture.Bitmap, Alan);
Yukarıdaki kodla ekranın Left,Top,Right,Bottom noktalarının koordinatları verilen kısımlar Bitmap'e çevrilip Image1'de gösterilir.
Bu şekilde belirli sürelerle alınan 2 resim karşılaştırılabilir.

2 resmi karşılaştırmak için ise; bu 2 resmi TMemoryStream içerisine atıp CompareMem ile karşılaştırdığında farklı olup olmadıklarını anlarsın. Bu kısmı araştırmak da sana kalsın :wink:
There's no place like 127.0.0.1
Hakem50
Üye
Mesajlar: 8
Kayıt: 05 Kas 2013 09:44

Re: Bilgisayar Ekranındaki Değişiklilerin Kontrolü

Mesaj gönderen Hakem50 »

İlginiz İçin Çok Teşekkür Ederim. Hemen Çalışmalara Başlıyorum. SAğolun.
Hakem50
Üye
Mesajlar: 8
Kayıt: 05 Kas 2013 09:44

Re: Bilgisayar Ekranındaki Değişiklilerin Kontrolü

Mesaj gönderen Hakem50 »

Ben Delphi İle Biraz Haşir Neşirim Ama C ile İlgili Hiç Bilgim Yok. TMemoryStream ve CompareMem Delphi İlemi Alakalı Acaba? :roll:
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Bilgisayar Ekranındaki Değişiklilerin Kontrolü

Mesaj gönderen SimaWB »

Size onları linkleriyle beraber gönderdim ki bilgi sahibi olun diye. Açılan sayfalar zaten Delphi'nin yardım sayfaları, bunu anlayamadınız mı? Yada Delphi'de TMemoryStream ve CompareMem yazıp birini seçtikten sonra F1'e basınca onlar hakkında yardım çıkmıyor mu? En azından internette Delphi+TMemoryStream veya Delphi+CompareMem yazıp arama yapmayı da mı denemediniz???
There's no place like 127.0.0.1
Hakem50
Üye
Mesajlar: 8
Kayıt: 05 Kas 2013 09:44

Re: Bilgisayar Ekranındaki Değişiklilerin Kontrolü

Mesaj gönderen Hakem50 »

Arkadaşım, Çok Şey Yapmam Gerekiyormuş Ama Yapmamışım Sen Benim Kusuruma Bakma Ya... Benim de Süper İngilizcem Var Zaten Delphinin de Kurduyum Altından Girip Üstünden Çıkıyorum ya Buna Rağmen Anlayamamışım Bu Yazılanları.
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Bilgisayar Ekranındaki Değişiklilerin Kontrolü

Mesaj gönderen thelvaci »

Hakem50 yazdı:Arkadaşım, Çok Şey Yapmam Gerekiyormuş Ama Yapmamışım Sen Benim Kusuruma Bakma Ya... Benim de Süper İngilizcem Var Zaten Delphinin de Kurduyum Altından Girip Üstünden Çıkıyorum ya Buna Rağmen Anlayamamışım Bu Yazılanları.
Hem suçlu hem güçlü denilir sizin gibiler için.! SimaWB size birer link vermiş bu linklere bakarak göremiyor musunuz ilgili sınıfların hangi dile ait olduğunu. Ayrıca ingilizce bilmiyor olmanız, yada Delphi'de uzman olmamanız SimaWB'nin suçu mu ? Armutu yeterince pişirmiş arkadaşımız, sadece ağzınızı açmanız lazım, onu da bir başkası mı yapsın..?

Biraz saygılı olmalısınız, yardımcı olmaya gayret edenlere, insanların şevkini kırmayın.!
Cevapla