Téléchargé 3 fois
						
					
					
						Vote des utilisateurs
					
					
	
0 
0 
						Détails
					
					Licence : Non renseignée
						Mise en ligne le 14 novembre 2010
												
																		
													Langue : Français
						
					
							Référencé dans
						
						
										
					
						Navigation
					
					
				
						
							
							
								Assigner une touche de raccourci à la fermeture d'un programme							
						 
					
					
								Assigner une touche de raccourci à la fermeture d'un programme							
						Permet de sélectionner, un programme à fermer lors de l'action sur la touche ESC quelque soit l'application active. 
					
										
					
					
							Avec les api de windows , ca devrait pouvoir se faire. En vb, recuperer un evenement sur l'appui d'une touche sans que vb aie le focus me paraît pour le moins difficile.
					Bonsoir
sur une Form
créer un popmenu avec Créateur de menus comme suit
caption = Arret du prog
Name = Cmds ...
... caption = Touche Ctrl+W
... Name = Cmd
... Shortcut = Ctrl+W
	
	
Lancer le prog, appuis des touches  Ctrl+W, le prog prend fin.
Il faut que le prog ai le focus au moment de l'appui sur les touches
					sur une Form
créer un popmenu avec Créateur de menus comme suit
caption = Arret du prog
Name = Cmds ...
... caption = Touche Ctrl+W
... Name = Cmd
... Shortcut = Ctrl+W
| Code : | Sélectionner tout | 
1 2 3  | Private Sub Cmd_Click() Unload Me End Sub  | 
Il faut que le prog ai le focus au moment de l'appui sur les touches
Une autre solution sachant que,
Source MSDN
	
		
Mettre donc Form.KeyPreview = True dans le projet
et le code suivant
	
	
					Source MSDN
			
			
				KeyPreview, propriété
Renvoie ou définit une valeur qui détermine si les événements du clavier pour les feuilles sont appelés avant ceux destinés aux contrôles. Les événements du clavier sont KeyDown, KeyUp et KeyPress.
Syntaxe
object.KeyPreview [= boolean]
La syntaxe de la propriété KeyPreview comprend les éléments suivants :
Élément Description
object Expression d'objet qui prend la valeur d'un objet figurant dans la liste "Application".
boolean Expression booléenne qui spécifie la façon dont les événements sont reçus, comme indiqué dans la section Valeurs.
Valeurs
L'élément boolean peut prendre les valeurs suivantes :
Valeur Description
True La feuille reçoit les événements du clavier avant le contrôle actif.
False (Valeur par défaut) Le contrôle actif reçoit les événements du clavier, mais pas la feuille.
Remarques
Vous pouvez utiliser la propriété KeyPreview pour créer une procédure de gestion du clavier destinée à une feuille. Par exemple, lorsqu'une application met en œuvre des touches de fonction, il est préférable de traiter les frappes de touches au niveau de la feuille, au lieu d'écrire un code pour chaque contrôle susceptible de recevoir les événements du clavier.
Si une feuille n'a pas de contrôles visibles et actifs, elle reçoit automatiquement tous les événements du clavier.
Pour gérer les événements du clavier au niveau de la feuille uniquement et empêcher que les contrôles reçoivent ces événements, affectez la valeur 0 à KeyAscii dans l'événement KeyPress de la feuille et à KeyCode dans l'événement KeyDown de la feuille.
Note Certains contrôles interceptent les événements du clavier, de sorte que la feuille ne les reçoit pas. C'est le cas, par exemple, de la touche ENTRÉE lorsque le focus est sur un contrôle CommandButton, et des touches de direction lorsque le focus est sur un contrôle ListBox.
	Renvoie ou définit une valeur qui détermine si les événements du clavier pour les feuilles sont appelés avant ceux destinés aux contrôles. Les événements du clavier sont KeyDown, KeyUp et KeyPress.
