C# 콘솔 응용 프로그램에서 프로세스를 가져와 Flex 응용 프로그램에서 사용중인 프로세스를 선택할 수 있습니다.
GetProcesses.cs :
using System;
using System.Diagnostics;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace GetProcesses
{
class Program
{
static void Main(string[] args)
{
Process[] processes = System.Diagnostics.Process.GetProcesses();
String processesXml = "";
processesXml += "<processes>\n";
foreach (Process process in processes)
{
processesXml += "\t<process id='" + process.Id + "' name='" + process.ProcessName + "' />\n";
}// end foreach
processesXml += "</processes>";
Console.WriteLine(processesXml);
}// end method
}// end class
}// end namespace
Main.as :
package
{
import flash.desktop.NativeProcess;
import flash.desktop.NativeProcessStartupInfo;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.filesystem.File;
import flash.utils.ByteArray;
public class Main extends Sprite
{
private var _nativeProcess:NativeProcess;
private var _nativeProcessSUI:NativeProcessStartupInfo;
private var _processes:XML;
public function Main():void
{
_nativeProcess = new NativeProcess();
_nativeProcessSUI = new NativeProcessStartupInfo();
_nativeProcessSUI.executable = File.applicationDirectory.resolvePath("GetProcesses.exe");
_nativeProcess.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onNativeProcessSOD);
_nativeProcess.addEventListener(Event.STANDARD_OUTPUT_CLOSE, onNativeProcessSOC);
_nativeProcess.start(_nativeProcessSUI);
}// end function
private function onNativeProcessSOD(e:ProgressEvent):void
{
_processes = XML(_nativeProcess.standardOutput.readUTFBytes(_nativeProcess.standardOutput.bytesAvailable));
}// end function
private function onNativeProcessSOC(e:Event):void
{
trace(_processes.process.(@name == "GetProcesses")[email protected]); // 7192
}// end function
}// end class
}// end package
는 C# 콘솔 어플리케이션 "GetProcesses.cs의"GetProcesses()
를 사용하는 공정의 XML이 생성 I이 예를 만든 메서드를 호출하고 flex 응용 프로그램에서 해당 XML을 검색합니다. Flex 어플리케이션이 사용하는 이름이 예에서 나는 C# 콘솔 응용 프로그램의 프로세스 ID를 얻을 수
trace(_processes.process.(@name == "GetProcesses")[email protected]); // 7192
를 사용하지만 분명히 그 과정에 XML 쿼리에 프로세스 이름을 변경합니다.
이것은 Air 응용 프로그램에서만 작동합니다. –
고맙습니다. 나는 그것을위한 파이썬 응용 프로그램을 쓴다. –