Visual basic, Créer un raccourci clavier

Résolu
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 - 2 août 2016 à 16:39
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 - 9 août 2016 à 00:12
Bonjour,
Je demande encore une fois votre aide
J'ai fait beaucoup de recherche est j'ai finalement trouvé se que je cherche, voici le code :

Imports System.Runtime.InteropServices
Public Class Form3
<DllImport("user32.dll", SetLastError:=True)> _
Private Shared Function RegisterHotKey(ByVal hWnd As IntPtr, ByVal id As Integer, ByVal fsModifiers As UInteger, ByVal vk As UInteger) As <MarshalAs(UnmanagedType.Bool)> Boolean
End Function
Enum Options
Ctrl = &H2
Alt = &H1
Shift = &H4
Windows = &H8
End Enum
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
If m.Msg = 786 Then
PictureBox1.BackColor = Color.Violet
End If
MyBase.WndProc(m)
End Sub
Sub RegisterKey(ByVal Options As Options, ByVal Key As Keys)
RegisterHotKey(Me.Handle, 1, Options, CUInt(Key))
End Sub
Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
RegisterKey(Options.Ctrl, Keys.V)
End Sub
End Class

Ce code permet de créer un raccourci clavier pour la forme, et ce raccourci peut être utilisé même si la forme n'est pas sélectionner
Le problème est que ça marche pour tous les autres combinaisons (par exemples : Ctrl +V , Ctrl + C, Alt + B ... etc), mais pas avec les combinaisons qui contient la touche Windows (par exemple : Windows + D)
Aidez-moi s'il vous plait pour résoudre ce problème
Merci d'avance pour votre aide
--
Comment ça marche c'est cool! 
      1000 Merci les Amis
A voir également:

15 réponses

kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1
3 août 2016 à 11:22
j'ai fait une erreur quand j'ai copier le code
c'est : Windows = &H312 et non Windows = &H8
mais même comme ça, ça ne marche pas
et aussi cette partie là :
If m.Msg = 786 Then

je n'arrive pas a la comprendre ça m.Msg = 786
il signifie quoi? et si je veux créer plusieurs raccourci clavier comment faire? quelle sera la condition en plus de :
If m.Msg = 786 Then

End If

merci de m'éclairer
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
3 août 2016 à 12:58
Bonjour,
je n'arrive pas a la comprendre ça m.Msg = 786
il signifie quoi?

Excuse-moi, mais si tu l'as écrit, c'est que tu pensais, TOI, qu'ilo signifiait quelque-chose, non ?
Je te retourne donc ta question : que penses-tu, toi qui l'as écrit;, qu'il signifie ?
J'attends ta réponse !
0
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1
Modifié par kikou93 le 3/08/2016 à 13:05
merci de m'avoir répondu
désolé, mais ce n'ai pas moi écris ce code, je l'ai trouvé après avoir fait des recherche (ce code a été proposé dans tutoriel dans YouTube)
voici le lien
https://www.youtube.com/watch?v=4ArX6QmDkAA&index=1&list=PL4Uk7_mD-fVmE50wsX37_hcHg-XDx6-wk

c’est pour ça que j'ai demandé d'en savoir plus je voulais le comprendre mieux
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 3/08/2016 à 18:05
Je n'ai absolument pas l'intention de suivre un "tuto" à la "neuneu" qui dure 10 minutes pour répondre à une question !
Mon instinct (bien que ne connaissant quasiment rien de VB.Net) et mon petit doigt me disent cependant que ton "m" n'en est pas un et est probablement l'un des paramètres d'une sub, qui est probablement le paramètre e qui correspond aux messages de Windows.
Voilà voilà

EDIT : le même instinct et mon petit doigt me disent également que la vocation de ce message est de faire savoir si une exécution a réussi ou non.

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
0

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

Posez votre question
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
3 août 2016 à 18:32
Bonjour à kikou93 ainsi qu'à ucfoutu
Par curiosité j'ai regardé une partie du "tuto" à la "neuneu"
Ce que cette personne propose en vidéo n'a rien à voir avec un tutoriel digne de ce nom ( comme beaucoup de soi-disant tutoriels proposés ainsi en vidéo)
Rien de sérieux à en tirer : point barre
0
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1
3 août 2016 à 19:41
Bonjour vb95
C'est vrais que certain tutoriel sont vraiment nul
parfois ils ne savent même pas ce qu'ils sont entrain de faire (copier / coller)

dans ce code il y a l'erreur de la touche windows, mais le reste du code marche bien (les raccourcis clavier créer avec les autres touches marche à merveille)

