begin process at 2010 02 10 08:43:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

System

 > 

Comment transmettre un code de type ctrl + touche sur des pipes via Writefile.


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

Comment transmettre un code de type ctrl + touche sur des pipes via Writefile.

mardi 31 juillet 2007 à 17:34:38 | Comment transmettre un code de type ctrl + touche sur des pipes via Writefile.

Sim 2005

J'utilise des pipes pour rediriger les entrées/sorties d'un programme console vers un programme hôte, et j'aimerais pouvoir envoyer des evenements de type ctrl+c. Pour écrire sur l'entrée du programme console, j'utilise Writefile. Comment trouver ce qu'il faut mettre dans le buffer pour envoyer ce message? j'ai essayé sendmessage et keybd_event avec le handle de l'application mais ça ne fonctionne pas comme les entrées sont redirigées.
Il faut donc utiliser WriteFile, et l'argument qui contient le message à envoyer sur la console estun buffer de type BYTE.
Il me faudrait donc savoir à quels bytes correspondent tel ou tel évenement clavier. ctrl + break....
Merci
mardi 31 juillet 2007 à 18:14:03 | Re : Comment transmettre un code de type ctrl + touche sur des pipes via Writefile.

Sim 2005

Ca revient en fait à générer un évènement de type ctrl via WriteFile. Si c'est possible comment faire.
mardi 31 juillet 2007 à 18:35:37 | Re : Comment transmettre un code de type ctrl + touche sur des pipes via Writefile.

Sim 2005

WriteFile(hChildStdinWr, (DWORD *)0x02E03, sizeof(0x02E03), &dwWritten, NULL); ne marche pas. 0x02E03 est le scan code correspondant à ctrl+c.
mardi 31 juillet 2007 à 19:46:44 | Re : Comment transmettre un code de type ctrl + touche sur des pipes via Writefile.

Sim 2005

Réponse acceptée !
La solution est d'utiliser GenerateConsoleCtrlEvent(CTRL_C_EVENT, Id du process) avec un procesus créé avec CREATE_NEW_PROCESS_GROUP. Cependant un bug de windows (reconnu) fait que ce message n'est pas traité. CTR_BREAK_EVENT marche mais il ne fonctionne pas comme ctr c.
mardi 31 juillet 2007 à 21:54:17 | Re : Comment transmettre un code de type ctrl + touche sur des pipes via Writefile.

vecchio56

Administrateur CodeS-SourceS
WriteFile(hChildStdinWr, (DWORD *)0x02E03, sizeof(0x02E03), &dwWritten, NULL);

Normal que ca ne marche pas, 0x02E03 n'est pas une adresse valide. Il faut faire ceci:

DWORD dwCode = 0x02E03;
WriteFile(hChildStdinWr, &dwCode, sizeof dwCode, &dwWritten, NULL);

_____________________________________
Un éditeur de ressources gratuit pour Windows

mardi 31 juillet 2007 à 22:50:02 | Re : Comment transmettre un code de type ctrl + touche sur des pipes via Writefile.

Sim 2005

En réalité c'est ce que j'ai fait, mais pour simplifier dans le post j'ai écrit
WriteFile(hChildStdinWr, (DWORD)0x02E03, sizeof(0x02E03), &dwWritten, NULL) le * au niveau de DWORD est à enlever, il ne s'agit pas d'une adresse en effet. (Trop de précipitation)
mardi 31 juillet 2007 à 22:52:03 | Re : Comment transmettre un code de type ctrl + touche sur des pipes via Writefile.

vecchio56

Administrateur CodeS-SourceS
Tu a écrit quoi exactement? Ni (DWORD)0x02E03 ni (DWORD*)0x02E03 ne convient

_____________________________________
Un éditeur de ressources gratuit pour Windows

mardi 31 juillet 2007 à 22:58:11 | Re : Comment transmettre un code de type ctrl + touche sur des pipes via Writefile.

Sim 2005

Euh, (LPCVOID)(DWORD)...
mardi 31 juillet 2007 à 23:03:25 | Re : Comment transmettre un code de type ctrl + touche sur des pipes via Writefile.

vecchio56

Administrateur CodeS-SourceS
Ca risque pas de marcher non plus alors

_____________________________________
Un éditeur de ressources gratuit pour Windows

mardi 31 juillet 2007 à 23:14:11 | Re : Comment transmettre un code de type ctrl + touche sur des pipes via Writefile.

Sim 2005

Non non, ce que j'ai écrit dans le code c'est ce que t'as écrit...

1 2

Cette discussion est classée dans : ctrl, programme, type, writefile, pipes


Répondre à ce message

Sujets en rapport avec ce message

cacher une programme console au ctrl alt sup [ par petitchech ] j'aimerai savoir comment cacher un programme au ctrl alt sup. type ColeVariant [ par MelB ] Bonjour, Je voudrais savoir comment on peut coder un ColeVariant. Je n'arrive pas à l'emploer comme un autre type qu'il suffit de définir au début du Converton type wxWidgets [ par LordBob ] Bonjour a tous,voila tout d'abord désoler si je ne pose pas la question au bon endroit, mais je ne savais pas ou la poser d'autre. Donc voila j'e prog CTRL ALT SUPPR [ par VBFRANCE ] Bonjour a tous,Je bloque depuis plusieurs jours sur un problème récalcitrant.J'essaie de faire un programme qui simule un CTRL ALT SUPP pour ouvrir ou Une chose m'echappe [ par julienbornet ] Bonjour alors voial j'ai un petit probleme dont je n'arrive pas a trouver la cause. Bon comme c'est assez complexe a expliquer je vais essayer d'etre utiliser plusieurs fois une variable de type wstring [ par weahgeorges ] Bonjour,Je rédige un programme dans lequel j'utilise des variables de type wstring. 1) J'ai essayé d'initialiser la meme variable plusieurs fois, et d Problème de ComboBox [ par ketchupy45 ] Bonjour, j'ai une ComboBox avec un controle de type CComboBox attaché. Je voudrais ajouter 2 choix au menu déroulant de la ComboBox j'ai fait ça mais MFC Help [ par torNADoS ] Salut à tous, Voila mon programme est composé de 2 Formes (type FormView) dans chaqun j ai creer un bouton.Si je clique sur un bouton il m'affiche l'a Editeur Midi type Piano Roll [ par garthos ] je suis en train de travailler sur un séquenceur midi et là j'attaque le création d'un éditeur graphique type piano roll mais je ne sais pas du tout c recupérer les url dans un programme c++ [ par stef5959 ] Bonjour,J'aimerai récupérer dans un programme en C++ (un espion) , toutes les URL (les www....) des sites internets que sont visités (à l'aide de ie) 


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,468 sec (3)

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