les parenthèse et les quotes system()
Répondre à la discussion
Affichage des résultats 1 à 17 sur 17

les parenthèse et les quotes system()



  1. #1
    holala02

    les parenthèse et les quotes system()


    ------

    Bonjour

    je veux executer mon programme situer dans ce chemin
    C:\Users\adrian\AppData\Roamin g\Microsoft\Windows\Start Menu\Programs\Startup\programm e.exe

    pour celà j'utilise la focntion
    Code:
    system("");
    et voici mon code:
    Code:
    system("start \"C:\\Users\\adrian\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\programme.exe"");
    mais là au lien d'indiquer mon nom d'utilisateur je veux passer par une variable globale:
    Code:
    getenv("USERNAME")
    et donc je fais ça:
    Code:
    	system("start \"C:\\Users\\getenv("USERNAME")\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\programme.exe"");
    malheuresement ça marche pas, je ne maitrise pas quand il faut ouvrir et quand il faut femer les slash et les quotes :/

    qualqu'un peut m'aider ?

    Merci d'avance

    -----

  2. #2
    pm42

    Re : les parenthèse et les quotes system()

    Il faut faire quelque chose comme ça :

    Code:
    system("start \"C:\\Users\\" + getenv("USERNAME") + "\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\programme.exe"");
    Suivant le langage que tu utilises, ce n'est pas forcément avec l'opérateur + mais cela devrait marcher en C#, en Java et dans d'autres.
    Mais pas en C.

  3. #3
    holala02

    Re : les parenthèse et les quotes system()

    ça marche pas :/ j'ai meme teste ça:
    string zpath1, zpath2, zpath3;
    zpath1 = "C:\\Users\\";
    zpath2 = zpath1 + getenv("USERNAME");
    zpath3 = zpath2 + "\\AppData\\Roaming\\Microsoft \\Windows\\Start Menu\\Programs\\Startup\\Conso leApplication23.exe";

    system(zpath3.c_str());

    ça marche pas probleme d'espace dans le mot Start Menu :/

  4. #4
    Jack
    Modérateur

    Re : les parenthèse et les quotes system()

    Citation Envoyé par holala02 Voir le message
    et donc je fais ça:
    Code:
        system("start \"C:\\Users\\getenv("USERNAME")\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\programme.exe"");
    malheuresement ça marche pas, je ne maitrise pas quand il faut ouvrir et quand il faut femer les slash et les quotes :/

    qualqu'un peut m'aider ?
    Et comme ça, ça marche?
    Code:
        system("start \"C:\\Users\\getenv("USERNAME")\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\programme.exe\"");

  5. A voir en vidéo sur Futura
  6. #5
    pm42

    Re : les parenthèse et les quotes system()

    Citation Envoyé par holala02 Voir le message
    ça marche pas
    Si, ça marche très bien vu que ta demande était de construire une chaîne de caractères avec le résultat du getenv dedans.

    Citation Envoyé par holala02 Voir le message
    ça marche pas probleme d'espace dans le mot Start Menu :/
    C'est un autre problème. Il faut rajouter des guillemets autour de ta commande si elle contient des espaces : https://stackoverflow.com/questions/...ces-in-command

    Exactement comme ce qui se passe sur la ligne de commande. Ou ne pas utiliser system mais les appels système Windows comme CreateProcess.

  7. #6
    holala02

    Re : les parenthèse et les quotes system()

    il me donne ça comme probleme:

    Nom : aaa.jpg
Affichages : 101
Taille : 21,9 Ko

  8. #7
    Jack
    Modérateur

    Re : les parenthèse et les quotes system()

    PM42 a raison. Il faut construire la chaine en concaténant les bouts variables et constants. Pour appeler getenv, il ne faut pas que l'appel soit inclus dans une chaine.
    Dernière modification par Jack ; 27/05/2020 à 23h04.

  9. #8
    Jack
    Modérateur

    Re : les parenthèse et les quotes system()

    ###################### Des fois, je dis n'importe quoi.
    Dernière modification par Jack ; 27/05/2020 à 23h06.

  10. #9
    holala02

    Re : les parenthèse et les quotes system()

    USERNAME c'est une variable d'environnement

    si tu tapes: printf("%s", getenv("USERNAME"));

    tu auras le nom d'utilisateur de l'ordinateur

  11. #10
    pm42

    Re : les parenthèse et les quotes system()

    Citation Envoyé par Jack Voir le message
    Oui, j'ai oublié "d'echapper" les quotes de USERNAME.
    Comment as-tu défini USERNAME exactement?
    non tu as oublié de faire le getenv en dehors et de concatènera comme expliqué avant et il a recopié tel quel.

  12. #11
    Jack
    Modérateur

    Re : les parenthèse et les quotes system()

    Oui, j'ai rectifié mon message précédent entre-temps.

  13. #12
    holala02

    Re : les parenthèse et les quotes system()

    peux tu donc me montre la solution s'il vous plait, je me sens bloquer, j'arrive pas à comprendre ces parenthèses et les quotes d'une maniere illogique :/

    y'a il pas une fonction qui peut m'aider sans passer par system() ?

    sinon, n'import quel solution et c'est tout

  14. #13
    Jack
    Modérateur

    Re : les parenthèse et les quotes system()

    Citation Envoyé par holala02 Voir le message
    y'a il pas une fonction qui peut m'aider sans passer par system() ?
    Relis le message #5 de PM42

  15. #14
    holala02

    Re : les parenthèse et les quotes system()

    aucun probleme pour win32
    sans que j'ai encore ce probleme
    Nom : aa1a.jpg
Affichages : 96
Taille : 22,1 Ko
    Dernière modification par holala02 ; 27/05/2020 à 23h40.

  16. #15
    umfred

    Re : les parenthèse et les quotes system()

    le plus simple c'est peut-être de mettre %username% dans la chaine, sans utiliser la fonction getenv()

  17. #16
    pm42

    Re : les parenthèse et les quotes system()

    Citation Envoyé par umfred Voir le message
    le plus simple c'est peut-être de mettre %username% dans la chaine, sans utiliser la fonction getenv()
    Le plus simple serait d'être méthodique au lieu de mélanger 3 étapes de l'explication sans chercher à comprendre.

    Parce que là, on est passé des string c++ au wchar* tout en gardant l'opérateur + alors que c'était une source possible de problème signalée dès la 1ère réponse.
    Donc on se retrouve avec un problème qui était réglé pourtant dès le début du fil.

  18. #17
    umfred

    Re : les parenthèse et les quotes system()

    Sans parler du fait que mettre un exe directement dans ce répertoire là (le menu démarrer/windows > démarrage) c'est pas du tout la règle windows; on y met plutôt des raccourcis

Discussions similaires

  1. Développement d'une parenthèse
    Par invite7afc7062 dans le forum Mathématiques du collège et du lycée
    Réponses: 9
    Dernier message: 27/02/2018, 20h20
  2. Impossible en local d'activer les magic quotes
    Par uneautreterre dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 25/01/2014, 12h09
  3. Fond ecran noir, system chek, "failed to save all the components for the system file \ system32...
    Par invitedad3d485 dans le forum Sécurité et malwares : désinfectez votre machine
    Réponses: 10
    Dernier message: 23/03/2012, 09h33
  4. [LaTeX] La parenthèse invisible
    Par invitea07f6506 dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 03/12/2010, 18h30
  5. parenthèse angulaire
    Par invite3d710e98 dans le forum Mathématiques du supérieur
    Réponses: 5
    Dernier message: 18/05/2009, 23h38