begin process at 2010 02 10 03:53:07
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

API

 > 

Send Message Shift+Enter


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Send Message Shift+Enter

mercredi 2 novembre 2005 à 14:50:53 | Send Message Shift+Enter

supermotaboy

Salut,

Je souhaite envoyer a un control d'un autre programme la combinaison Shift+Enter, le probleme est que quand je fais
PostMessage 132670, WM_KEYDOWN, VK_SHIFT, 0
PostMessage 132670, WM_KEYDOWN, VK_RETURN, 0
PostMessage 132670, WM_KEYUP, VK_RETURN, 0
PostMessage 132670, WM_KEYUP, VK_SHIFT, 0
(136270 est le handle du control, comme je ne sais pas encore comment faire pour le récupérer, je l'ai obtenu via un autre programme), ça a le meme effet que
PostMessage 132670, WM_KEYDOWN, VK_RETURN, 0
PostMessage 132670, WM_KEYUP, VK_RETURN, 0
J'ai beau cherché partout (y compris sur msdn), je ne vois pas comment faire. J'ai observer les messages reçu par le controle quand je fais cette action au clavier, et ils sont identiques a mon premier code, donc je ne vois pas ce qui ne va pas!!



LTourist
mercredi 2 novembre 2005 à 15:42:09 | Re : Send Message Shift+Enter

pcpt

Administrateur CodeS-SourceS
salut.
bah Post ou Send, çà fonctionne chez moi....
[VB6] 2 boutons 1 txtbox


Option Explicit 
'
'
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" _ 
            (ByVal hwnd As LongByVal wMsg As LongByVal wParam As Long, _ 
            ByVal lParam As LongAs Long 
'
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _ 
            (ByVal hwnd As LongByVal wMsg As LongByVal wParam As Long, _ 
            lParam As Any) As Long 
'
Private Const VK_SHIFT = &H10 
Private Const VK_RETURN = &HD 
'
Private Const WM_KEYDOWN = &H100 
Private Const WM_KEYUP = &H101 
'
'
Private Sub Command1_Click() 
    PostMessage Text1.hwnd, WM_KEYDOWN, VK_SHIFT Or VK_RETURN, 0& 
    PostMessage Text1.hwnd, WM_KEYUP, VK_SHIFT Or VK_RETURN, 0& 
End Sub 
'
'
Private Sub Command2_Click() 
    SendMessage Text1.hwnd, WM_KEYDOWN, VK_SHIFT Or VK_RETURN, 0& 
    SendMessage Text1.hwnd, WM_KEYUP, VK_SHIFT Or VK_RETURN, 0& 
End Sub 
'
'
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer
    If (KeyCode Or Shift) = 29 Then MsgBox "Shift + Entrée", 32 
End Sub 
 


Coloration syntaxique automatique [AFCK]
       




ps : prochaine fois, donne les constantes et déclarations, çà fait gagner du temps à tout le monde ;)
PCPT    [AFCK]

mercredi 2 novembre 2005 à 15:53:57 | Re : Send Message Shift+Enter

supermotaboy

Désolé :)

Alors j'ai testé avec ton exemple et la plus d'effet du tout, j'ai juste modifié le handle pour qu'il corresponde au controle sur lequel je souhaite intervenir. En espionnant le message envoyé, le code de la touche est 0 ??? Par contre en espionnant le code de la touche envoyé au textbox, la c'est VK_NONCONVERT (29). C'est ce que tu as mis mais j'ai plus l'impression que c'est une sorte de constante d'erreur non?
En fin c'est bizarre que le code envoyé change entre si je l'envoie au textbox ou a mon controle, un lien avec le fait qu'il s'agit d'un autre probleme peut etre???

LTourist
mercredi 2 novembre 2005 à 16:05:15 | Re : Send Message Shift+Enter

supermotaboy

J'ai trouvé quelqu'un qui avait sensiblement le meme probleme que moi, mais il n'as pas dis si il l'avait résolu. Un autre utilisateur lui propose d'aller voir sur MSDN MapVirtualKey ( la fonction n'est pas dans api guide, mais dans win32api.txt oui) et OEMKeyScan. Je suis aller voir mais je ne comprends pas grand chose, si quelqu'un pouvait aller voir et m'expliquer si a peut m'aider et si oui comment???
[URL]http://www.yaronet.com/posts.php?s=63417[/URL]

LTourist
mercredi 2 novembre 2005 à 16:05:29 | Re : Send Message Shift+Enter

pcpt

Administrateur CodeS-SourceS
salut,
bah ce qui est encore plus bizarre, c'est qu'en recopiant le code dans une nouvelle Form, la manipulation manuelle (shift enter) ne déclanche plus le MsgBox.

