пятница, мая 02, 2008

FSCommand exec и передача параметров

Столкнулся с такой проблемой:
необходимо вызывать exe файл c параметрами из flash projector exe.
Как известно, параметры передавать в fscommand("exec", "file.exe") нельзя. Да и еще к тому же в Windows XP и выше нельзя вызвать bat-файл.
Здесь более подробно об этой проблеме и решение.
Большое спасибо этому человеку за возможность запускать батники, но проблема передачи параметров без использования сторонних платных тулов остается.
Поэтому в голову пришел немного кривой, но для моей задачи подходящий и работающий вариант:
скачиваем бесплатный тул:
sfk

далее создаем такой батник:
for /F %%i in ('sfk fromclip') do file %%i

батник называем, к примеру, executor.bat
Чтобы его запустить, качаем proxy.exe, и переименовываем его в executor.exe.

далее все файлы кладем в папку fscommand.
Т.е. структура должны быть в итоге такая:
yourFlashApp.exe
fscommand/
--file.exe
--executor.exe
--executor.bat
--sfk.exe

А в вашем флэш-приложении должны быть такие строки, где вы хотите запустить file.exe c параметром -v, к примеру:
System.setClipboard("-v");
fscommand("exec", "executor.exe");

Смысл всего таков:
мы копируем наши параметры в clipboard windows,
затем запускаем executor.exe, который позволяет нам запустить наш executor.bat.
В котором, в свою очередь при помощи sfk.exe мы вызываем file.exe с параметром, вытащенным из windows clipboard.

Вот как-то так.
Надеюсь, кому-нибудь это пригодится.