GARANTIR DESCONTO

Fórum Desabilitar o PrintScreen no meu programa. #319784

23/04/2006

0

Olá amigos, meu cliente - super paranoíco - quer que eu desabilite toda forma de copiar no meu sistema, já consegui bloquear o CTRL+C, mas o PrintScreen não... teria como eu fazer isso? Como seria?


Desde já agradeço

[]s
Fellipe


Titanius

Titanius

Responder

Posts

23/04/2006

Marco Salles

ola amigo titanius..

Algo similar ja fora discutido aqui , mais precisamente em :

http://forum.devmedia.com.br/viewtopic.php?t=75750

Utilize o evento [b:cef3755605]OnKeyUp[/b:cef3755605] do formulário e sua propriedade [b:cef3755605]KeyPreview[/b:cef3755605] em [b:cef3755605]true[/b:cef3755605] e limpe a area de transferencia

Não esquecer também de declarar a [b:cef3755605]Uses Clipbrd[/b:cef3755605]

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if Key = 44   Then
    Clipboard.AsText:=´´;
end;



Responder

Gostei + 0

23/04/2006

Titanius

Fala Marco blz?

Seguinte, o que eu queria, é bloquear o Print Screen, no computador, indepndentemente se estiver ou não no meu programa, ou seja, enquanto meu programa estiver rodando, o print screen não funcionaria...



[]s


Responder

Gostei + 0

24/04/2006

Marco Salles

eu entendi isto :

quer que eu desabilite toda forma de copiar[b:057d0547b7] no meu sistema[/b:057d0547b7],


Agora no segundo post voce diz isto:

é bloquear o Print Screen, no computador, indepndentemente se estiver ou não no meu programa,


contrariando completamente o primeiro post... :cry: :cry: :cry: :cry:

De Fato , isto ja não é nen paranoia e não faz nen sentido...Não faz sentido porque se presume a priori que se tem alguns dados confidenciais , estes estão no aplicativo e não Fora dele

[b:057d0547b7]Mas por gentileza , voce consegui ou sabe de uma tecnica no Minimo interessante que é Inibir o CNTR+C ate mesmo fora do seu aplicativo , enquanto este estiver rodando.. [/b:057d0547b7]Poderia compartilhar esta tecnica com a comunidade , que a partir desta se poderia expandia para a tecla PrintScren

Voce faria esta gentileza...

Obrigado


Responder

Gostei + 0

24/04/2006

Ipc$

Registre a tecla no sistema:
var i:Byte;
begin
  for i:= 0 to 7 do
    RegisterHotKey(Handle, i+1, i, VK_SNAPSHOT);
end;



Responder

Gostei + 0

24/04/2006

Titanius

[quote:3b372057aa=´Marco Salles´]eu entendi isto :

[b:3b372057aa]Mas por gentileza , voce consegui ou sabe de uma tecnica no Minimo interessante que é Inibir o CNTR+C ate mesmo fora do seu aplicativo , enquanto este estiver rodando.. [/b:3b372057aa]Poderia compartilhar esta tecnica com a comunidade , que a partir desta se poderia expandia para a tecla PrintScren

Voce faria esta gentileza...

Obrigado[/quote:3b372057aa]

Sobre o Ctrl+C, apenas bloqueie no meu aplicativo, usando os DBWares do JEDI, que tem a opção de não deixar copiar... :D somente isso..


Obrigado a todos.

[]s


Responder

Gostei + 0

24/04/2006

Marco Salles

Amigo ipc$

Registre a tecla no sistema:Código: var i:Byte; begin for i:= 0 to 7 do RegisterHotKey(Handle, i+1, i, VK_SNAPSHOT); end;


Poderia dar mais detalhe , de como e aonde se usa esse codigo..
especificamente para esta tecla PrintScren...Esta mei no ara para mim , desconhecia esta tecnica

Obrigado..

Independente disso titanius , ainda esta de pe o meu pedido sobre a tecnica do CNTR+C .. Obrigado..


Responder

Gostei + 0

24/04/2006

