![]() |
mdm.System.exec() и флеш-проектор-8
Вложений: 1
Как известно 8-й ФП в составе проектора (exe) имел один неприятный глюк - если путь расположения этого exe имел в своем составе русские буквы - то невозможно было что-то подгрузить в такой проектор.
Также известен был и частичный путь решения проблемы - добавление вперед слеша в пути подгружаемого файла. А теперь собственно проблема с цинком: если цинк запускает такой внешний проектор через команду System.exec(), то флеш-проектор не подгружает в себя другие файлы! Т.е. надо убирать внутри добавленные слеши и переводить проектор под 9-й ФП (для решения проблемы с русскими путями) add: Не пойму я никак, что же такое цинк вытворяет с экзешником, что тот перестает запускаться (вернее подгружать в себя)? Ведь сам по себе экзешник работает. Может System.exec() как-то криво открывает проектор? add2: Нет, это просто издевательство (см. аттач). Делаем экзешник в 8-м флеш редакторе (чтобы был внедрен ФП8) из файла cover.fla и запускаем - все работает отлично! Но стоит тот же экзешник запустить из цинка mdm.System.exec("cover.exe") как все - не подгружает! ((((( Уж и mdm.System.execUnicode() на всякий случай пробывал. Спасает одно: из цинка запустить запускашку этого 8-го проектора, пусть даже сделанную опять же в флешовом проекторе Код:
fscommand("exec","cover.exe")add3: Пока методом цинка начала вырисовываться картина глюка. Если подгружаемый файл из проектора (тот что в проекторе грузиться как "/мой_файл.swf") находиться в одной директории с цинк-экзешником - то все работает. Т.е. цинк каким-то образом забивает 8-й проектор флеша по параметру (this). Т.е. когда 8-й проектор флеша грузит что-то через "/", то он за корень принимает не себя, а цинк-экзешник ((( |
Цитата:
Напишите простенькую длл-обертку для API-функции CreateProcess. Это решит все проблемы. ... Хм. Код:
//cover.exe |
Цитата:
Цитата:
"./targ.swf" Две точки знаю, а одна? PS моя проблема в том, что есть куча старых программ с флеш-проектор-8 и со слешем и надо их запускать цинком. И даже с имеющимися исходниками переписать их под 9-ФП почти нереально (вернее долго) |
Цитата:
По моему посту разЪясняю - процесс-родитель отдает свое окружение детям по умолчанию. Что может быть логичнее? Вы знаете как работает mdm.System.exec()? Я только могу предполагать. Вообще, примеры компилил под 8-ой .. и все работает. В цинке, правда, девятка по дефолту эмбеддилась. Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
Если две точки перед слешом - это понятно: "../" - указывает на родительскую папку, а одна точка, что такое: "./"? Цитата:
|
. (точка, заметьте - без слэша!) это указатель на текущую директорию. к нему дописывается дальнейший путь, само-собой через слэш. просто слэш без точки (двух точек) перед ним по идее должен показывать путь относительно текущей папки. но как это разруливается в программе - неизвестно. точки (. и ..) следует употреблять, где это возможно, не лишне.
Про "флаг" сказать ничего не могу. Возможно, что и так. |
Вообщем написали dll с ShellExecuteA - все работает теперь...
Единственно, что по сетке не запускает, но это не критично. PS Заметил еще такую особенность (думал даже что дело в ней) цинка: путь до себя цинк пишет обратными слешами \\\\\\ т.е. mdm.Application.path выдает путь с обратными слешами, а вот в mdm.System.exec у меня путь был прописан с обычными слешами ///// (хотя обычный слеш легко меняется на два обратных) но вроде дело не в этом. |
| Часовой пояс GMT +4, время: 16:03. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.