Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flash Приложения: AIR, Zinc и тд. (http://www.flasher.ru/forum/forumdisplay.php?f=94)
-   -   CMD из-под air (http://www.flasher.ru/forum/showthread.php?t=213193)

MaxP 28.07.2016 00:13

CMD из-под air
 
Никто не пробовал работать с cmd из-под air?

Код AS3:

import flash.filesystem.File;
import flash.desktop.NativeProcess;
import flash.desktop.NativeProcessStartupInfo;
 
if(NativeProcess.isSupported){
 
    var info:NativeProcessStartupInfo = new NativeProcessStartupInfo();
        info.executable = new File("C:/Windows/System32/cmd.exe");
 
    var processArg:Vector.<String> = new Vector.<String>();
        processArg.push("cmd /c ffmpeg-merge.bat");
        info.arguments = processArg;
 
    var process:NativeProcess = new NativeProcess();
        process.start(info);
 
}else{
    trace('Add <supportedProfiles>extendedDesktop</supportedProfiles> first!');
}


Пробовал передавать аргументы напрямую:

Код AS3:

processArg.push("ffmpeg -i C:\video.flv -i C:\audio.mp3 -c copy C:\merged.flv");

Не работает. Пробовал оба варианта установив это приложение. Без результата :(
Был еще вариант с запуском самого ffmpeg.exe. Тоже не работает.

ShockWave512 28.07.2016 09:58

Может попробовать подписаться на все стандартные события. Где то выскочит сообщение об ошибке или видно будет причину.

Цитата:

standardErrorClose
standardErrorData
standardErrorIoError
standardInputClose
standardInputIoError
standardInputProgress
standardOutputClose
standardOutputData
standardOutputIoError

alexcon314 28.07.2016 10:44

Код:

<supportedProfiles>extendedDesktop desktop</supportedProfiles>
в application.xml точно есть?

расположение батника для cmd доступно? сам ffmpeg.exe доступен в путях?

MaxP 28.07.2016 12:18

Цитата:

Сообщение от ShockWave512 (Сообщение 1195581)
Может попробовать подписаться на все стандартные события. Где то выскочит сообщение об ошибке или видно будет причину.

Код:

[ProgressEvent type="standardOutputData" bubbles=false cancelable=false eventPhase=2 bytesLoaded=116 bytesTotal=0]
[ProgressEvent type="standardOutputData" bubbles=false cancelable=false eventPhase=2 bytesLoaded=116 bytesTotal=0]

Остальные ивенты не сработали.


Цитата:

Сообщение от alexcon314 (Сообщение 1195582)
Код:

<supportedProfiles>extendedDesktop desktop</supportedProfiles>
в application.xml точно есть?
расположение батника для cmd доступно? сам ffmpeg.exe доступен в путях?

Конечно прописал. Я на всякий случай еще избавился от батника, теперь просто скармливаю ему команду на создание папки:
Код:

md C:\Users\it\Desktop\test_cmd
При этом cmd.exe запускается и висит в TaskManager пока я не закрываю флэшку.

alexcon314 28.07.2016 13:02

Код AS3:

var info:NativeProcessStartupInfo = new NativeProcessStartupInfo();
        info.executable = new File("C:/Windows/System32/cmd.exe");
 
        var processArg:Vector.<String> = new Vector.<String>();
        processArg.push("/c");
        processArg.push("notepad");
        info.arguments = processArg;
 
        var process:NativeProcess = new NativeProcess();
        process.start(info);

умвр

Astraport 28.07.2016 13:14

У меня так работает в продакшене
Код AS3:

public static var cmdPath:String = "C:\\WINDOWS\\system32\\cmd.exe";
if(NativeProcess.isSupported)
                        {
                                                        var cmd:File = new File(cmdPath);
                                                        var svn:File = new File(File.applicationDirectory.nativePath + File.separator + "postnow.bat")
 
                                                        var args:Vector.<String> = new Vector.<String>();
                                                        args.push("/c ", svn.nativePath);
                                                        var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();                     
                                                        nativeProcessStartupInfo.executable = cmd; 
                                                        nativeProcessStartupInfo.arguments = args; 
 
                                                        var process:NativeProcess = new NativeProcess();
                                                        process.start(nativeProcessStartupInfo)
                                                } else {
                                                        Alert.show("Невозможно подключиться к bat-файлу. Обратитесь к разработчику.", "Ошибка");
                                                }


MaxP 28.07.2016 13:18

У меня тоже это работает, а вот директория не создается :(

Код AS3:

var info:NativeProcessStartupInfo = new NativeProcessStartupInfo();
        info.executable = new File("C:/Windows/System32/cmd.exe");
 
        var processArg:Vector.<String> = new Vector.<String>();
        processArg.push("md C:\Users\user\Desktop\test_cmd");
        info.arguments = processArg;
 
        var process:NativeProcess = new NativeProcess();
        process.start(info);

Добавлено через 3 минуты
Выходит, только запуск батника доступен, создать команду с динамическими параметрами нельзя?

STANDARD_OUTPUT_DATA:
Код:

Microsoft Windows [Version 6.1.7601]

Copyright (c) 2009 Microsoft Corporation.  All rights reserved.



C:\Windows>


ShockWave512 28.07.2016 14:33

если попробовать в батнике вызвать эти аргументы
Код AS3:

set arg1 = %1
call %arg1%


СлаваRa 28.07.2016 18:50

Код AS3:

processArg.push("md C:\Users\user\Desktop\test_cmd");

1 элемент = 1 аргумент
должно быть так:
Код AS3:

processArg.push("md", "C:\Users\user\Desktop\test_cmd");


alexcon314 29.07.2016 10:45

Цитата:

Выходит, только запуск батника доступен, создать команду с динамическими параметрами нельзя?
можно. пример выше.
Цитата:

C:\Users\user\Desktop\test_cmd
разве оно после компиляции не превратится в тыкву? двойные слэши же.


Часовой пояс GMT +4, время: 07:22.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.