Jump to content

Recommended Posts

Posted (edited)

Boas noites,

Eu quero fazer o seguinte:

Clicar F1,F2,F3,F4, em qualquer janela, programa, em qqer lado, quero o programa a funcionar em background, e executar uma acção quando detecta essas teclas (a acção ja esta feita e a funcionar(testada através de um botão normal), eu li que a KeyUp, funciona mas eu não tenho a certeza sobre como implementar isso ou se o KeyUp serve apenas para um form do próprio programa.

Muito Obrigado 😄 Espero que me possam ajudar

Edited by Primordius
Posted (edited)

podes criar um singleton para registar as forms que esta' 'a escuta e executar o que queres, depois fazes um override 'a funcao ProcessCmdKey e envias a key para o singleton com os delegates


public event  MyCmdKeyPressed CommandKeyPressed;

form1()//construtor
{
//...
 cRegister.Instance.RegisterCmdEvent(CommandKeyPressed);
}

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
 switch (keyData)
 {
  case Keys.F4:
  //etc...
  if(CommandKeyPressed!=null)
  CommandKeyPressed(this,KeyData);
  }
}

depois e' fazeres algo assim para as outras forms e verificares os eventos

Edited by pikax

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.