[RESOLU] Raccourci clavier sur Fenêtre Masquée

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
microdevweb
Messages : 1802
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

[RESOLU] Raccourci clavier sur Fenêtre Masquée

Message 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
Dernière modification par microdevweb le jeu. 06/sept./2012 15:25, modifié 1 fois.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Raccourci clavier sur Fenêtre Masquée

Message 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 ;)
Avatar de l’utilisateur
microdevweb
Messages : 1802
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Raccourci clavier sur Fenêtre Masquée

Message 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
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Raccourci clavier sur Fenêtre Masquée

Message 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 ... 


Avatar de l’utilisateur
microdevweb
Messages : 1802
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Raccourci clavier sur Fenêtre Masquée

Message par microdevweb »

Si j'ai essayé, mais comme la fenêtre et Invisible. Cela ne marque pas.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Raccourci clavier sur Fenêtre Masquée

Message 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.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
microdevweb
Messages : 1802
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Raccourci clavier sur Fenêtre Masquée

Message par microdevweb »

Bonjour falsam,

Un grand merci cela fonctionne Nickel...

C'est ça que je cherchais. :P
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Répondre