Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > Flash Приложения: AIR, Zinc и тд.

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.11.2011, 21:01
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 1  
Ответить с цитированием
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
По умолчанию Как с помощью AIR программно выключить компьютер

Здравствуйте. Сабж. Есть идеи?
__________________
Я мало чего умею, но зато хорошо умею учиться...

Старый 29.11.2011, 21:05
Aquahawk вне форума Посмотреть профиль Отправить личное сообщение для Aquahawk Посетить домашнюю страницу Aquahawk Найти все сообщения от Aquahawk
  № 2  
Ответить с цитированием
Aquahawk
 
Аватар для Aquahawk

Регистрация: Nov 2010
Адрес: Москва
Сообщений: 915
Записей в блоге: 4
Отправить сообщение для Aquahawk с помощью ICQ Отправить сообщение для Aquahawk с помощью Skype™
есть экзешники выключалки, принести с собой и вызвать через nativeProcess. Есть подозрения что потребуются права админа.
__________________
:)

Старый 29.11.2011, 21:08
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 3  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
экзешники? ) Это можно сделать простым батником (который можно из той же эйр и создать) с текстом shutdown -s или через коммандную строку. Подозревается мне, что эйр в этом ограничен.
На счет прав админа, эт да. Даже винда "сама себе" без прав админа не даст вырубить комп через батник


Последний раз редактировалось goodguy; 29.11.2011 в 21:11.
Старый 29.11.2011, 21:57
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 4  
Ответить с цитированием
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Спасибо за информацию. Батник нормально создается, при запуске из проводника комп вырубается. А вот как его запустить (не открыть) из air?
Код AS3:
var f:File = new File("D:\\shut_down.bat");
var fs:FileStream = new FileStream();
fs.open(f, FileMode.WRITE);
fs.writeUTFBytes("shutdown -s");
fs.close();
f.openWithDefaultApplication();
При этом выдает:
Цитата:
Error #3001: File or directory access denied.
__________________
Я мало чего умею, но зато хорошо умею учиться...

Старый 29.11.2011, 22:29
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 5  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
эйр не может их запускать, полюбому нужны другие языки
http://stackoverflow.com/questions/6...-not-supported

Старый 30.11.2011, 02:54
trng вне форума Посмотреть профиль Отправить личное сообщение для trng Найти все сообщения от trng
  № 6  
Ответить с цитированием
trng

Регистрация: Jun 2011
Сообщений: 212
Вот так я запускал mxmlc из под air-приложения:
Код AS3:
if (NativeProcess.isSupported) {
			var file:File = File.applicationDirectory;
			file = file.resolvePath("file:///C:/Program Files/Adobe/Adobe Flash Builder 4/sdks/4.0.0/bin/mxmlc.exe");
			var args:Vector.<String> = new Vector.<String>();
			var s: String;
			args[0] = "-load-config+=C:/work/Proba/mxmlcconf.xml";
			args[1] = "-define=NAMES::MD5fileName,'"+md5fn+"'";
			args[2] = "-o";
			s = fname+'-pub.swf';
			args[3] = s;
			args[4] = "C:/work/Proba/as3proj.as";
 
			var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
			nativeProcessStartupInfo.arguments = args;
			nativeProcessStartupInfo.executable = file;
 
			nativeProcessStartupInfo.workingDirectory = File.applicationDirectory;
			var process = new NativeProcess();
			process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onOutputData);
	                process.addEventListener(ProgressEvent.STANDARD_ERROR_DATA, onErrorData);
	                process.addEventListener(NativeProcessExitEvent.EXIT, onExit);
	                process.addEventListener(IOErrorEvent.STANDARD_OUTPUT_IO_ERROR, onIOError);
	                process.addEventListener(IOErrorEvent.STANDARD_ERROR_IO_ERROR, onIOError);
 
			process.start(nativeProcessStartupInfo);
}
Попробуй вместо mxmlc.exe поставить cmd.exe c аргументами:
/c reboot.bat

Должно работать.

Старый 30.11.2011, 07:34
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 7  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
mxml - это скрипт (если вообще можно так сказать), не способный нанести вреда компьютеру, batch файл - совсем другое дело. Их использование в эйр специально ограничено.

Старый 30.11.2011, 08:41
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 8  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
goodguy, ты, часом, не мудришь? ссылку про ограничения на батники покажи.
Без батника надо просто запустить cmd с параметрами:
cmd.exe /c shutdown -s
А вот и способ запустить "другой язык" из айра:
http://www.adobe.com/devnet/air/flex...e_process.html
Соответственно, вместо "Windows/bin/echoTestWin.exe ставим cmd. Ну, и поправку на маки сделать, если что. Правда, за них (за маки) не скажу, как выключить .
Вот еще: http://help.adobe.com/en_US/as3/dev/...ad8a-8000.html
И еще: http://www.flexpasta.com/index.php/2...ion-in-air-20/


Последний раз редактировалось alexcon314; 30.11.2011 в 08:53.
Старый 30.11.2011, 09:15
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 9  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
goodguy, ты, часом, не мудришь? ссылку про ограничения на батники покажи.
дык, по твоей же ссылке
http://help.adobe.com/en_US/as3/dev/...ad8a-8000.html
(конкретно по батч файлам):
Цитата:
Security considerations for native process communication

AIR on Windows does not allow you to run .bat files directly. The command interpreter application (cmd.exe) executes Windows .bat files. When you invoke a .bat file, this command application can interpret arguments passed to the command as additional applications to launch. A malicious injection of extra characters in the argument string could cause cmd.exe to execute a harmful or insecure application. For example, without proper data validation, your AIR application may call myBat.bat myArguments c:/evil.exe. The command application would launch the evil.exe application in addition to running your batch file.
на stackoverflow видел несколько подобных тем, так и не разрешенных
но на счет cmd наверное ты прав, хз, лично не проверял


Последний раз редактировалось goodguy; 30.11.2011 в 09:21.
Старый 30.11.2011, 10:01
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 10  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Код AS3:
package 
{
	import flash.desktop.NativeProcess;
	import flash.desktop.NativeProcessStartupInfo;
	import flash.display.Sprite;
	import flash.filesystem.File;
 
	public class Main extends Sprite 
	{
 
		public function Main():void 
		{
			var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo(); 
			nativeProcessStartupInfo.executable = new File("C:\\WINDOWS\\system32\\cmd.exe");
			var processArgs:Vector.<String> = new Vector.<String>(); 
			processArgs[0] = "/c shutdown -s"; 
			nativeProcessStartupInfo.arguments = processArgs; 
			nativeProcessStartupInfo.workingDirectory = File.desktopDirectory; 
			var process:NativeProcess = new NativeProcess(); 
			process.start(nativeProcessStartupInfo); 
		}
 
	}
 
}
так попробуйте.
Цитата:
AIR on Windows does not allow you to run .bat files directly.
Точно, есть такое дело.
На фоне примера выше, выглядит как-то странно. cmd с параметрами - пожалуйста, а батник - ни-ни. Фигня какая-то.


Последний раз редактировалось alexcon314; 30.11.2011 в 10:28.
Создать новую тему Ответ Часовой пояс GMT +4, время: 01:29.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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