当然 AIR だけでは外部プログラムの実行はできませんので、 HTTP コマンド・リスナー を使用します ブラウザでダウンロード COMMAND_LISTENER.exe に対する http 呼び出し【VBS & PHP】スクリプトからスタンバイ状態にする で作成した VBScript を呼び出して、スタンバイ状態に移行します。 以下のコードの night の部分を自分の PC に置き換えてビルドします import mx.controls.*; import mx.events.*; import mx.rpc.events.*; import mx.formatters.*; import flash.external.*; import flash.events.*; include "Parts.as" // ***************************************************** // HTTPServiceを使用してHTTPリクエスト(GET)を行う // ***************************************************** private function sendData():void { // ● リクエストするURLをセット // ★ http:// で記述すると、ベースが ローカルでも動作します srv.url = "http://night:50000/wscript.exe|shell_standby.vbs"; srv.method = "GET"; srv.send(); } // ***************************************************** // HTTPServiceが成功 // ***************************************************** private function resultHandler(e:ResultEvent):void { } // ***************************************************** // HTTPServiceでエラーが発生した // ***************************************************** private function faultHandler(e:FaultEvent):void { Alert.show(e.fault.message); } VBScript呼び出すのは何でも良いのですが、いきなりスタンバイにならないように その部分はコメントにしてあります Set WshShell = CreateObject( "WScript.Shell" ) Set Shell = CreateObject( "Shell.Application" ) Shell.ShutdownWindows() WScript.Sleep 100 WshShell.AppActivate "Windows のシャットダウン" WScript.Sleep 100 ' WshShell.SendKeys "{DOWN}{DOWN}{DOWN}{ENTER}" その他アイコン画像は、こちら からダウンロード できるフリーのアイコンです( 商用は不可 ) WindowedApplication なんですが、ルートのオブジェクトの参照は WindowedApplication(mx.core.Application.application) で動いています??? 画面は systemChrome を使用せずに、Frex Chrome を使用しています <?xml version="1.0" encoding="utf-8" ?> <application xmlns="http://ns.adobe.com/air/application/1.0"> <id>airApplication</id> <version>1.0</version> <filename>airApplication</filename> <initialWindow> <title>AIR アプリケーション</title> <content>Mainw.swf</content> <x>300</x> <y>200</y> <width>600</width> <height>540</height> <systemChrome>none</systemChrome> <transparent>true</transparent> <visible>true</visible> <minimizable>true</minimizable> <maximizable>true</maximizable> <resizable>true</resizable> </initialWindow> </application> <?xml version="1.0" encoding="utf-8"?> <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" initialize="initData();" title=" ● Flex Chrome タイトル" titleIcon="@Embed('icon.png')" > <mx:Style source="extern/Style.css" /> <mx:Script source="extern/Script.as" /> <mx:HTTPService id="srv" showBusyCursor="true" result="resultHandler(event)" fault="faultHandler(event)" /> <mx:Panel title="HTTP サーバー呼び出し" horizontalAlign="center" verticalAlign="middle" width="90%" height="90%" paddingLeft="10" paddingRight="10" backgroundColor="0x8A0029" backgroundAlpha="0.3" color="silver" > <mx:Button id="btn" label="実行" click="sendData()" styleName="blackButton" /> </mx:Panel> </mx:WindowedApplication> |