Comme tu as manifestement décidé de te frotter sérieusement à la question, il va te falloir une approche plus rigoureuse que l'improvisation coutumière aux amateurs. Si tu en fais l'éconnomie, les bugs ne vont pas te louper, et y'en a certains qui demangent bien profond! Il faut absolument éviter de verser dans le bricollage des petits génies à la Microsoft.
Faire simple, ça n'est pas faire facile. Si ce que je viens de dire donne l'impression d'une demonstration d'autorité, et bien y'a un peu de ça. Il y a des occasions qui s'y prettent bien et je pense que c'en est une que je ne pouvais pas ratter.
Chercher à se débarasser d'un problème le plus rapidement possible est le meilleur moyen d'attirer les enmerdements et tu viens justement d'y mettre les doigts
A mon avis, TARGET est un outil qui ne peut donner de bons résultats qu'après une approche disciplinée, tout comme, par exemple, Photoshop, WinWord ou DCS. Il se peut que la barre ait été mise un peu haut par Thrustmaster, mais les résultats peuvent aussi être à la hauteur.
Donc,
1 - Ce fourbi de backslash, guillemets et cette jonglerie avec les espaces est une véritable fabrique à bugs.
2 - Il faut donc limiter le codage de chaines de caractère sous forme litérale (entre guillemets, par opposition à leur usage par l'intermédiaire de variables).
3 - L'usage des backslash comme séparateur de champ est une hérésie de Microsoft et on n'est pas obligé de tomber dans le panneau. Ce (méta-)caractère ne doit servir qu'à altérer la signification du suivant.
4 - Comme Microsoft a fini par supporter les slash comme séparateur, mieux vaut remplacer "Target\\scripts\\BS" par "Target/scripts/BS", car c'est tout de même plus lisible.
5 - Cette unique ligne de code est suffisament illisible pour masquer l'absence d'un élément essentiel pour que ça puisse marcher (je suis même étonné que tu entendes quelque chose à l'exécution).
1: Lisibilité: Quatre erreurs évitables en rendant tout ça plus lisible (et peut-être le copier-coller plus fidèle):
Code : Tout sélectionner
[size=84]
[font="Lucida Console"]
...................................................................[color=red][b]v[/b][/color]-(espace en trop)......[color=red][b]v[/b][/color]-(manque un espace).......[color=red][b]v[/b][/color]-(espace en trop).................................[color=red][b]v[/b][/color]-(espace en trop)
system("spawn -w \"C:\\Users\\christophe_admin\\Documents\\Target\\ scripts\\BS\\BS_Sound\"\"C:\\Users\\christophe_adm in\\Documents\\Target\\scripts\\BS\\BS_Sound\\Wind ows Hardware Insert.wav\"");
...mais ce serait toujours aussi peu lisible:
system("spawn -w \"C:\\Users\\christophe_admin\\Documents\\Target\\scripts\\BS\\BS_Sound\" \"C:\\Users\\christophe_admin\\Documents\\Target\\scripts\\BS\\BS_Sound\\Windows Hardware Insert.wav\"");
[/SIZE]
[/font]
3: Plus besoin de mettre des \" pour introduire des guillemets entre guillemet:
4: / a la place des \\
Code : Tout sélectionner
[font="Lucida Console"]
alias SOUND_FOLDER = "C:/Users/christophe_admin/Documents/Target/scripts/BS/BS_Sound";
alias SOUND_FILE = "Windows Hardware Insert.wav";
[/font]
5: Faire du bruit sous Windows consiste à appeler un programme en lui passant un fichier son.
- La présence d'un répertoire sur la ligne de commande pour appeler un exécutable Windows sert à certains programmes qui vont alors y chercher un fichier de configuration.
- Son utilité dépend donc de la commande en jeu. En principe on pourrait se contenter de faire System("SoundPlay.exe C:/Sounds/sound1.wav");
Un exemple avec mplayerc.exe: (Media player classic)
Code : Tout sélectionner
[font="Lucida Console"]
alias SOUND_FILE = "C:/LOCAL/GAMES/SOUND/Speech\ Misrecognition.wav"
alias SOUND_EXE = "C:/LOCAL/XP/Program\ Files/Media\ Player\ Classic/mplayerc.exe"
// Appel d'une fonction qui s'occupera des concaténations
spawn_path_arg(SOUND_EXE, SOUND_FILE);
[/font]
...y'a vraiment de quoi faire !