Что нового

[не баг] баг при запуске исполняемых файлов функцией Run, RunWait

ynbIpb

Скриптер
Сообщения
399
Репутация
110
Итак, сегодня обнаружил очень неудобный баг:
Дано некая директория с исполняемым файлом:
C:\bug\bug.exe (этот файл мне запускать не нужно, он просто лежит там)
В этойже директории находится подкаталог с другим исполняемым файлом:
C:\bug\bug dir\my prog2.exe (этот то мне и нужно запустить функцией Run)
Исполняю код: Run (@ScriptDir & "\my prog2.exe")
(выполняемый скрипт находится в подкаталоге "bug dir")
По идее должен запуститься my prog2.exe, а запускается bug.exe :shok:
А всё потомучто в пути к нашему второму файлу содержится имя первого файла C:\bug\bug dir\my prog2.exe и потом пробел.

Что скажете по этому поводу?
Я уже начал было подумывать что я свихнулся, пока не разгадал эту штуку.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: Баг при запуске исполняемых файлов функцией Run, RunWait

ynbIpb,
А если так:
Код:
Run('"' & @ScriptDir & '\my prog2.exe"')

У меня работает и Ваш вариант. (Windows XPx86 SP3)
 

VladUs

Скриптер
Сообщения
621
Репутация
181
Re: Баг при запуске исполняемых файлов функцией Run, RunWait

А так не требуются никакие лишнее ковычки.
Код:
ShellExecute( @ScriptDir & "\my prog2.exe")

Почему-то функции ShellExecute() и Run() по разному понимают один и то же путь.
Run() учитывает пробелы, а функции ShellExecute() все равно.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: Баг при запуске исполняемых файлов функцией Run, RunWait

VladUs [?]
А так не требуются никакие лишнее ковычки.
ShellExecute() не возвращает PID.
 

asdf8

Скриптер
Сообщения
564
Репутация
152
Re: Баг при запуске исполняемых файлов функцией Run, RunWait

Что скажете по этому поводу?
Я уже начал было подумывать что я свихнулся, пока не разгадал эту штуку.

В функции Run в первом параметре указывается и запускаемая программа и командная строка. А разделителем параметров ком. строки служит пробел, так что, при наличии пробелов в пути к запускаемой программе или в параметрах - двойные кавычки обязательны.
 
Автор
ynbIpb

ynbIpb

Скриптер
Сообщения
399
Репутация
110
Re: Баг при запуске исполняемых файлов функцией Run, RunWait

да, видимо это особенности ОС.
Всё что после пробела оно принимает за параметр.
Вот такой код работает корректно: Run ('"'&@ScriptDir & '\my prog2.exe"')

Вобщем рано я запаниковал))
Всем спасибо за разъяснения, название темы поправил [не баг]
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Верх