Syntaxe
object.KeyPreview [= boolean]
La syntaxe de la propriété KeyPreview comprend les éléments suivants :
Élément Description
object Expression d'objet qui prend la valeur d'un objet figurant dans la liste "Application".
boolean Expression booléenne qui spécifie la façon dont les événements sont reçus, comme indiqué dans la section Valeurs.
Valeurs
L'élément boolean peut prendre les valeurs suivantes :
Valeur Description
True La feuille reçoit les événements du clavier avant le contrôle actif.
False (Valeur par défaut) Le contrôle actif reçoit les événements du clavier, mais pas la feuille.
Remarques
Vous pouvez utiliser la propriété KeyPreview pour créer une procédure de gestion du clavier destinée à une feuille. Par exemple, lorsqu'une application met en œuvre des touches de fonction, il est préférable de traiter les frappes de touches au niveau de la feuille, au lieu d'écrire un code pour chaque contrôle susceptible de recevoir les événements du clavier.
Si une feuille n'a pas de contrôles visibles et actifs, elle reçoit automatiquement tous les événements du clavier.
Pour gérer les événements du clavier au niveau de la feuille uniquement et empêcher que les contrôles reçoivent ces événements, affectez la valeur 0 à KeyAscii dans l'événement KeyPress de la feuille et à KeyCode dans l'événement KeyDown de la feuille.
Note Certains contrôles interceptent les événements du clavier, de sorte que la feuille ne les reçoit pas. C'est le cas, par exemple, de la touche ENTRÉE lorsque le focus est sur un contrôle CommandButton, et des touches de direction lorsque le focus est sur un contrôle ListBox.
et le code suivant
| Code : | Sélectionner tout | 
1 2 3  | Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer) If KeyCode = 27 Then Unload Me ' Escape End Sub  | 
Je suis d'accord avec toi, ProgElec, mais çà ne resouldra pas le problème de Morgan 47 à savoir : affecter une touche au masquage d'un programme de jeu, pas toucher au programme vb lol
C'est le programme de jeu qui a le focus, donc le prog vb ne recoit pas les evenements clavier
					C'est le programme de jeu qui a le focus, donc le prog vb ne recoit pas les evenements clavier
J'ai mal interpreté la demande, par contre il faut que je recherche dans mes sources car j'ai deja fait ce type de prog pour fermer des progs qui etaient lancés par un colégue indelicat pour surveiller mon pc (au boulot), mais je devai passer par les fonction EnumWindows, GetWindowText et SendMessage
Ce soir je n'ai plus toute ma tête
 , mais promis je vai retrouverBonsoir
merci de vos réponces a tous 
vous devez vous dire quel branleur ce jeune, lol je vous le fair pas dire.
Mais quand on passe 8 heure par jous devant l'ordi faut bien se détendre entre les interclasse :-P
					vous devez vous dire quel branleur ce jeune, lol je vous le fair pas dire.
Mais quand on passe 8 heure par jous devant l'ordi faut bien se détendre entre les interclasse :-P
| Code : | Sélectionner tout | 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29  | '-- Code module
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_NOACTIVATE = &H10
Const SWP_SHOWWINDOW = &H40
Private Declare Sub SetWindowPos Lib "User32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)
Declare Function SetTimer Lib "User32" (ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Declare Function KillTimer Lib "User32" (ByVal hWnd As Long, ByVal nIDEvent As Long) As Long
Declare Function GetAsyncKeyState Lib "User32" (ByVal vKey As Long) As Integer
Sub TimerProc(ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long)
    If GetAsyncKeyState(vbKeyEscape) <> 0 Then
        SetWindowPos Form1.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
        SetWindowPos Form1.hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
    End If
End Sub
'-- Code Form
Private Sub Form_Load()
   SetTimer Me.hWnd, 0, 1, AddressOf TimerProc ' on crée un timer
End Sub
Private Sub Form_Unload(Cancel As Integer)
    KillTimer Me.hWnd, 0 '-- arreter le timer
End Sub | 
Aller ou l'on veut et appuyer sur la touche Escape
et dire qu'on va donner des solutions à ces jeunes "branleurs" (dixit morgan47 
 ) pour flouer le prof d'info, c'est pas moral, tiens !! 
					
 ) pour flouer le prof d'info, c'est pas moral, tiens !! Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.
		
	
			
			
KillRacourci.zip