Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [C] Problema nel lanciare comandi

    Salve ragazzi!
    Ho un problema stupidissimo a cui però non riesco a trovare una soluzione: facendo alcuni esperimenti sul lancio di eseguibili da codice (lato Windows), ho provato a lanciare il media player (C:\Programmi\Windows Media Player\wmplayer.exe) con il comando system, in questo modo
    codice:
    char* comando = "\"C:\\Programmi\\Windows Media Player\\wmplayer.exe\"";
    system(comando);
    e fin qui nessun problema.
    Il problema sorge nel momento in cui voglio passare una canzone al media player, ad esempio "C:\Documents and Settings\All Users\song.mp3". Se scrivo
    codice:
    char* comando = "\"C:\\Programmi\\Windows Media Player\\wmplayer.exe\" \"C:\\Documents and Settings\\All Users\\song.mp3\"";
    system(comando);
    mi da errore in fase di esecuzione, dicendomi che non trova l'eseguibile "C:\Programmi\Windows"...

    Qualche suggerimento?

  2. #2
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    Non penso ci voglia lo slash finale dopo il nome dell'eseguibile.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  3. #3
    Il backslash dopo il nome dell'eseguibile è di escape e serve per far si che quelle virgolette non terminino la stringa ma ne facciano parte...

  4. #4
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    perchè usare la system? usa la exec o la shellexecute.. o meglio ancora la createProcess..

    la system è il male

  5. #5
    la exec che io sappia è solo per linux...con ShellExecute ho risolto

    ma per curiosità, perchè dici che la system è il male?

  6. #6
    Originariamente inviato da Saphrosit
    ma per curiosità, perchè dici che la system è il male?
    1, 2, 3

    ... forse dovremmo scrivere una pillola che unifichi i vari motivi, la domanda è molto frequente e tutte le volte mi tocca ricercare il post in cui ci sono i link a questi tre post.
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    chiedo scusa, non credevo fosse una domanda così frequente...

    ad ogni modo grazie della risposta

  8. #8
    Originariamente inviato da Saphrosit
    chiedo scusa, non credevo fosse una domanda così frequente...
    Nulla di cui chiedere scusa, la mia seconda frase era una proposta ai piani alti di riunire le informazioni dei tre post in questione e darci più visibilità (con un link tra le pillole, ad esempio), proprio perché è un tema ricorrente.
    ad ogni modo grazie della risposta
    Di niente, alla prossima!
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.