【问题标题】:AIR - NativeProcess With Sytem Profiler On MacAIR - Mac 上带有系统分析器的 NativeProcess
【发布时间】:2011-04-26 20:39:58
【问题描述】:

我正在尝试在 Flex 应用程序中使用 Adob​​e AIR NativeProcess 来生成一个 XML 文件,我可以解析该文件以在 Mac 上获取各种系统信息(我在 Windows 上也有类似的工作,但我不太熟悉苹果电脑)。我主要需要有关 CPU 的信息。

我无法调用系统分析器并传递正确的参数(或任何参数)以使 NativeProcess 正确执行。

如果我将 NativeProcess 可执行文件设置为:

/Applications/Utilities/System Profiler.app/Contents/MacOS/System Profiler

它执行,但我在屏幕上看到结果弹出(它忽略了我的参数将其保存到一个我认为有意义的文件,因为它是 GUI 版本)。

如果我将 NativeProcess 可执行文件设置为:

user/sbin/system_profiler 或只是 system_profiler

没有执行任何操作,我在分配可执行文件的行收到 ArgumentError #2004。

参数是这样的:

systemDataMac.npArgList = ["-xml",">", systemDataFileName,"-detailLevel","basic"];

如何正确生成此文件(或者有任何其他方法可以将 CPU 信息直接获取到我的 Flex/AIR 应用程序中?

谢谢!

示例代码:

        var nativeProcess:NativeProcess=new NativeProcess();
        var startupInfo:NativeProcessStartupInfo=new NativeProcessStartupInfo();
        var npArgs:Array = [];
        var appDataDir:File = File.applicationStorageDirectory;
        var nativeFilePath:String = appDataDir.nativePath.toString();

        nativeFilePath+= File.separator + "systemInfoFile.xml";

        nativeProcess.addEventListener(NativeProcessExitEvent.EXIT, onExit);
        nativeProcess.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onOutputData);
        nativeProcess.addEventListener(ProgressEvent.STANDARD_ERROR_DATA, onErrorData);
        nativeProcess.addEventListener(IOErrorEvent.STANDARD_INPUT_IO_ERROR, onInputIOError); 
        nativeProcess.addEventListener(IOErrorEvent.STANDARD_OUTPUT_IO_ERROR, onOutputIOError);

        try
        {
            // tried each of these three
            startupInfo.executable=new File("system_profiler"); // throws error
            startupInfo.executable=new File("/user/sbin/system_profiler"); // throws error
            startupInfo.executable=new File("/Applications/Utilities/System Profiler.app/Contents/MacOS/System Profiler"); // works but doesn't handle args because it is the GUI version I believe

            npArgs = ["-xml",">", nativeFilePath,"-detailLevel","basic"];

            var args:Vector.<String>=new Vector.<String>();
            for each(var item:String in npArgs)
            {
                args.push(item);
            }

            startupInfo.arguments=args;

            nativeProcess.start(startupInfo);

        }
        catch (error:IllegalOperationError)
        {
            trace("Illegal Operator Error - " + error.toString());
        }
        catch (error:ArgumentError)
        {
            trace("Arg Error - " + error.toString());
        }
        catch (error:Error)
        {
            trace("Error - " + error.toString());
        }

【问题讨论】:

  • 显示一些有关您如何尝试运行它的代码。
  • 这应该是等效的代码。

标签: apache-flex actionscript-3 air


【解决方案1】:

您需要什么样的信息?你看过Capabilities 类吗?

【讨论】:

  • 我正在寻找 CPU 描述、速度和内核数量。我正在使用 Capabilities 类获取其他一些信息,但它不包含我知道的详细 CPU 信息。
猜你喜欢
  • 1970-01-01
  • 2012-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-13
  • 1970-01-01
  • 2018-06-03
相关资源
最近更新 更多