Bonjour,
je cherche le moyen de simuler la touche Windows avec SendKeys.
Je n'ai pas trouvé chez mon ami :google2: ...
Cordialement,
Psy
Version imprimable
Bonjour,
je cherche le moyen de simuler la touche Windows avec SendKeys.
Je n'ai pas trouvé chez mon ami :google2: ...
Cordialement,
Psy
Bonjour Psycho
l'aide VBA dans excel reserve parfois des surprises
bonne soiréeCitation:
SendKeys, méthode
Voir aussi S'applique à Exemple Spécificités
Cette méthode envoie des touches à l'application active.
expression.SendKeys(Keys, Wait)
expression Facultative. Expression qui renvoie un objet Application.
Keys Argument de type Variant obligatoire. Touche ou la combinaison de touches que vous voulez envoyer à l'application, sous forme de texte.
Wait Argument de type Variant facultatif. Affectez-lui la valeur True pour que Microsoft Excel attende le traitement des touches avant de rendre le contrôle à la macro. Affectez-lui la valeur False (ou ne spécifiez pas cet agument) pour continuer l'exécution de la macro sans attendre le traitement des touches.
Notes
Cette méthode place les touches dans une zone tampon spécialisée. Dans certains cas, vous devez appeler cette méthode avant d'appeler la méthode qui va traiter les touches. Par exemple, pour envoyer un mot de passe à une boîte de dialogue, vous devez appeler la méthode SendKeys avant d'afficher la boîte de dialogue.
L'argument Keys peut indiquer une quelconque touche unique ou associée à une des touches ALT, CTRL ou MAJ ou à une combinaison de ces dernières. Chaque touche est représentée par un ou plusieurs caractères, tels que "a" pour la lettre a ou "{ENTER}" pour la touche ENTRÉE.
Pour spécifier des caractères non affichés lorsque vous appuyez sur la touche correspondante (par exemple ENTER ou TAB), utilisez les codes listés dans la table suivante. Chaque code de la table représente une touche du clavier.
Touche Code
AIDE {HELP}
ATTN {BREAK}
BAS {DOWN}
DÉBUT {HOME}
DÉFILEMENT {SCROLLLOCK}
DROITE {RIGHT}
ÉCHAP {ESCAPE} ou {ESC}
EFFACER {CLEAR}
ENTRÉE (pavé numérique) {ENTER}
ENTRÉE ~ (tilde)
F1 à F15 {F1} à {F15}
FIN {END}
GAUCHE {LEFT}
HAUT {UP}
INSERTION {INSERT}
PAGE PRÉCÉDENTE {PGUP}
PAGE SUIVANTE {PGDN}
RET.ARR {BACKSPACE} ou {BS}
RETOUR {RETURN}
SUPPRESSION ou SUPPR {DELETE} ou {DEL}
TABULATION {TAB}
VERR.MAJ {CAPSLOCK}
VERR.NUM {NUMLOCK}
Vous pouvez aussi spécifier des touches combinées avec MAJ et/ou CTRL et/ou ALT. Pour spécifier une combinaison de touches, utilisez le tableau suivant.
Pour combiner une touche avec : Précédez le code de la touche de :
ALT % (signe de pourcentage)
CTRL ^ (signe d'insertion)
MAJ + (signe plus)
Exemple
Cet exemple montre comment utiliser la méthode SendKeys pour quitter Microsoft Excel.
Application.SendKeys("%fx")
et la touche "Windows" dans tout ça ? 8O
re:
j'ai fait plusieur essais sous DOS avec un vieux Qbasic
pas moyen de recupérer le code de la touche, à chaque fois je rends la main à windows. Le controle de cette touche est realisé à un niveau inferieur au system...........:cry: désolé, je ne peux pas t'en dire plus
salutations
arf... je vais encore chercher... ya bien un gars qui a trouvé sur Google... un perdu dans un coin perdu du monde, avec 2 ou 3 vies supplémentaires sur Second Life (un geek a 101%, quoi) qui a dû chercher et trouver ^^
Réponse 12 ans plus tard lol. Je viens de tester, chez moi ça fonction
Sendkeys "^{esc}"
:lol:
et 2 ans plus tard... ;-)
comment simuler Windows + M ?
merci
Bonjour bonjour !
Je n'ai pas trouvé de moyen de simuler la touche Windows, mais j'ai trouvé un moyen de réduire le zoom de la loupe Windows 10, de façon moins problématique qu'avec juste l'interface par défaut.
La première idée était de sélectionner la fenêtre de titre "Loupe".
Puis, sur la machine de quelqu'un qui utilisait un autre mode pour la loupe, je me suis rendu compte qu'on pouvait avoir deux fenêtres de titre "Loupe" :
- celle qui montre le contenu agrandi de la zone sélectionnée de l'écran
- celle qui gère les paramètres de loupe
(la seconde étant, bien entendu, la seule qui apparaît dans d'autres modes).
J'ai donc modifié mon programme, et je teste le nombre de fenêtres avec le titre "Loupe" :
- si il n'y en a qu'une, je la mets au premier plan
- si il y en a deux je mets la moins haute au premier plan
- si il y en a plus, j'écris dans la console "trop de fenêtres Loupe"
et si le dernier cas de figure se produit, alors il faudra que j'écrive une troisième version.
Le programme est en C#, je peux caser ça dans un coin ...
C'est un programme de type console, il faut l'appeler avec un raccourci qui réduit la fenêtre console.
Si les forums MSDN n'avaient pas été en panne cette semaine, peut-être aurions-nous eu d'autres avis sur cette histoire de touche Windows, et/ou une vraie programmation du zoom de la loupe ...
https://answers.microsoft.com/fr-fr/...f-0a0702f3a5e8
https://answers.microsoft.com/fr-fr/...e-377980ed2a16
Hello,
voici un code pour simuler la touche windows :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Option Explicit #If VBA7 Then Declare PtrSafe Sub keybd_event Lib "User32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As LongPtr, ByVal dwExtraInfo As LongPtr) #Else Declare Sub keybd_event Lib "User32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long) #End If Sub SendWindowsKey() Const KEYEVENTF_KEYUP As Long = &H2 Const VK_RWIN As Long = &H5C Const VK_LWIN As Long = &H5B keybd_event VK_LWIN, 0&, 0&, 0& keybd_event VK_LWIN, 0&, KEYEVENTF_KEYUP, 0& End Sub
Ami calmant, J.P
et 3 ans plus tard... :mouarf: une solution possible :
Code:
1
2
3
4
5
6
7
8
9 Sub SendWindows_M() Const KEYEVENTF_KEYUP As Long = &H2 Const VK_RWIN As Long = &H5C Const VK_LWIN As Long = &H5B keybd_event VK_LWIN, 0&, 0&, 0& ' Enfoncer touche Win Gauche keybd_event Asc("M"), 0&, 0&, 0& ' Enfoncer la touche M keybd_event Asc("M"), 0&, KEYEVENTF_KEYUP, 0& ' Relever touche M keybd_event VK_LWIN, 0&, KEYEVENTF_KEYUP, 0& ' Relever touche Win Gauche End Sub
Bonjour
Je viens mettre à jour ce que j'ai dit l'autre jour.
Sélectionner la fenêtre Loupe s'est confronté sur une autre machine à une difficulté : les fenêtres de loupe n'ont pas de titre sur cette machine. J'ai commencé à chercher si ça peut se régler quelque part dans les paramètres, et je prévois de tester avec les noms de classes plutôt que les titres.
Ensuite, en adaptant d'un forum allemand j'ai trouvé le moyen d'émuler Windows "-", mais pas en passant par SendKeys.
En arrivant ici je vois que Bidouilleur a publié la même chose.
Voici le code d'un programme C# qui envoie [{Windows}-], donc réduit le zoom d'un cran.
Pour sûr, c'est ce que ferait SendKeys si il avait le bon code en entrée. Si quelqu'un a la source de SendKeys, ça permettra de le mettre à jour.
Ah oui mais ça veut dire que ... il faudrait recompiler tout le langage :)
Si il y a des puristes ils vont trouver à redire, normalement on doit relâcher "-" avant Windows, et je ne me suis pas embêté pour les références j'ai laissé celles par défaut, certaines ne servent pas.Code:
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
30 using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; namespace WinMns { internal class Program { [DllImport("user32.dll")] internal static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo); static void Main(string[] args) { //const int KEYPlus = 0x6B; const int KEYMinus = 0X6D; const int KEYUP = 0x02; byte KEYWIN = 0x5B; keybd_event(KEYWIN, 0, 0, 0); keybd_event(KEYMinus, 0, 0, 0); keybd_event(KEYWIN, 0, KEYUP, 0); keybd_event(KEYMinus, 0, KEYUP, 0); } } }