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)

Code : Tout sélectionner

 Case #Gadget_Main_BT_Exit
    HideWindow(#Window_Main,1)
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. :P