Paket | flash.desktop |
Sınıf | public class NativeProcess |
Miras Alma | NativeProcess EventDispatcher Object |
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 2 |
NativeProcess sınıfı ve bu sınıfın yetenekleri yalnızca yerel yükleyici (genişletilmiş masaüstü profil uygulamaları) ile yüklenmiş AIR uygulamaları tarafından kullanılabilir. NativeProcess işlevselliğini etkinleştirmek için hata ayıklama sırasında -profile extendedDesktop
argümanını ADL'ye iletebilirsiniz. Çalışma zamanında, yerel işlem iletişiminin desteklenip desteklenmediğini belirlemek için NativeProcess.isSupported
özelliğini kontrol edebilirsiniz.
AIR profil desteği: Bu özellik yerel yükleyiciler aracılığıyla masaüstü işletim sistemlerine dağıtılan uygulamalarda desteklenir. Bu özellik mobil aygıtlarda veya AIR for TV aygıtlarında desteklenmez. Desteği çalışma zamanında NativeProcess.isSupported
özelliğini kullanarak test edebilirsiniz. Birden fazla profilde API desteği ile ilgili daha fazla bilgi için bkz. AIR Profil Desteği.
Yerel yükleyici (masaüstü tarafından genişletilmiş profil uygulamaları) ile yüklenen AIR uygulamaları, bir uygulamayı açmak için File.openWithDefaultApplication
öğesini de kullanabilir. Ancak, NativeProcess sınıfı standart girdi, standart çıktı ve standart hata geçitlerine doğrudan erişim sağlar.
Not:
extendedTV
profilini kullanan AIR for TV uygulamaları yerel işlemleri yürütmek için yerel uzantılarını kullanabilir. Benzer şekilde, mobil cihazlar yerel uzantıları kullanabilir.
İlgili API Öğeleri
Özellik | Tanımlayan: | ||
---|---|---|---|
constructor : Object
Belirli bir nesne örneği için sınıf nesnesine veya yapıcı işlevine bir başvuru. | Object | ||
isSupported : Boolean [statik] [salt okunur]
Çalışan yerel işlemlerin geçerli profilde desteklenip desteklenmediğini belirtir. | NativeProcess | ||
running : Boolean [salt okunur]
Bu yerel işlemin o anda çalışıp çalışmadığını belirtir. | NativeProcess | ||
standardError : IDataInput [salt okunur]
Bu yerel işlemden standart hata çıktısına erişim sağlar. | NativeProcess | ||
standardInput : IDataOutput [salt okunur]
Bu yerel işlemin standart girdisine erişim sağlar. | NativeProcess | ||
standardOutput : IDataInput [salt okunur]
Bu yerel işlemin standart çıktı geçidine erişim sağlar. | NativeProcess |
Yöntem | Tanımlayan: | ||
---|---|---|---|
Başlatılmamış NativeProcess nesnesi oluşturur. | NativeProcess | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
EventDispatcher nesnesi olan bir olay dinleyici nesnesini, dinleyicinin bir olayın bildirimini alması için kaydeder. | EventDispatcher | ||
Bu işlemde girdi akışını kapatır. | NativeProcess | ||
Olay akışına bir olay gönderir. | EventDispatcher | ||
Yerel işlemden çıkmayı dener. | NativeProcess | ||
EventDispatcher nesnesinin belirli bir olay türü için kayıtlı dinleyicisi olup olmadığını kontrol eder. | EventDispatcher | ||
Bir nesnenin belirli bir özelliğinin tanımlı olup olmadığını gösterir. | Object | ||
Object sınıfının bir örneğinin parametre olarak belirtilen nesnenin prototip zincirinde olup olmadığını gösterir. | Object | ||
Belirtilen özelliğin bulunup bulunmadığını ve numaralandırılabilir olup olmadığını gösterir. | Object | ||
EventDispatcher nesnesinden bir dinleyiciyi kaldırır. | EventDispatcher | ||
Dinamik bir özelliğin döngü işlemlerinde kullanılabilirliğini ayarlar. | Object | ||
Belirtilen başlangıç bilgileri tarafından tanımlanan yerel işlemi başlatır. | NativeProcess | ||
Bu nesnenin, yerel ayara özel kurallara göre biçimlendirilmiş dize temsilini döndürür. | Object | ||
Belirtilen nesnenin dize olarak temsil edilen halini döndürür. | Object | ||
Belirtilen nesnenin temel değerini döndürür. | Object | ||
Bir olay dinleyicisinin bu EventDispatcher nesnesiyle mi, yoksa onun belirtilen olay türüne yönelik üst öğelerinden biriyle mi kayıtlı olduğunu kontrol eder. | EventDispatcher |
Olay | Özet | Tanımlayan: | ||
---|---|---|---|---|
[broadcast olayı] Flash Player veya AIR uygulaması işletim sistemi odağına gelip etkin olduğunda gönderilir. | EventDispatcher | |||
[broadcast olayı] Çalışan Flash Player veya AIR uygulaması sistem odağını kaybettiğinde ve etkin olmayan duruma geldiğinde gönderilir. | EventDispatcher | |||
Yerel işlemin çıkış yaptığını belirtir. | NativeProcess | |||
NativeProcess öğesinin hata akışını kapattığını belirtir. | NativeProcess | |||
Yerel işlemin, standart hata (stderror) akışında okunabilecek veriler içerdiğini belirtir. | NativeProcess | |||
Standart hata (stderror) akışından okumanın başarısız olduğunu belirtir. | NativeProcess | |||
NativeProcess nesnesinin closeInput() yöntemini çağırarak girdi akışını kapattığını belirtir. | NativeProcess | |||
Standart girdi (stdin) akışına yazmanın başarısız olduğunu belirtir. | NativeProcess | |||
NativeProcess öğesinin alt işlem için girdi akışına verileri yazdığını belirtir. | NativeProcess | |||
NativeProcess öğesinin çıktı akışını kapattığını belirtir. | NativeProcess | |||
Yerel işlemin, çıktı akışında okunabilecek veriler içerdiğini belirtir. | NativeProcess | |||
stdout akışından okumanın başarısız olduğunu belirtir. | NativeProcess |
isSupported | özellik |
isSupported:Boolean
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 2 |
Çalışan yerel işlemlerin geçerli profilde desteklenip desteklenmediğini belirtir. Bu özellik yalnızca extendedDesktop profilinde çalışırken true
değerini döndürür. Ek olarak, NativeProcess.isSupported
AIR dosyası olarak yüklenmiş uygulamalar için her zaman false
değerine sahiptir. NativeProcess sınıfını kullanmak için ADT -target native
bayrağını kullanarak bir AIR uygulamasını paketlemeniz gerekir.
Uygulama
public static function get isSupported():Boolean
running | özellik |
running:Boolean
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 2 |
Bu yerel işlemin o anda çalışıp çalışmadığını belirtir. start()
yöntemini çağırdıysanız ve NativeProcess nesnesi henüz bir exit
olayı göndermediyse işlem çalışır. NativeProcess örneği, temel işletim sistemindeki tek bir işleme karşılık gelir. Temel işletim sistemi işlemi çalıştırıldığı sürece (yerel işlem başlatılırken ve işlem işletim sistemine bir çıkış konu döndürünceye kadar) bu özellik true
olarak kalır.
Uygulama
public function get running():Boolean
standardError | özellik |
standardError:IDataInput
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 2 |
Bu yerel işlemden standart hata çıktısına erişim sağlar. Bu geçitte veriler kullanılabilir oldukça, NativeProcess nesnesi bir ProgressEvent nesnesi gönderir. Herhangi bir veri bulunmadığında bu akıştan veri okumaya çalışırsanız, NativeProcess nesnesi bir EOFError istisnası atar.
Veriler, alt işlemin çıktı akışı olsa da, geçerli işlemin perspektifinden girdi olarak değerlendirildiğinden tür IDataInput olur.
Uygulama
public function get standardError():IDataInput
Atar
EOFError — herhangi bir veri yoksa ve bir okuma işlemi denenirse.
|
İlgili API Öğeleri
standardInput | özellik |
standardInput:IDataOutput
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 2 |
Bu yerel işlemin standart girdisine erişim sağlar. Bu işleme veri göndermek için bu geçidi kullanın. input
özelliğine her veri yazıldığında, bu veriler mümkün olduğunca kısa sürede yerel işlemin girdi geçidine yazılır.
Veriler, alt işlemin girdi akışı olsa da, geçerli işlemin perspektifinden çıktı olarak değerlendirildiğinden, tür IDataOutput olur.
Uygulama
public function get standardInput():IDataOutput
Atar
IllegalOperationError — running false değerini döndürdüğünde bu değerin üzerine yazarken veya bir kapalı girdi akışına veri yazmaya çalışırken.
|
İlgili API Öğeleri
standardOutput | özellik |
standardOutput:IDataInput
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 2 |
Bu yerel işlemin standart çıktı geçidine erişim sağlar. Yerel işlemin standart çıktısından verileri okumak için bu geçidi kullanın. Bu geçitte veri olmadığında, NativeProcess nesnesi bir ProgressEvent öğesi gönderir. Herhangi bir veri bulunmadığında bu akıştan veri okumaya çalışırsanız, NativeProcess nesnesi bir EOFError atar.
Veriler, alt işlemin çıktı akışı olsa da, geçerli işlemin perspektifinden girdi olarak değerlendirildiğinden tür IDataInput olur.
Uygulama
public function get standardOutput():IDataInput
Atar
EOFError — herhangi bir veri yoksa ve bir okuma işlemi denenirse.
|
İlgili API Öğeleri
NativeProcess | () | Yapıcı |
public function NativeProcess()
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 2 |
Başlatılmamış NativeProcess nesnesi oluşturur. İşlemi başlatmak için start()
yöntemini çağırın.
İlgili API Öğeleri
closeInput | () | yöntem |
public function closeInput():void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 2 |
Bu işlemde girdi akışını kapatır. Bazı komut satırı uygulamaları, bazı işlemleri başlatmak için girdi akışı kapatılıncaya kadar bekler. Akış kapandıktan sonra, işlem çıkış yapıp yeniden başlatılıncaya kadar akış yeniden açılamaz.
Olaylar
ioErrorStandardInput: — İşleme girdi akışını kapatan bir sorun vardır.
| |
standardInputClose: — Girdi akışı kapatılmıştır.
|
exit | () | yöntem |
public function exit(force:Boolean = false):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 2 |
Yerel işlemden çıkmayı dener.
Parametreler
force:Boolean (default = false ) — Gerekirse, uygulamanın yerel işlemden çıkmaya zorlayıp zorlamayacağı.
NativeProcess başarıyla çıkış yapmazsa, bir |
start | () | yöntem |
public function start(info:NativeProcessStartupInfo):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 2 |
Belirtilen başlangıç bilgileri tarafından tanımlanan yerel işlemi başlatır. İşlem başlatıldıktan sonra, tüm girdi ve çıktı akışları açılır. İşletim sistemine belirtilen işlemi başlatma isteği yapıldıktan hemen sonra bu yöntem döndürülür. İşlem o anda çalışıyorsa, NativeProcess nesnesi bir IllegalOperationError
istisnası atar. NativeProcess nesnesinin running
özelliği true
değerini döndürürse, işlem çalıştırılır. İşletim sistemi işlemi başlatamazsa, bir Error
atılır.
NativeProcess örneği, temel işletim sistemindeki tek bir işleme karşılık gelir. Aynı işletim sistemi işleminin birden çok örneğini art arda çalıştırmak isterseniz, her alt işlem için bir NativeProcess örneği oluşturabilirsiniz.
NativeProcess nesnesinin running
özelliği false
değerini her döndürdüğünde bu yöntemi çağırabilirsiniz. Bu, NativeProcess nesnesinin yeniden kullanılabildiği anlamına gelir. Başka bir deyişle, bir NativeProcess örneği oluşturabilir, start()
yöntemini çağırabilir, exit
olayını bekleyebilir ve ardından tekrar start()
yöntemini çağırabilirsiniz. start()
yöntemine yapılan sonraki çağrıda info
parametre değeri olarak farklı bir NativeProcessStartupInfo nesnesi kullanabilirsiniz.
NativeProcess sınıfı ve bu sınıfın yetenekleri yalnızca yerel yükleyici ile yüklenmiş AIR uygulamaları tarafından kullanılabilir. NativeProcess işlevselliğini etkinleştirmek için hata ayıklama sırasında -profile extendedDesktop
argümanını ADL'ye iletebilirsiniz. Yerel işlem iletişiminin desteklenip desteklenmediğini belirlemek için NativeProcess.isSupported
özelliğini kontrol edin.
Önemli güvenlik önlemleri:
API'nin yerel işlemi, kullanıcının sistemindeki herhangi bir çalıştırılabilir programı çalıştırabilir. Komut oluştururken ve çalıştırırken çok dikkatli olun. Çalıştırılacak komutun herhangi bir kısmı harici bir kaynaktan geliyorsa, komutun çalıştırılmasının güvenli olduğunu dikkatle doğrulayın. Benzer şekilde, AIR uygulamanız çalışan bir işleme iletilen verileri doğrulamalıdır.
Ancak girdiyi doğrulamak zor olabilir. Bu tür zorlukları önlemek için belirli API'lere sahip yerel bir uygulama (Windows'ta bir EXE dosyası gibi) yazmak en iyi çözümdür. Bu API'ler yalnızca AIR uygulaması tarafından özellikle istenen komutları işlemelidir. Örneğin, yerel uygulama standart girdi akışı üzerinden yalnızca kısıtlı bir talimat grubunu kabul edebilir.
Windows'taki AIR, .bat dosyalarını doğrudan çalıştırmanıza olanak vermez. Windows .bat dosyaları, komut yorumlayıcı uygulaması (cmd.exe) tarafından çalıştırılır. Bir .bat dosyasını çağırdığınızda, bu komut uygulaması komuta iletilen argümanları başlatılacak ek uygulamalar olarak yorumlayabilir. Argüman dizesine zarar verebilecek bir ek karakterler kümesinin eklenmesi, cmd.exe'nin zararlı veya güvensiz bir uygulama çalıştırmasına neden olabilir. Örneğin, uygun veri doğrulaması olmadan, AIR uygulamanız myBat.bat myArguments c:/evil.exe
dosyasını çağırabilir. Komut uygulaması toplu işleme dosyanızı çalıştırmanın yanı sıra evil.exe dosyasını açabilir.
start()
yöntemini bir .bat dosyası ile çağırırsanız, NativeProcess nesnesi bir istisna atar. Error nesnesinin message
özelliği "Hata #3219: NativeProcess başlatılamadı." dizesini içerir.
Parametreler
info:NativeProcessStartupInfo — NativeProcessStartupInfo Yerel işlemin nasıl başlatılacağıyla ilgili bilgileri tanımlar.
|
Atar
IllegalOperationError — NativeProcess o anda çalışıyorsa.
| |
ArgumentError — NativeProcessStartupInfo öğesinin nativePath özelliği yoksa.
| |
Error — NativeProcess başarıyla başlatılmadıysa.
|
İlgili API Öğeleri
exit | Olay |
flash.events.NativeProcessExitEvent
özellik NativeProcessExitEvent.type =
flash.events.NativeProcessExitEvent
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 2 |
Yerel işlemin çıkış yaptığını belirtir. exitCode
özelliği, işlemin çıkışta ana bilgisayar işletim sistemine döndürdüğü değeri içerir. AIR uygulaması, NativeProcess nesnesinin exit()
yöntemini çağırarak işlemi sonlandırır; exitCode
özelliği NaN olarak ayarlıdır.
standardErrorClose | Olay |
flash.events.Event
özellik Event.type =
flash.events.Event
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 2 |
NativeProcess öğesinin hata akışını kapattığını belirtir.
standardErrorData | Olay |
flash.events.ProgressEvent
özellik ProgressEvent.type =
flash.events.ProgressEvent
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 2 |
Yerel işlemin, standart hata (stderror) akışında okunabilecek veriler içerdiğini belirtir. NativeProcess nesnesi, alt işlem standart hata akışını temizlediğinde veya işlemler arasında iletişim kurmak için kullanılan dahili arabellek dolu olduğunda bu olayı gönderir. Bu dahili arabelleğin boyutuna bağlı olan kod yazmayın, bu sürümler ve işletim sistemleri arasında değişiklik gösterebilir.
standardErrorIoError | Olay |
flash.events.IOErrorEvent
özellik IOErrorEvent.type =
flash.events.IOErrorEvent
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 2 |
Standart hata (stderror) akışından okumanın başarısız olduğunu belirtir. NativeProcess nesnesi çalışma zamanı yerel işleminin standart hata çubuğundan veri okuyamadığında bu olayı gönderebilir.
standardInputClose | Olay |
flash.events.Event
özellik Event.type =
flash.events.Event
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 2 |
NativeProcess nesnesinin closeInput()
yöntemini çağırarak girdi akışını kapattığını belirtir. NativeProcess nesnesi, gerçek yerel işlem girdi akışını kapattığında bu olayı göndermez.
standardInputIoError | Olay |
flash.events.IOErrorEvent
özellik IOErrorEvent.type =
flash.events.IOErrorEvent
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 2 |
Standart girdi (stdin) akışına yazmanın başarısız olduğunu belirtir. NativeProcess nesnesi, closeInput()
yöntemi başarısız olduğunda veya çalışma zamanı yerel işlemin standart girdi geçidine yazamadığında bu olayı gönderir.
standardInputProgress | Olay |
flash.events.ProgressEvent
özellik ProgressEvent.type =
flash.events.ProgressEvent
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 2 |
NativeProcess öğesinin alt işlem için girdi akışına verileri yazdığını belirtir. NativeProcess nesnesi, veriler akışa yazıldığında bu olayı gönderir. Bu olay, alt işlemin herhangi bir veriyi okuyup okumadığını belirtmez.
standardOutputClose | Olay |
flash.events.Event
özellik Event.type =
flash.events.Event
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 2 |
NativeProcess öğesinin çıktı akışını kapattığını belirtir.
standardOutputData | Olay |
flash.events.ProgressEvent
özellik ProgressEvent.type =
flash.events.ProgressEvent
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 2 |
Yerel işlemin, çıktı akışında okunabilecek veriler içerdiğini belirtir. NativeProcess nesnesi, alt işlem stdout akışını temizlediğinde veya işlemler arasında iletişim kurmak için kullanılan dahili arabellek dolu olduğunda bu olayı gönderir. Bu dahili arabelleğin boyutuna bağlı olan kod yazmayın, bu sürümler ve işletim sistemleri arasında değişiklik gösterebilir.
standardOutputIoError | Olay |
flash.events.IOErrorEvent
özellik IOErrorEvent.type =
flash.events.IOErrorEvent
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 2 |
stdout akışından okumanın başarısız olduğunu belirtir. NativeProcess nesnesi çalışma zamanı yerel işleminin standart çıktı çubuğundan veri okuyamadığında bu olayı gönderebilir.
package { import flash.display.Sprite; import flash.desktop.NativeProcess; import flash.desktop.NativeProcessStartupInfo; import flash.events.Event; import flash.events.ProgressEvent; import flash.events.IOErrorEvent; import flash.events.NativeProcessExitEvent; import flash.filesystem.File; public class NativeProcessExample extends Sprite { public var process:NativeProcess; public function NativeProcessExample() { if(NativeProcess.isSupported) { setupAndLaunch(); } else { trace("NativeProcess not supported."); } } public function setupAndLaunch():void { var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo(); var file:File = File.applicationDirectory.resolvePath("test.py"); nativeProcessStartupInfo.executable = file; var processArgs:Vector.<String> = new Vector.<String>(); processArgs[0] = "foo"; nativeProcessStartupInfo.arguments = processArgs; process = new NativeProcess(); process.start(nativeProcessStartupInfo); 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); } public function onOutputData(event:ProgressEvent):void { trace("Got: ", process.standardOutput.readUTFBytes(process.standardOutput.bytesAvailable)); } public function onErrorData(event:ProgressEvent):void { trace("ERROR -", process.standardError.readUTFBytes(process.standardError.bytesAvailable)); } public function onExit(event:NativeProcessExitEvent):void { trace("Process exited with ", event.exitCode); } public function onIOError(event:IOErrorEvent):void { trace(event.toString()); } } }
#!/usr/bin/python
# ------------------------------------------------------------------------------
# Sample Python script
# ------------------------------------------------------------------------------
import sys
for word in sys.argv: #echo the command line arguments
print word
print "HI FROM PYTHON"
print "Enter user name"
line = sys.stdin.readline()
sys.stdout.write("hello," + line)
Tue Jun 12 2018, 01:09 PM Z