Une manière plus propre pour rendre un programme invisible?

Une manière plus propre pour rendre un programme invisible? - C++ - Programmation

Marsh Posté le 13-05-2010 à 04:58:04    

Bonjour à tous et toutes,
 
Voila un programme très simple, qui simule une pression de la touche Scroll Lock:

Code :
  1. #include <windows.h>
  2. void main()
  3. {
  4.     keybd_event(VK_SCROLL, 70, 0, 0);
  5.     keybd_event(VK_SCROLL, 70, KEYEVENTF_KEYUP, 0);
  6. }


Le problème c'est que ce programme ouvre une fenetre vide pendant quelques millisecondes.
 
Pour l'instant je n'ai pas trouvé d'autre moyen que de créer une application Win32 et d'utiliser:

Code :
  1. #include "stdafx.h"
  2. int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
  3. {
  4.     keybd_event(VK_SCROLL, 70, 0, 0);
  5.     keybd_event(VK_SCROLL, 70, KEYEVENTF_KEYUP, 0);
  6. }


Pour moi ce n'est pas une solution très propre, mon programme pesait 8 ko, maintenant 56 ko juste pour le rendre invisible...
 
Quelqu'un connaitrait-t-il une meilleure solution ?
 
Bon personellement cela ne me dérange pas trop, après tout c'est seulement 56 ko... mais je préfère faire les choses proprement. Il y a sûrement une solution plus simple que j'ignore alors je vous demande laquelle ;)
 
Merci d'avance.

Reply

Marsh Posté le 13-05-2010 à 04:58:04   

Reply

Marsh Posté le 13-05-2010 à 12:35:57    

armyman a écrit :

Bonjour à tous et toutes,
 
Voila un programme très simple, qui simule une pression de la touche Scroll Lock:

Code :
  1. #include <windows.h>
  2. void main()
  3. {
  4.     keybd_event(VK_SCROLL, 70, 0, 0);
  5.     keybd_event(VK_SCROLL, 70, KEYEVENTF_KEYUP, 0);
  6. }


Le problème c'est que ce programme ouvre une fenetre vide pendant quelques millisecondes.
 
Pour l'instant je n'ai pas trouvé d'autre moyen que de créer une application Win32 et d'utiliser:

Code :
  1. #include "stdafx.h"
  2. int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
  3. {
  4.     keybd_event(VK_SCROLL, 70, 0, 0);
  5.     keybd_event(VK_SCROLL, 70, KEYEVENTF_KEYUP, 0);
  6. }


Pour moi ce n'est pas une solution très propre, mon programme pesait 8 ko, maintenant 56 ko juste pour le rendre invisible...
 
Quelqu'un connaitrait-t-il une meilleure solution ?
 
Bon personellement cela ne me dérange pas trop, après tout c'est seulement 56 ko... mais je préfère faire les choses proprement. Il y a sûrement une solution plus simple que j'ignore alors je vous demande laquelle ;)
 
Merci d'avance.


 
 
Salut :)
 
Sous windows, si tu compiles une application avec un main(), ça sera une application console. Or, lorsqu'on lance une application console, la console est exécutée, puis le cette console exécute le programme. C'est la fenêtre de la console que tu vois apparaitre rapidement.
 
Un programme Win32 (donc non console), se fait en incluant windows.h , en déclarant un WinMain (comme tu as fait), et en activant quelques define ainsi que quelques options dans les propriétés du projet.
 
Tout ceci sous visual studio, avec les autres compilateurs, je ne sais pas comment ça fonctionne.

Reply

Marsh Posté le 04-06-2010 à 17:23:09    

visual studio n'est pas un compilateur

Reply

Marsh Posté le 04-06-2010 à 17:59:02    

nightwar a écrit :

visual studio n'est pas un compilateur


oui, enfin, on va pas parler de cl.exe dès qu'on veut parler du compilo de microsoft, hein


Message édité par theshockwave le 04-06-2010 à 17:59:18

---------------
last.fm
Reply

Marsh Posté le 04-06-2010 à 18:13:33    

nightwar a écrit :

visual studio n'est pas un compilateur


 
 
Non c'est un IDE. Mais il est fourni par défaut (et obligatoirement) avec un compilateur. Je parlais bien évidemment de cela, inutile de faire le malin.
 
edit : merci theshockwave  :jap:


Message édité par xilebo le 04-06-2010 à 18:13:57
Reply

Marsh Posté le 04-06-2010 à 18:41:30    

Dans un programme que j'avais ecrit il y a quelques temps, je cachais la console, malheureusement je n'ai pas access au code.
 
Mais tu devrais trouver des pistes sur google: http://www.cplusplus.com/forum/beginner/12001/

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed