Touche de raccourci + notifyIcon

Résolu
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 - 7 avril 2005 à 01:02
cs_titwan Messages postés 23 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 31 août 2007 - 5 avril 2006 à 08:25
Bonjour, j'ai une application que j'ai reduit dans le systray.



j'aimerais savoir s'il est possible de réagir a une combinaison de
touche, alors que je n'ai qu'un NotifyIcon et un ContextMenu associé ...



Pendant que j'y suis, quelle est la meilleure facon de mettre une
application dans le systray, j'ai donc une form vide, avec seulement le
notifyicon et le contextmenustrip, dans les propriétés j'ai mis le
windowstate à minimized et le ShowInTaskBar à False, je veux que ca me
prenne le minimum de mémoire, c'est bon comme ca ?



Merci



Je bosse en .net 2, mais je pense pas que ca change grand chose.

<hr>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr

7 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
7 avril 2005 à 08:20
Salut,

En utilisant les méthodes des APIs : RegisterHotkey et UnregisterHotKey c'est faisable.
Je n'ai pas connaissance d'un équivalent existant dans le Framework .Net 1.1, et encore moins en 2.0 :-)

Cocoricoooooooo !!!!
coq
MVP Visual C#
3
sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 1
7 avril 2005 à 18:30
sinon il y a la methode du GetAsynchKeyState

ton application doit verifier en permanence l'etat du clavier, et des
qu'une condition est rempli, tu fait l'action que tu souhaite
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
7 avril 2005 à 20:42
Merci beaucoup coq :) j'ai opté pour ta solution car ca a l'air d'etre la meilleure ;)



Donc pour ceux que ca interesse :



/* ------- using HOTKEYs in a C# application -------



in form load :

bool success = RegisterHotKey(Handle,
100, KeyModifiers.Control | KeyModifiers.Shift,
Keys.J);



in form closing :

UnregisterHotKey(Handle, 100);





protected override void WndProc( ref Message m )

{

const int WM_HOTKEY = 0x0312;



switch(m.Msg)

{

case WM_HOTKEY:


MessageBox.Show("Hotkey pressed");

break;

}

base.WndProc(ref m );

}



------- using HOTKEYs in a C# application ------- */



[DllImport("user32.dll", SetLastError=true)]

public static extern bool
RegisterHotKey( IntPtr hWnd, // handle to
window

int
id,
// hot key identifier


KeyModifiers fsModifiers, // key-modifier options

Keys
vk //
virtual-key code

);



[DllImport("user32.dll", SetLastError=true)]

public static extern bool
UnregisterHotKey( IntPtr hWnd, // handle to
window

int
id // hot key identifier

);



[Flags()]

public enum KeyModifiers

{

None = 0,

Alt = 1,

Control = 2,

Shift = 4,

Windows = 8

}



c'est tout



j'ai trouvé les infos sur www.codeproject.com/csharp/popupkiller.asp (a
regarder avec le cache de google, car codeproject a l'air d'avoir des
problèmes


<hr>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
7 avril 2005 à 21:07
De rien :-)

Je pense que tu devrais sortir "const int WM_HOTKEY = 0x0312;" du WndProc et plutot la mettre en membre de la classe, ce n'est pas nécessaire de l'avoir locale à la fonction.
En plus vu le nombre de message que reçoit une appli, ça doit être méchant niveau perfs :-)

Cocoricoooooooo !!!!
coq
MVP Visual C#
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
7 avril 2005 à 21:44
Ce que j'ai montré c'est le code que j'ai trouvé sur le net, mais c'est
clair que ca doit pouvoir s'optimiser, bien sur en virant la constante
d'ici, et peut etre en supprimant le switch, en laissant un simple if




<hr>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
7 avril 2005 à 22:28
Ouep :-)

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
cs_titwan Messages postés 23 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 31 août 2007
5 avril 2006 à 08:25
super les gars continuez
0
Rejoignez-nous