Page 1 sur 1
[RESOLU] Raccourci clavier sur Fenêtre Masquée
Publié : jeu. 06/sept./2012 12:29
par microdevweb
Bonjour,
Je développe actuellement un petit soft de gestion de temps de développement. Je rend donc quant on ferme la fenêtre invisible et ajoute une icône dans la zone Systray. J'aimerais pouvoir créer un raccourci clavier (quant la fenêtre et invisible du type F8 ou autre) pour
ré-ouvrir le programme (rendre à nouveau la fenêtre visible). Cela ne me semble pas possible avec la gestion des évènements classiques et malgré une recherche sur google je n'ai pas vraiment trouvé l'aide d'un Api qui conviendrait (je ne suis pas très fort en Anglais évidement)
Merci d'avance
Re: Raccourci clavier sur Fenêtre Masquée
Publié : jeu. 06/sept./2012 13:11
par Backup
relis toi , j'ai rien compris !
Je rend donc quant on ferme la fenêtre invisible et ajoute une icône dans la zone Systray.
???
J'aimerais pouvoir créer un raccourci clavier (quant la fenêtre et invisible du type F8 ou autre)
???
de plus si tu avais un squelette de Code , ça serai un plus

Re: Raccourci clavier sur Fenêtre Masquée
Publié : jeu. 06/sept./2012 13:57
par microdevweb
Je pensais pourtant être clair.
Quant l'utilisateur ferme le programme (ce dernier tourne en arrière pour calculer le temps)
Il peut quitter réellement le programme avec un click droit et le Menu popup et rend la fenêtre à nouveau visible avec un click gauche sur l'icone du programme.
Code : Tout sélectionner
Case #PB_Event_SysTray
If EventType()=#PB_EventType_LeftClick
HideWindow(#Window_Main,0)
EndIf
If EventType()=#PB_EventType_RightClick
DisplayPopupMenu(#MENU_POPUP,WindowID(#Window_Main))
EndIf
J'aimerais créer un raccourcis clavier pour cette partie de code
Code : Tout sélectionner
Case #PB_Event_SysTray
If EventType()=#PB_EventType_LeftClick
HideWindow(#Window_Main,0)
EndIf
Re: Raccourci clavier sur Fenêtre Masquée
Publié : jeu. 06/sept./2012 14:37
par Backup
t'as pas essayé ça :
Code : Tout sélectionner
AddKeyboardShortcut(#Fenetre, #PB_Shortcut_Space, 8) ; ici l'event 8 sera generé par l'apuis sur la touche Espace
If EventType()=#PB_EventType_LeftClick or EventMenu()= 8 ; <--- ici on test si click gauche OU si l'event-menu est egal a 8 c'est notre raccourcis ...
Re: Raccourci clavier sur Fenêtre Masquée
Publié : jeu. 06/sept./2012 14:50
par microdevweb
Si j'ai essayé, mais comme la fenêtre et Invisible. Cela ne marque pas.
Re: Raccourci clavier sur Fenêtre Masquée
Publié : jeu. 06/sept./2012 15:04
par falsam
je n'ai pas documenté mais je pense que c'est suffisamment explicite. (Window uniquement)
Touche F8 pour afficher ou pas la fenêtre.
Double-clic souris sur l'icone en systray pour afficher la fenêtre.
Clic droit sur sur l'icone en systray pour un menu contextuel.
la touche F8 est détectée dans un thread.
Code : Tout sélectionner
Enumeration
#Mainform
#MenuPopUp
EndEnumeration
Global MainformStatus.b
Procedure ShowHideWindow(*Value)
Repeat
If GetAsyncKeyState_(#VK_F8) & $1
If MainformStatus = #False
HideWindow(#MainForm, #False)
MainformStatus = #True
Else
HideWindow(#Mainform, #True)
MainformStatus = #False
EndIf
EndIf
ForEver
EndProcedure
OpenWindow(#MainForm, 100, 150, 300, 100, "SysTray Test", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
CreatePopupMenu(#MenuPopUp)
MenuItem(0, "Afficher la fenetre")
MenuItem(1, "Quitter")
HideWindow(#Mainform, #True)
AddSysTrayIcon(1, WindowID(#Mainform), LoadIcon_(#Null, #IDI_WARNING))
SysTrayIconToolTip(1, "Touche F8" +#CRLF$+ "Pour afficher la fenetre")
CreateThread(@ShowHideWindow(), #Null)
Repeat
Select WaitWindowEvent()
Case #PB_Event_Menu
Select EventMenu()
Case 0
HideWindow(#Mainform, #False)
Case 1
End
EndSelect
Case #PB_Event_SysTray
If EventType() = #PB_EventType_LeftDoubleClick
HideWindow(#Mainform, #False)
EndIf
If EventType() = #PB_EventType_RightClick
DisplayPopupMenu(#MenuPopUp, WindowID(#Mainform))
EndIf
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
Si l'API GetAsyncKeyState_ ne fonctionne pas, c'est que tu as une version de demo de PureBasic.
Re: Raccourci clavier sur Fenêtre Masquée
Publié : jeu. 06/sept./2012 15:24
par microdevweb
Bonjour falsam,
Un grand merci cela fonctionne Nickel...
C'est ça que je cherchais.
