PostMessage

cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 - 26 déc. 2003 à 21:01
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 - 29 déc. 2003 à 18:43
Salut a tous,
voila j'essaie de similer la pression de la touche Windows et M pour pouvoir réduire toutes les fenetres visibles, je fait donc:
PostMessage(NULL, WM_KEYDOWN, VK_LWIN && 0x4D, NULL);


seulement rien je ne se produit vous aurriez une solution?
Bob...

"La chance accorde ses faveur aux esprits avertis..."

21 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 déc. 2003 à 21:46
T'as pas poste une source qui devait faire cela ?
BruNews, ciao...
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
26 déc. 2003 à 22:17
si mais on m'a dit que en appuyant sur la touche windows et M sa fesait le meme resultat, j'ai posté la source car il me semble qu'elle pourrait quand meme servir à d'autre personne... la reduction des fenetres par ma source est assez lente, alors je voulais faire en sorte que le programme simule la pression des touches Windows et M pour que la reduction des fenetres soit plus rapide (mais je veux faire, par simple curiosité de savoir comment faire)... J'ai donc écrit le bout de code qui est au dessus, mais ca marche pas, tu pourrais pas me dire pourquoi?
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 déc. 2003 à 22:25
PostMessage(NULL pas la peine d'aller plus loin, faut un hwnd valide.
Essaie:
PostMessage(HWND_BROADCAST, ...
BruNews, ciao...
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
26 déc. 2003 à 22:42
non j'ai deja essayer et ca ne marche pas...
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0

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

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 déc. 2003 à 22:56
T'as remarque que j'avais mis des ..., sur que chaque fenetre se fout du rccourci clavier.
Faudrait que je regarde ta source, anormal que soit lent alors que c'est une operation hyper rapide. Faut revoir ce que tu fais dans EnumWindows().
BruNews, ciao...
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
26 déc. 2003 à 23:07
oui j'ai remarqué que t'avais mis des ..., mais j'ai beau remplir la fonction comme tu la 'modifié' cela ne marche pas...
sinon pour la source que j'ai posté qui est lente, moi je vois pas pourquoi, c'est pour ca que si je simule le raccourci, la reduction des fenetres sera plus rapide !!!
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 déc. 2003 à 23:40
Je suis alle voir ta source, gros malaise. Avant de commencer a taper du code faut reflechir chouia au deroulement du prog.
Tu fais un hook GLOBAL !!! ta procedure risque fort d'etre lancee plusieurs fois au lieu d'une seule, il manque le systeme de synchro pour savoir s'il ne vient pas d'etre deja lance depuis la derniere frappe clavier.
BruNews, ciao...
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
26 déc. 2003 à 23:52
et comment jele faire ce system de synchro?
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
27 déc. 2003 à 00:04
mais je suis bien obligé de faire un hook global, parce que si je le fait pas et que la fenetre active n'est pas celle de mon programme, bah si je fait TAB, rien ne va se passer !!!
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
27 déc. 2003 à 00:05
Mets un indic de derniere touche 0 ou 1 pour savoir s'il y a eu autre chose depuis TAB par exemple.
Et pense bien que la dll a une instance separee dans chaque processus !!! Suffit de chercher un peu dans les sources, tout ceci y a ete decrit par divers auteurs (2 au moins dont je me souviens).
BruNews, ciao...
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
27 déc. 2003 à 00:22
tu voudrais pas modifié ce qui va pas et me l'envoyer stp, car je comprend pas tres bien ce qui faut changer...
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
27 déc. 2003 à 00:44
Non pas de code 'pret a porter' sinon au prochain probleme tu seras toujours dans la mouise, tu dois comprendre ce qui se passe et resoudre en consequence.
Une variable globale dans la dll:
int baction = 0;
dans l'analyse des touches:
if(wParam == VK_TAB) {
if(baction) {
baction = 0; // de suite car URGENCE
ReductionFenetres; // seulement maintenant
}
}
else baction = 1; // wParam != VK_TAB

baction doit etre partage entre toutes les instances de la dll sinon inoperant, pour cela je te laisse chercher un peu.
L'instance qui installe le hook place de suite baction = 1.

BruNews, ciao...
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
27 déc. 2003 à 01:04
deja je ne comprend pourquoi le fait de rajouter la variable baction changerai quelque chose a mon programme, ensuite si je modifie la dll comme tu me le dit, la fonction concerné est donc maintenant comme ceci:

LRESULT CALLBACK kbdWinAmp(int nCode, WPARAM wParam, LPARAM lParam) 
{
if(nCode >= 0) 
{
if(wParam == VK_TAB)
{
if(baction)
{
baction = 0;
EnumWindows((WNDENUMPROC) EnumWindowsProc, 0);
}
}
else
{
baction = 1;
}
}

 return CallNextHookEx(hhk, nCode, wParam, lParam);
}


or cela ne change rien parce ke une fois la dll compilé et le programme exécuter lors de l'appuis sur la touche TAB rien ne se passe...
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
27 déc. 2003 à 01:12
Et le dernier paragraphe de mon precedent message ?
BruNews, ciao...
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
27 déc. 2003 à 01:18
ok j'avais pas fait gaffe, je vais chercher un peu et je verrai bien... sinon merci pour ton aide !!! :)
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
27 déc. 2003 à 14:16
Désolé de vous interrompre, mais pour revenir au problème de départ tu peux faire comme ca:

#include <windows.h>

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
keybd_event(VK_LWIN, 0, 0, 0);
keybd_event(0x4D, 0, 0, 0);
keybd_event(0x4D, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0);
return 1;
}
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
29 déc. 2003 à 00:46
Salut,
bon je suis désoler mais je n'arrive pas à trouver la solution avec cette variable baction :sad) , alors stp BruNews donne moi la solution et puis si j'ai la solution, je comprendrais bien comment ca se passe...
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
29 déc. 2003 à 00:59
car en fait j'ai fait 2-3 trucs mais ca ne change rien à l'execution de mon programme, la réduction des fenetres est toujours aussi lente !!!
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
29 déc. 2003 à 01:42
ou sinon tu donne l'adresse des sources qui peuvent m'aider a resoudre mon problème pour que j'analyse leur code est corriger ma source.
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
29 déc. 2003 à 11:53
J'ai mis en source, version ultra simple et resultat instantane.
BruNews, ciao...
0
Rejoignez-nous