Ekran Görüntüsünün Alınmasını Engellemek hk.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
SAHAN33
Üye
Mesajlar: 36
Kayıt: 24 Eki 2006 04:34

Ekran Görüntüsünün Alınmasını Engellemek hk.

Mesaj gönderen SAHAN33 »

bir proje var ve bu projede ekran görüntüsünün alınması istenmiyor. Formun Onkey Press ve OnKeyDown olaylarına PrnScr tuşunun değeri olan 44 tuşa basşıldığında şunu yap diyoz ama işlem yapmıyor. Yani
if key=#44 Then
Begin
Showmessage('Ekran Görüntüsü Alınamaz');
End;

Satırları işlemiyor. Aynı işlemi

if key=Vk_(Ekran Tuşunun adı) Then
Begin
Showmessage('Ekran Görüntüsü Alınamaz');
End;

kodları çalışmıyor...Acaba neden ??
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

Selam.

Şu link yardımcı olabilir:
viewtopic.php?t=15007&highlight=kbdllhookstruct

Kolay gelsin...

(Not: Tüm harfleri büyük yazmak forumda biraz garip karşılanır)
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Hocam bunu engellemenin yolu yok. Zamanlayıcı ile bir başka program bunu çok kolay halledektir.

- Dilediğin pencerenin resmini alıp dilediğin resim formatında dosyalaması için bir program hemen yazabilirim istersen... Bilmem demek istediğimi ifade edebildim mi...

- Engellemek yerine espirili bir yaklaşımda bulunsan çok hoş olurdu. :wink:

- Şimdi aklıma geldi ve senin için minik bir çalışma hazırladım. Bu çalışmayı bir dene seveceksin.

Gelen mesaj şu olacak..
Resim

Clipboard'daki resme baktıklarında süprizle karşılaşılacak... :lol:
Resim

- USES kısmına ClipBrd eklemeyi unutma...

Kod: Tümünü seç

procedure TForm1.FormCreate(Sender: TObject);
begin
  KeyPreview := True;
end;

// Uses ClipBrd; yazmayı unutma...
Procedure SuprizYap();
Var
  Resim : TBitmap;
  Clip  : TClipBoard;
  Mesaj : String;
begin
  Mesaj := 'Ekran Görüntüsü Almak Yasaktır...!';
  Resim := TBitmap.Create;
  Resim.Width  := 1024;
  Resim.Height := 768;
  Resim.Canvas.Brush.Color := clBlue;
  Resim.Canvas.Font.Color  := clYellow;
  Resim.Canvas.Font.Name   := 'Times New Roman';
  Resim.Canvas.Font.Size   := 48;
  Resim.Canvas.TextOut( (Resim.Width-Resim.Canvas.TextWidth(Mesaj)) div 2 , (Resim.Height- Resim.Canvas.TextHeight(Mesaj)) div 2, Mesaj);
  Clip := TClipBoard.Create;
  Clip.Assign( Resim );
  Clip.Free;
  Resim.Free;
end;

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if Key = VK_SNAPSHOT then begin
     Key :=0;
     SuprizYap();
     ShowMessage( 'Programda Print Screen Tusu Kullanılamaz...');
  end;
end;
Resim
Resim ....Resim
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Hadi PrintScreen tuşunu devreden çıkardın hiç bir şey yapamazsa digital makina ile fotoğrafını çeker :lol:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Ne zaman "mümkün değildir" diyen görsem muhalif tavır alıp, programcılıkta mümkün değil yoktur deme isteği duyuyor, çoğunlukla da diyorum. :lol:

- Şimdi kendi savımı çürütmek için alternatif bir method buldum. Zaten eskiden DivXTurk projemde Web sayfasından mouse ile resim kopyala dediğinizde programıma almak üzere resimler için uyguladığım bir method idi. Buraya uygulamak zor olmadı.

- Aşağıdaki başlıktaki soruya cevap olarak yazdım. İnceleyip kullanın.

Ref : viewtopic.php?p=110368#110368
Resim
Resim ....Resim
SAHAN33
Üye
Mesajlar: 36
Kayıt: 24 Eki 2006 04:34

Mesaj gönderen SAHAN33 »

Ulu Coder arkadaşa öncelikle tşk ederim. verdiği link çok işe yaradı. Diper cevap yazan arkadaşlara da tşk ederim tabii. Benim için önemli olan bilgiayardan ekran görüntüsünün alınmaması idi. Diğer türlü eğer foto makınası ile görüntü alınacaksa en azından o benim sorumluluğumda olmaz. Ben üzerime düşeni yapmış olurum...

Tekrardan tşk ederim hepinize... 8)
sheak
Üye
Mesajlar: 19
Kayıt: 30 Ara 2006 01:39

Mesaj gönderen sheak »

valla o kdar screen programları varki o yuzden boşuna bence. ben mesela snagit kullanıyorum her şeyi cekiyyor cok sukur ama printscreende bence yapman gereken şey programın icerisinde kara bir resim ekle ve ona basılınca otomatik o resmi kopyalasın bunu flyvideo kullanıyordu. benden tavisye.
Cevapla