Вы не сможете сделать это с помощью Actionscript 2, и вы не сможете сделать это с помощью ActionScript 3 во флэш-веб-плеере.Существуют определенные инструменты, которые вы можете использовать для создания проекторов, использующих ActionScript 2 и 3 для добавления такого рода расширенных возможностей, но вы не можете просто сделать это из Интернета, поскольку, конечно, это будет крайне рискованным для безопасности.вы можете сделать это с помощью Adobe AIR 2.0 или более поздней версии.Вы используете класс NativeProcess и обнаруживаете операционную систему, запускаете терминал или cmd.exe и затем можете запускать команды для него.Ниже приведен код из проекта, который я разработал для запуска команд на ОС с использованием AIR, как вы пытаетесь это сделать:
private var os:String;
private var consoleExecutable:File;
private var consoleNativeProcess:NativeProcess;
private function usbMounted(e:StorageVolumeChangeEvent):void
{
//status.appendText('Device: ' + e.storageVolume.name + ' mounted to drive: ' + e.storageVolume.drive + '\n');
os = Capabilities.os.substr(0, 3).toLowerCase();
switch (os)
{
case "win":
//Windows OS
var rootDirs:Array = File.getRootDirectories();
var i:int = 0;
for (i; i < rootDirs.length; ++i) {
consoleExecutable = rootDirs[i] as File;
consoleExecutable = consoleExecutable.resolvePath("Windows");
if (consoleExecutable.exists == true) {
consoleExecutable = consoleExecutable.resolvePath("System32");
consoleExecutable = consoleExecutable.resolvePath("cmd.exe");
i = rootDirs.length;
}
}
break;
case "lin":
//Linux OS
break;
case "mac":
//Mac OS
break;
case "iph":
//Iphone OS
break;
}
var consoleNativeProcessStartupNfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
consoleNativeProcessStartupNfo.executable = consoleExecutable;
var startupArgs:Vector.<String> = new Vector.<String>();
startupArgs.push('/C fsutil fsinfo volumeinfo ' + e.storageVolume.drive + ':');
consoleNativeProcessStartupNfo.arguments = startupArgs;
consoleNativeProcess = new NativeProcess();
consoleNativeProcess.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, consoleOutput);
consoleNativeProcess.start(consoleNativeProcessStartupNfo);
consoleNativeProcess.closeInput();
}
private function consoleOutput(e:ProgressEvent):void
{
var consoleOuput:String = consoleNativeProcess.standardOutput.readUTFBytes(consoleNativeProcess.standardOutput.bytesAvailable);
switch (os)
{
case "win":
//Windows OS
break;
case "lin":
//Linux OS
break;
case "mac":
//Mac OS
break;
case "iph":
//Iphone OS
break;
}
consoleNativeProcess.exit();
}
Так что код должен быть довольно простым.Это может быть не все, поскольку я только что скопировал часть кода, касающуюся запуска, вывода и завершения собственного процесса.Затем я удалил части кода, которые были чувствительными.По сути, вы просто получаете информацию об ОС, переходите к пути к исполняемому файлу, проверяете, существует ли он, и, если да, запускаете его, запускаете для него команду и ждете вывода.Я вставил оператор switch для проверки ОС при обработке вывода, так как можно предположить, что дальнейшие действия с выводом также будут зависеть от ОС (или, по крайней мере, в моем случае это было).Если вам нужна дополнительная помощь для понимания всего этого, я предлагаю поискать учебник по API-интерфейсу Adobe AIR Native Process или просто опубликовать еще несколько вопросов здесь.:)