cela dit, mon PC n'est pas des plus fiables....
29 est le code que j'avais en le faisant manuellement. donc le vrai code de combinaison renvoyé par la TxtBox.
mercredi 2 novembre 2005 à 16:42:45 | Re : Send Message Shift+Enter

pcpt

Administrateur CodeS-SourceS
bah dans ce cas (suite au lien), une piste de recherche serait :




'-> retourne le statue de la touche spécifiée
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
'
'-> retourne les bits de poids faible

Private Declare Function loword Lib "TLBINF32" (ByVal DWord As Long) As Integer
'
'-> retourne les bits de poids fort

Private Declare Function hiword Lib "TLBINF32" (ByVal DWord As Long) As Integer

PCPT  [AFCK]
mercredi 2 novembre 2005 à 17:29:56 | Re : Send Message Shift+Enter

supermotaboy

est ce que tu pourrais expliquer les bits de poids faible et point fort, je connais de nom mais c'est tout.Pourquoi voudrais tu utilisé GetKeyState, celui ci renvoie les touches enfoncés, mais une seule a la fois, pas de combinaison???

LTourist
mercredi 2 novembre 2005 à 18:05:21 | Re : Send Message Shift+Enter

supermotaboy

je viens de voir une idée interessant mais malheureusement ça ne marche pas:
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long,ByVal wMsg As Long,ByVal wParam As Long,lParam As Any) As Long
Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte,ByVal bScan As Byte,ByVal dwFlags As Long,ByVal dwExtraInfo As Long)

Public Const KEYEVENTF_KEYUP = 2

keybd_event(VK_SHIFT,0,0,0);
SendMessage(hMediaPlayer,WM_CHAR,VK_RETURN,0);
keybd_event(VK_SHIFT,0,KEYEVENTF_KEYUP,0);
(j'ai remis en VB hein). L'idée du concepteur vient du fait qu'avec sendmessage on ne peut pas faire de raccourcis complexe, comme je le cherhe.
Son truc est donc de melanger les deux fonctions. J'ai aussi essayé avec keydown et up, aucun effet...
Source : http://tcharles.developpez.com/simul/
LTourist
mercredi 2 novembre 2005 à 18:06:33 | Re : Send Message Shift+Enter

supermotaboy

Désolé pour le doublon, mais lien direct vers la partie concernée : http://tcharles.developpez.com/simul/#pbciblage

LTourist
mercredi 2 novembre 2005 à 18:18:05 | Re : Send Message Shift+Enter

pcpt

Administrateur CodeS-SourceS
re,
LParam contient la combinaison des touches

1 2

Cette discussion est classée dans : wm, return, shift, vk, 0postmessage


Répondre à ce message

Sujets en rapport avec ce message

Probléme avec SendMessage [ par FrostByte ] Je voudrais envoyer une frappe de touche via SendMessage à Firefox donc voici le code Public Const WM_KEYDOWN = &H100Public Const WM_KEYUP = &H101Publ Programmation fonction stockées Oracle [ par echoupe ] Salut!Voilà, je voudrais savoir comment écrire une fonction stockée sous Oracle qui me retourne un resulset et comment l'appeler depuis VisualBasic e puissance 4 bug non déclaré [ par coucou747 ] j'ai commencé un puissance 4, il marche bien en mode joueur ^^je bloques bug non déclaré, mozilla ne me dit rien, mais aparement la fonction iarouge puissance 4 bug non déclaré [ par coucou747 ] j'ai commencé un puissance 4, il marche bien en mode joueur ^^je bloques bug non déclaré, mozilla ne me dit rien, mais aparement la fonction iarouge return [ par coucou747 ] j'ai un return au milieu d'une fonction alors évidement ça ne marche pas, j'aimerais le mettre a la fin et tt mettre dans des variables temporaires, m Nbrs Factorielles [ par tofu ] Voila j'ai commencé à scripter quelques aliases pour faire des calculs avec les factorielles, si quelqu'un peut m'aider à optimiser un peu ça et/ou me probleme api WM_GETTEXT erreur incompréhensible [ par retaks666 ] alors lorsque j'ai obtenu le handle d'un textbox, et je veux obtenir son texte: voici ma fonctionPrivate Sub Command1_Click()szText = SendMessage(hand question basique ^^ : création de fonction. Comment écrire le retour? [ par Skooma ] Bonjour tout le mondeEncore une bête petite question ^^...à mon avis pas la dernière heheheEuh ben en fait j'ai suivi la synthaxe trouvée dans mon bou sub classer un prog commercial [ par gi ] bonsoir à tous,je cherche a sub classer un programme commercial. J'ai trouvé sur le site differentes sources qui traitent du sujet.(www.vbfrance.com/c WM_NCPAINT [ par vecchio56 ] Je veux dessiner dans la zone non client, j'intercepte donc le message WM_NCPAINT. Comme le suggère la MSDN, j'obtiens un dc grâce à GetDCEx. Le probl


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,515 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales