Отсутствует обратный слеш?- JScript или VBScript - PullRequest
0 голосов
/ 30 октября 2011

Попытка написать макрос распознавания речи Windows. Код приведен ниже.После выполнения игрок возвращает «D: MusikMedia \ Song1.mp3 не найден».То есть обратная косая черта устраняется.Я попытался указать путь с самим аргументом в oShell.run, но возвращает ту же ошибку.Однако, как вы можете видеть, косая черта непосредственно перед именем аудиофайла сохраняется.И пробелы также сохраняются в имени файла, хотя я не знаю, совпадает ли это с путем.В любом случае, я могу заставить это работать?ИЛИ не могли бы вы показать мне, как это делается в VBScript?

Кроме того, есть странная проблема, заключающаяся в том, что я могу запускать программы, если они установлены либо в папке system32, либо на диске (а не внутри папок)внутри диска), например, D: \ KMPlayer.exe или E: \ KMPlayer.exe.Если путь, скажем, E: \ Softwares \ KMPlayer \ KMPlayer.exe, он не открывается.Итак, помогите, пожалуйста?:)

<?xml version="1.0" encoding="UTF-16"?>
<speechMacros>
<command>
<listenFor>Play [file]</listenFor>
<setTextFeedback speak="true">Playing {[file]}</setTextFeedback>
<script language="JScript">
<![CDATA[
var oShell = new ActiveXObject("WScript.Shell");
oShell.Run('"D:\KMPlayer.exe" "{[file.fileName]}"');
]]>
</script>
</command>
<fileNames name = "file" propname = "fileName" directory="D:\Media\Musik\"        includeSubdirectories="true"/>
</speechMacros>

Спасибо!:)

1 Ответ

0 голосов
/ 31 октября 2011

В строковых литералах Javascript вы должны экранировать "\" на "\\". См. документы. Итак:

oShell.Run('"D:\KMPlayer.exe" "{[file.fileName]}"');

==>

oShell.Run('"D:\\KMPlayer.exe" "{[file.fileName]}"');

Атрибуты XML (например, directory="D:\Media\Musik\" следуют своим собственным правилам: здесь не должно быть \ ".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...