Desabilitar o PrintScreen no meu programa.
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
Desde já agradeço
[]s
Fellipe
Titanius
Curtidas 0
Respostas
Marco Salles
23/04/2006
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]
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;
GOSTEI 0
Titanius
23/04/2006
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
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
GOSTEI 0
Marco Salles
23/04/2006
eu entendi isto :
Agora no segundo post voce diz isto:
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
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
GOSTEI 0
Ipc$
23/04/2006
Registre a tecla no sistema:
var i:Byte; begin for i:= 0 to 7 do RegisterHotKey(Handle, i+1, i, VK_SNAPSHOT); end;
GOSTEI 0
Titanius
23/04/2006
[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
[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
GOSTEI 0
Marco Salles
23/04/2006
Amigo ipc$
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..
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..
GOSTEI 0
Ipc$
23/04/2006
[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.
GOSTEI 0
Marco Salles
23/04/2006
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...
GOSTEI 0
Titanius
23/04/2006
[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?
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?
GOSTEI 0
Ipc$
23/04/2006
[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.
[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.
GOSTEI 0
Titanius
23/04/2006
olá ipc... seguinte, foi la e registrei a tecla, só isso quer dizer que ele nao irá funcionar mais?
[]s
[]s
GOSTEI 0
Ipc$
23/04/2006
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.
GOSTEI 0
Titanius
23/04/2006
Opa.. valeu ipc.. era isso mesmo!
[]s
[]s
GOSTEI 0
Martins
23/04/2006
Imagino q ao encerrar o program será chamado.
Seria mais ou menos isso?
// UnRegisterHotkey( Handle, ID_Key ) ; var i:Byte; begin for i:= 0 to 7 do UnRegisterHotKey(Handle, i+1); end;
Seria mais ou menos isso?
GOSTEI 0
Ipc$
23/04/2006
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.GOSTEI 0