· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.WIN32 —› запуск внешних приложений

Посл.отвђт Сообщенiе


Дата: Апр 8, 2003 20:14:44

Помогите, кто знает ...

запускаю внешнее приложение с командной
строкой - полным путём к файлу:

invoke CreateProcess app,comd_line,....

и вываливаюсь с обрезанным по пробелам
именем файла ....

если это тяжкое наследие MSDOS, какая тогда
функция перекодирует к виду C:\MYDOCU~1\...

sorry, если ликбез ...


Дата: Апр 8, 2003 22:02:54

Надо попробовать заключить в "":
""C:\\Program Files\\Adobe\\PhotoShop\\PS.EXE" my_image.gif"


Дата: Апр 8, 2003 23:36:15

CreateProcess NULL,""C:\\..." ?.?",...

опять не пашет :((
почему '\\', а не '\', или всё равно ...


Дата: Апр 9, 2003 02:20:13

можно и через ShellExecute запускать
или вот - GetShortPathNameA


Дата: Апр 9, 2003 04:32:35

Аноним Апр 8, 2003 23:36:15
опять не пашет
Строчку надо поместить в кавычки чуть-чуть не так.
[code]
comd_lime db '"C:\Мои документы\...." ...', 0
[/code]
т.е. в двойные кавычки только lfn путь (или пути если их несколько).

почему '\\', а не '\', или всё равно
В языке Си один слеш является признаком управляющей последовательности, а чтобы использовать в строке один слеш надо поставить два. Если Вы пишите на asm’е, то используйте один.

AsmGuru62
Почему в Вашей строке (явно из Си) нет слеша перед внутренними двойными кавычками?

C0RPSE
ShellExecute дает меньше возможности следить за запущенным процессом.


Дата: Апр 9, 2003 11:45:48

ОК, спасибо, всё заработало:

invoke wsprintf ADDR _buff,'"%s" "%s\%s"',ADDR _app,ADDR _dir,ADDR _file
invoke CreateProcess NULL,_buff,...


Дата: Апр 9, 2003 18:44:10

"...Почему в Вашей строке (явно из Си) нет слеша перед внутренними двойными кавычками?..."
---
Может быть только одна причина:
1. Слишком поздно и я уже сплю
---
Сильно извиняюсь...
но главная идея была: заключение в кавычки.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.072