Ipc$

[quote:c61d226510=´Marco Salles´]Poderia dar mais detalhe , de como e aonde se usa esse codigo.. [/quote:c61d226510]Bom, pode usar desse jeito e colocar no onCreate do Form. O [b:c61d226510]for[/b:c61d226510] é para evitar a combinação das teclas Ctrl Alt e Shift.


Responder

Gostei + 0

24/04/2006

Marco Salles

Bom, pode usar desse jeito e colocar no onCreate do Form. O for é para evitar a combinação das teclas Ctrl Alt e Shift.


entendido amigo.. So queria mais detalhe em como expandir o modelo para outras tecas.. Quem é VK_SNAPSHOT , com saber isto ???? e o que que Ctrl Alt e Shift tem a ver com o for ????

Dei uma procurada no Help do delph sobre RegisterHotKey e não encontrei nada que pudesse me esclarecer mais sobre o assunto

Obrigado...


Responder

Gostei + 0

24/04/2006

Titanius

[quote:16dc11a8bb=´Marco Salles´]Amigo ipc$
Independente disso titanius , ainda esta de pe o meu pedido sobre a tecnica do CNTR+C .. Obrigado..[/quote:16dc11a8bb]

Olá Marco,

Quanto a técnica, não sei bem direito não... lá no Control do JEDI, tem um Options, que você marca True ou False, pra Copiar, Colar e etc... com certeza deve ter algo por dentro do componente que faz este bloqueio, como eu não sei nada de componente, e tentei olhar pra você... mas vixi... eh coisa pra caramba... como não sei nada de programacao de componentes ficou muito mais dificil pra mim.

[]s


p.s.: Percebi que você é de Muriaé! conterrâneo... trabalha onde?


Responder

Gostei + 0

24/04/2006

Ipc$

[quote:c1ff86da85=´Marco Salles´]So queria mais detalhe em como expandir o modelo para outras tecas.. [/quote:c1ff86da85] É só colocar o código da tecla do teclado ao invés de VK_SNAPSHOT.
[quote:c1ff86da85=´Marco Salles´]Quem é VK_SNAPSHOT , com saber isto ???? [/quote:c1ff86da85]É a tecla Print Screen; é só procurar em Virtual keys.
[quote:c1ff86da85=´Marco Salles´]e o que que Ctrl Alt e Shift tem a ver com o for ???? [/quote:c1ff86da85]O terceiro parâmetro é Ctrl Alt Shift (2 1 4); então o [b:c1ff86da85]for[/b:c1ff86da85] de 0 a 7 pega todas as combinações.


Responder

Gostei + 0

24/04/2006

Titanius

olá ipc... seguinte, foi la e registrei a tecla, só isso quer dizer que ele nao irá funcionar mais?


[]s


Responder

Gostei + 0

24/04/2006

Ipc$

olá ipc... seguinte, foi la e registrei a tecla, só isso quer dizer que ele nao irá funcionar mais?
É + isso. Quando vc registra uma tecla e ela for pressionada, o Windows envia uma msg do tipo WM_HotKey para a aplicação que a registrou e não faz mais nada.
Por ex, se vc registrar a tecla 65(´A´ ou ´a´), abrir o bloco de notas e digitar ´A´ ou ´a´, a letra não irá aparecer.


Responder

Gostei + 0

24/04/2006

Titanius

Opa.. valeu ipc.. era isso mesmo!


[]s


Responder

Gostei + 0

24/04/2006

Martins

Imagino q ao encerrar o program será chamado.


// UnRegisterHotkey( Handle, ID_Key ) ;

var i:Byte; 
begin 
for i:= 0 to 7 do 
  UnRegisterHotKey(Handle, i+1); 
end; 



Seria mais ou menos isso?


Responder

Gostei + 0

24/04/2006

Ipc$

Imagino q ao encerrar o program será chamado.
Como boa prática de programação sim; mas o próprio encerramento da aplicação faz com que o Windows não mande mais a msg WM_HotKey pq a thread que a registrou já finalizou.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar