J'utilise le code ci-dessous pour capturer les raccourcis clavier ctrl + alt + Q, ce qui fonctionne parfaitement. Mais, je veux l'utiliser dans une application en arrière-plan. Puisque mon application n'a aucun formulaire, je veux utiliser le même code dans un fichier de classe.Capture des raccourcis clavier à partir d'un thread à l'aide de C#;
Je suis confus, parce que je ne peux pas écrire un gestionnaire d'événement [keypressed] dans le fichier de classe. Au lieu de cela, je veux utiliser la touche dans le fil.
Aidez-nous s'il vous plaît.
public DialogResult Result;
KeyboardHook hook = new KeyboardHook();
public Form1()
{
InitializeComponent();
// register the event that is fired after the key press.
hook.KeyPressed += new EventHandler<KeyPressedEventArgs>(hook_KeyPressed);
// register the control + alt + F12 combination as hot key.
hook.RegisterHotKey((ModifierKeys)2 | (ModifierKeys)1, Keys.Q);
}
void hook_KeyPressed(object sender, KeyPressedEventArgs e)
{
Result = MessageBox.Show("Are you sure, you want to log off?","Log off"
,MessageBoxButtons.YesNo
,MessageBoxIcon.Warning);
if (Result == DialogResult.Yes)
{
}
else
{
}
}
D'accord, je vais le faire en utilisant un formulaire. Mais est-il possible de rendre le formulaire invisible, il ne devrait même pas être dans la barre des tâches. Possible? Merci. – Anuya
Oui, possible. Je capture le raccourci pendant que mon application est invisible et l'amène devant. –
J'utilise ce qui suit, mais je reçois toujours le formulaire. private void InitializeComponent() { this.SuspendLayout(); // // Formulaire 1 // this.Visible = false; this.ShowInTaskbar = false; } – Anuya