Je pense que cela peut être fait avec AIR depuis la version 2.0 en utilisant NativeProcess
. Je ne sais pas si vous pouvez exécuter un fichier .exe (à cause des problèmes de sécurité) mais je sais que vous pouvez exécuter des scripts python (je l'ai fait) afin de pouvoir créer un script python qui appelle votre fichier .exe
Voici le (commenté) par exemple de l'aide de NativeProcess
:
// ...
// package and imports declarations
// ...
public class NativeProcessExample extends Sprite
{
// this is the process
public var process:NativeProcess;
public function NativeProcessExample()
{
// we have to know if we can run NativeProcess
if(NativeProcess.isSupported)
setupAndLaunch();
else
trace("NativeProcess not supported.");
}
public function setupAndLaunch():void
{
// we create a NativeProcessStartupInfo, this will tell the what process do you want to run
var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
var file:File = File.applicationDirectory.resolvePath("test.py");
nativeProcessStartupInfo.executable = file;
// now create the arguments Vector to pass it to the executable file
var processArgs:Vector.<String> = new Vector.<String>();
processArgs[0] = "foo";
nativeProcessStartupInfo.arguments = processArgs;
// create the process
process = new NativeProcess();
// listen to events for I/O and Errors
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);
// run it!
process.start(nativeProcessStartupInfo);
}
// event handlers
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());
}
}
J'espère que cela aide
Pourquoi ne pas accepter les réponses? J'ai vu certaines de vos questions et beaucoup ont d'excellentes réponses (qui répondent à la question, par exemple) mais vous ne les acceptez pas. Pourquoi? –