CreateDesktop

cs_Manson Messages postés 137 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 30 septembre 2004 - 29 juil. 2003 à 16:16
sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 - 31 juil. 2003 à 15:40
Salut a tous,

voila j'arrive a cree un nouveau desktop, dans lequel
j'arrive a executer un cmd (je n'arrive pas a executer autre
chose sauf par l'intermediaire du cmd). J'aimerais
chopper les touches presses pour pouvoir switcher
d'un desktop a l'autre, mais je n'y arrive pas.
Je voudrais chopper le Ctrl+Alt+Droite ou +Gauche.

Si quelqu'un a une idee.

Si quelqu'un a reussi a lancer autres chose qu'un cmd ca serait simpa aussi. J'arrive a lance un nouveau explorer
dans mon nouveau desktop que par l'intermediaire du
cmd.

d'avance merci.

Arno

8 réponses

sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 1
29 juil. 2003 à 16:44
essaye avec la fonction GetAsyncKeyState peut-etre
0
cs_Manson Messages postés 137 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 30 septembre 2004
29 juil. 2003 à 23:19
Ouai j'ai essasye ca, mais je crois que je mis prend comme
une branche. T'aurais pas un exemple, paske moi j'ai
fais une boucle qui va de 1 a 255, et qui scan chaque.
Mais j'arrive pas a chopper le Ctrol + Alt + autre en meme
temps.

Merci de ton aide.

Arno
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
29 juil. 2003 à 23:40
Salut,
Pour l'idée avec GetAsyncKeyState:
GetAsyncKeyState(VK_KEY)&0x8000 retourne un truc different de 0 si la touche VK_KEY est pressée, sinon 0.
VK_KEY est un virtual key code, voir msdn pour trouver ceux de la touche ctrl alt et droite/gauche.
Pour tester plusieurs touches en meme temp, tu combine les GetAsyncKeyState avec des operateurs logiques.
0
cs_Manson Messages postés 137 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 30 septembre 2004
30 juil. 2003 à 00:29
Ok je vais essayer ca.

C'est simpa d'aider.

Grand merci.

Arno
0

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

Posez votre question
cs_Manson Messages postés 137 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 30 septembre 2004
30 juil. 2003 à 15:17
Salut,

Bon ca c'est bon je m'en suis sortie (meme si c'est pas
le top). J'essai maintenant de deplacer une fenetre
d'un desktop a l'autre, mais je n'y arrive pas.Je ne trouve
aucune fonction permettant de le faire.

Quelqu'un a une idee ?

Arno
0
sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 1
31 juil. 2003 à 02:37
le masquage est inutile :)
0
cs_Manson Messages postés 137 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 30 septembre 2004
31 juil. 2003 à 08:37
Tu pourrais pas me filer un petit exemple de ta technique,
paske moi dans le genre, fonction qui bouffe du cpu y'a pas
mieux. (pourtant j'ai cree un nouveau thread que j'ai
assigne a faible priorite).

Arno
0
sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 1
31 juil. 2003 à 15:40
arf, je suis vraiment desoler, j'avais poster un bout de code tres fonctionnel, mais j'ai du me planter de section, ou il y a eu un probleme au niveau du transfer car effectivement, il n'est pas present :/

bon je reposte... tu va voir, c'est franchement pas compliquer :)

tout d'abbord, je te conseil d'utiliser une structure pour stoquer tes informations :)

cette structure te permettra de stoquer tes infos et de pouvoir les transporter super facilement, car afin d'avoir un code propre, je te conseil d'avoir une fonction qui fait l'acquisition des evenement, et une autre qui les traite, et ainsi dans ta boucle d'evenement, tu n'aura que 2 appels, a moins que tu rajoute du code specifique :)

donc, voila le code :

#include <windows.h>
#include <stdio.h>

typedef struct s_keys
{
int ctrl;
int alt;
int right;
int left;

} t_keys;

int main()
{
t_keys k;

while (42)
{ (GetAsyncKeyState(VK_CONTROL)) ? (k.ctrl 1) : (k.ctrl 0); (GetAsyncKeyState(VK_MENU)) ? (k.alt 1) : (k.alt 0); (GetAsyncKeyState(VK_RIGHT)) ? (k.right 1) : (k.right 0); (GetAsyncKeyState(VK_LEFT)) ? (k.left 1) : (k.left 0);

if (k.ctrl && k.alt && k.right)
printf("Ctrl+Alt+Droite\n");
if (k.ctrl && k.alt && k.left)
printf("Ctrl+Alt+Gauche\n");
Sleep(10);
}
return (0);
}

voila, donc pour expliquer, les 4 expressions ternaires (les lignes ou il y a les appels a GetAsyncKeyState) sont "l'acquisition des evenement", et ceux ci devrais ce trouver dans une fonction... je ne l'ai pas fait la pour que tout soit reuni et plus simple a lire sur le forum :)

ensuite il y a l'affichage par les printf, ceci est le traitement, il ne te suffira plus que d'appeler les fonctions adequates a la place des printf :)

si tu trouve que le code est trop sensible au appuyes de touches, fait a la bourrin et met un petite tempo apres les printf

genre :

if (k.ctrl && k.alt && k.right)
{
printf("Ctrl+Alt+Gauche\n");
Sleep(200);
}

ceci calme la sensibiliter, mais sache que c'est une pute alternative, ce n'est tres franchement pas la meilleure methode, et je te la deconseille presque :)

et pour finir, le petit Sleep(10); que tu voit a la fin de la boucle d'evenement, bah c'est tout simplement une finte super simple pour eviter justement que la boucle bouffe tout le cpu, et tu vera que juste ca, ca le refait tomber a 0% :)

voila, j'espere que ca a pu t'aider et que tu as appris des choses :)

ciao :)
0
Rejoignez-nous