si tu à un meilleur code je suis tout oui
0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169 > kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018
Modifié par vb95 le 3/08/2016 à 21:46
Rebonsoir Kikou93
Désolé je n'ai aucun code "meilleur" que celui que tu as !
Ce que je voulais dire au niveau du tutoriel c'est que d'abord un tutoriel a une explication et un but bien clairement expliqués ainsi que le code qui va avec et surtout avec des commentaires sur le code lui-même ( paramètres des fonctions, explication sur une Sub, etc..... lorsque c'est nécessaire à la compréhension du code)
si le code était bien commenté le m.Msg = 786 aurait été expliqué par exemple.
Ce qui fait que l'on comprend non seulement ce que fait le code mais que l'on est capable si nécessaire de l'améliorer
Là il n'en est rien !
A tout hasard j'ai trouvé cela et le m.Msg = 786 est expliqué : https://social.msdn.microsoft.com/Forums/fr-FR/6568eaec-c061-4883-aba1-7af71a582e00/mise-en-place-de-raccourcis-clavier-hotkey-dans-une-application-vbnet?forum=vbasicfr

D'après ce code Windows n'est pas = à 312 mais à 8
le 312 est en hexadécimal et vaut le 786 décimal de VM_Hotkey
312 hexa = (3 *256) + (1*16) + 2 soit 786 décimal

VM_Hotkey est expliqué dans le lien ci-dessus
Bon courage
0
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1 > vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024
3 août 2016 à 23:16
Merci vb95
je vais y jeter un oeil et je te tiendrai au courant
0
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1 > vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024
3 août 2016 à 23:47
salut vb95
j'ai essais sont code
alors quand je fais :
RegisterHotKey(Me.Handle, HOTKEY_ID2, FsModifiers.Windows , Keys.V)

ça ne marche toujours pas
mais si je fais ça :
RegisterHotKey(Me.Handle, HOTKEY_ID2, FsModifiers.Windows + FsModifiers.Control, Keys.V)

ça marche
peux-être qui n'accepte pas la touche windows seul
0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169 > kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018
4 août 2016 à 00:15
Pour moi c'est certain que la touche Windows seule n'est pas acceptée (de toute façon on l'associe toujours avec une autre touche) tout comme la touche Ctrl ou la touche Alt )
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 4/08/2016 à 08:25
On ne peut bien évidemment "dérober" à Windows ses propres raccourcis.
Windows + D, par exemple, est un raccourci Windows déjà défini pour réduire une fenêtre.

EDIT (rien à voir directement avec ton problème, mais à garder à l'esprit) : De manière générale, on ne peut définir des touches déjà définies comme raccourci sans avoir au préalable supprimé ce raccourci déjà présent).

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
0
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1
Modifié par kikou93 le 4/08/2016 à 10:34
Bonjour ucfoutu

Merci de m'avoir répondu
C'est ce que tu dit est vrais normalement les raccourci clavier comme :
Ctrl +V
Ctrl +C
Alt + P ... marche

et si ne me trempe pas le raccourci Windows + V n'est pas un raccourci de Windows (il n'existe pas déjà), alors pour il ne marche pas.
mais si je fais!
Ctrl + Windows + V ça marche

je crois que le code de Windows ni n'est le 8 ni le 312 si pourquoi ça ne marche pas

éclaire moi s'il te plait
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
4 août 2016 à 10:50
et si ne me trempe pas le raccourci Windows + V n'est pas un raccourci de Windows (il n'existe pas déjà)

- Il n'est pas interdit de se "tremper", voire de se baigner, plonger, etc ... en été
- avant de faire une telle affirmation, tu aurais dû vérifier ce que fait (car oui, il fait quelque chose) le raccourci Windows + V, hein ...
Ce n'est pas difficile de le vérifier : depuis cette même fenêtre ===>>> Windows + V ===>> et tu OUVRES bien tes yeux ...
0
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1
4 août 2016 à 11:18
Ce n'est pas difficile de le vérifier : depuis cette même fenêtre ===>>> Windows + V ===>> et tu OUVRES bien tes yeux ...

désolé ucfoutu mais j'ai beau cliquer sur Windows + V pendant que je suis toujours sur cette fenêtre comme tu dit mais rien ne change ou n'apparaît (est crois moi j'ai les yeux bien ouverts)
et aussi j'ai fait des recherches dans mon moteur de recherche Google sur le racourci clavier Windows +V et je n'ai trouvé aucun résultat
0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169 > kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018
4 août 2016 à 14:15
https://support.microsoft.com/fr-fr/help/12445/windows-keyboard-shortcuts
et tu auras tous les raccourcis dont Windows + V
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 4/08/2016 à 11:20
Et puis, tu fais comme nous tous : tu te documentes un peu.
Cet aspect n'a rien à voir avec VB et tout à voir avec Windows.
Je te suggère cette lecture :
https://blogs.msdn.microsoft.com/oldnewthing/20071130-00/?p=24333
Par ailleurs, le code de la touche LOGO (c'est le nom de la touche WINDOWS) est pour moi 91

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
4 août 2016 à 11:32
et aussi j'ai fait des recherches dans mon moteur de recherche Google sur le racourci clavier Windows +V et je n'ai trouvé aucun résultat

Ah ??? ===>> rendez-vous à prendre avec un ophtalmo, donc ...
0
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1
4 août 2016 à 11:39
merci ucfoutu pour le site, je vais y jeter un œil

Par ailleurs, le code de la touche LOGO (c'est le nom de la touche WINDOWS) est pour moi 91

est-ce que c'est différent pour chaque ordinateur? si c'est le cas, comment tu as su que c'était 91?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
4 août 2016 à 12:40
est-ce que c'est différent pour chaque ordinateur? si c'est le cas, comment tu as su que c'était 91

euh ....
peut-être ( ????? !!!!!) en me contentant (suis-je donc bête ....) d'afficher ce que j'obtiens en affichant ce que j'obtiens dans ... l'évènement Keydown (en pressant cette touche) !!!!
Je crois tout simplement, kikou93, que toutes tes "hésitations", "interrogations", etc ... résultent de ce que tu veux brûler des étapes en passant allègrement à côté des bases et de la réflexion élémentaire.
Message très amical pour toi : tu devrais commencer par le tout début et avancer pas à pas, plutôt que de tenter de "fonctionner" comme tu prétends "fonctionner.
Bonne continuation.
0
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1
4 août 2016 à 12:51
avec ta façon de parler je n'ai meme pas envie de te répondre, merci comme même de m'avoir consacré du temps
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211 > kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018
4 août 2016 à 14:36
Il n'y a pas de quoi.
Bonne chance.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211 > ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018
5 août 2016 à 11:24
Je vois, Kikou93, que tu as signalé ma réponse comme ne "respectant pas la charte de politesse" !
Si tu estimes que ce que j'ai exposé, à savoir ton besoin évident de commencer par l'apprentissage des bases est une impolitesse, ma foi ... ===>>
1) je me vois très mal te dire les choses autrement
2) je me vois encore plus mal répondre à toute nouvelle discussion que tu ouvrirais.
Bonne continuation ...
0
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1
4 août 2016 à 19:35
comme je le penser le code de la touche Windows ni le 8 ni le 312, parce que si je fais :

  Enum Options
Ctrl = &H2
Alt = &H1
Shift = &H4
Windows = &H8
Alt_Windows = &H9
Ctrl_Windows = &H10
Shift_Windows = &H12
End Enum
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
If m.Msg = 786 Then
PictureBox1.BackColor = Color.Black
End If
MyBase.WndProc(m)
End Sub
Sub RegisterKey(ByVal Options As Options, ByVal Key As Keys)
RegisterHotKey(Me.Handle, 1, Options, CUInt(Key))
End Sub
Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
RegisterKey(Options.Windows, Keys.A)
End Sub


ça ne marche pas

mais si je fais :

  Enum Options
Ctrl = &H2
Alt = &H1
Shift = &H4
Windows = &H8
Alt_Windows = &H9
Ctrl_Windows = &H10
Shift_Windows = &H12
End Enum
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
If m.Msg = 786 Then
PictureBox1.BackColor = Color.Black
End If
MyBase.WndProc(m)
End Sub
Sub RegisterKey(ByVal Options As Options, ByVal Key As Keys)
RegisterHotKey(Me.Handle, 1, Options, CUInt(Key))
End Sub
Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
RegisterKey(Options.Alt_Windows - Options.Alt, Keys.A)
End Sub


ça marche
et aussi ce que à dit est vrais ucfoutu car si je fais Windows + D ça ne marche pas car Windows + D est un raccourci de Windows (il existe déjà)
mais il y a une chose que je ne comprend pas, si les raccourci clavier de Windows ne peuvent pas être utiliser à nouveau dans le code , alors pourquoi Ctrl + V ou Ctrl +C marche?, il sont censés être des raccourci clavier de Windows non ?
0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
4 août 2016 à 21:23
Salut kikou93
Ctrl + C par exemple n'est pas qu'un raccourci Windows uniquement mais aussi un raccourci pour Word, Notepad et bien d'autres logiciels !
Les raccourcis CTRl + une lettre sont utilisés dans de nombreux logiciels alors que ceux avec la touche Windows ne sont utilisés que par le système d'exploitation Windows.
Cela explique pourquoi les raccourcis avec la touche Windows ne fonctionnent pas
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
4 août 2016 à 21:07
si les raccourci clavier de Windows ne peuvent pas être utiliser à nouveau dans le code

Où as-tu lu une telle chose ?
Utiliser est UNE chose, définir en est UNE AUTRE !
Là, vraiment .... bref.
0
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1
4 août 2016 à 22:08
désolé, c'est vrais j'ai fait je me suis mal exprimé (c'est "définir" au lieu de "utiliser")
0
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1
9 août 2016 à 00:12
j'abandonne l'idée de créer un raccourci clavier avec windows+D parceque c'est impossible
merci pour tout les personne que mon aider sur ce sujet
0
Rejoignez-nous