Screen Capture yapýnca pc neden kitleniyor

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
cagri_85
Üye
Mesajlar: 95
Kayıt: 16 Oca 2004 11:10

Screen Capture yapýnca pc neden kitleniyor

Mesaj gönderen cagri_85 »

SLMs....

delphide basit bir capture yapýnca kýsa süreli bilgisayarý kitliyor bu normal bir durum mu? Fakat profesyonel olarak hazýrlanmýþ programlar var örneðin bilgisayarda ne yapýlýp yapýlmadýðý tespit eden yazýlýmlar örneðin; net nanny,contentprotect,CYBERsitter gibi bu programlarýn screen capture özelliði var çok gizli çalýþýyorlar ve bilgisayarý hiç kitlemiyor capture yapýnca bunun sebebi nedir? Acaba farklý bir program ile yazýldýðý için mi?örneðin c/c++ gibi....

Saygýlar,
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Mesaj gönderen vedatkaba »

Hatayı dillerde değilde yazdığınız kodlarda sizteminizde aramak en doğru yol bence.kodlarınızı görelim bakalım ona göre bir şey diyelim.kolay gelsin.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
Kullanıcı avatarı
cagri_85
Üye
Mesajlar: 95
Kayıt: 16 Oca 2004 11:10

Mesaj gönderen cagri_85 »

vedatkaba yazdı:Hatayý dillerde deðilde yazdýðýnýz kodlarda sizteminizde aramak en doðru yol bence.kodlarýnýzý görelim bakalým ona göre bir þey diyelim.kolay gelsin.
kod ile bir alakasý olduðunu hiç sanmýyorum kardeþim mesela düþün formda sadece bir buton var ve butona basýnca capture kodunu iþletiyorum sadece baþka hiçi biþi yok sonra tam capture yaparken kýsa süreli bilgisayar kitleniyor ama ço kýsa 1-2 sn gibi..... :roll:
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Bilgisayar mı kilitleniyor? Nasıl birşey yapıyorsun ki? Benim capture'larda öyle bir sorun çıkmadı. Capture kodunu gönderirsen incelenebilir.

Bu dil ile alakalı bir sorun değil. Kodlamanda bir hatan var veya donanımında bir sorun olabilir.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Bu kodda ne var bilmeden nasıl bilelim ki, müneccim de değiliz :? Kodunu ve sakıncası yoksa unit.pas ve unit.dfm nin text halini mesaja eklersen daha çok yardımcı olacağımızdan emin olabilirsin :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
cagri_85
Üye
Mesajlar: 95
Kayıt: 16 Oca 2004 11:10

screen capture+kod

Mesaj gönderen cagri_85 »

Kod: Tümünü seç

procedure TForm1.FormCreate(Sender: TObject);
var
   DCDesk: HDC;
begin
   DCDesk:=GetWindowDC(GetDesktopWindow);
   BitBlt(Image1.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,DCDesk, 0, 0,SRCCOPY);
   ReleaseDC(GetDesktopWindow, DCDesk);
end;
+ image bileþeni kullanýyorum
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Mesaj gönderen vedatkaba »

Kod: Tümünü seç

var width, height : word;
    desktop : HDC;
begin
  width := Screen.Width;
  height := Screen.Height;
  desktop := GetWindowDC(GetDesktopWindow);
  Image1.Picture.Bitmap.Width := width;
  Image1.Picture.Bitmap.Height := height;
  BitBlt( Image1.Picture.Bitmap.Canvas.Handle, 0, 0,
          width, height, desktop, 0, 0, SRCCOPY );
end;


Kodunda yanlışlık yok muhtemelen ekranda bir problem var gibi tam emin değilim ama yukarıdaki kodla da denersen sonuca göre bakarız.birde ekranın çözünürlüğünü düşür öle dene fark olacakmı.kolay gelsin.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Öncelikle Capture olayını OnCreate den formun OnShow una almanı tavsiye ederim. Burada hata vermemesine rağmen form create edilirken diğer nesneler create edilmediğinden bir bekleme ve gecikmeye sebep olabilir
Ya da bir button la programı çalıştırdıktan sonra kontrollu olarak yapmanı tavsiye edebilirim.. sorun çözülmezse donanımsal yada sistemdeki bir programdan kaynaklanıyor olabilir.. :?:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
metinkorkmaz
Üye
Mesajlar: 46
Kayıt: 25 May 2005 09:08
Konum: izmir

Mesaj gönderen metinkorkmaz »

Bunu kaldır:
ReleaseDC(GetDesktopWindow, DCDesk);

Desktop un DC sini sen mi yarattın ki onu serbest bırakıyorsun :)
DCDesk bir handle dır, yani oluşturulan DC lerin (device context) hangisi oldugunu kullanılacak fonksiyonlarda seçmek için kullanılır. DC yi sen yarattıysan, sen bırakırsın. Yok dışarıdan ödünç aldıysan hiç karışmazsın.


Bu alttaki iki satır yeterli gelir:
DCDesk:=GetWindowDC(GetDesktopWindow);
BitBlt(Image1.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,DCDesk, 0, 0,SRCCOPY);
Kullanıcı avatarı
cagri_85
Üye
Mesajlar: 95
Kayıt: 16 Oca 2004 11:10

capture

Mesaj gönderen cagri_85 »

hepinize teþekkür ederim. :D
Cevapla