Получение имени компьютера в Adobe AIR - PullRequest
1 голос
/ 03 апреля 2011

Привет всем: Может кто-нибудь сказать мне, как получить имя локального компьютера с помощью Adobe AIR.

Пожалуйста, ответьте мне как можно скорее. Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 05 сентября 2013
import flash.filesystem.File;

var OS:String = Capabilities.os.toLocaleLowerCase();

function currentOSUser():String { 
    var userDir:String = File.userDirectory.nativePath; 
    var userName:String = userDir.substr(userDir.lastIndexOf(File.separator) + 1); 
    return userName; 
}

trace( 'Os : ' + OS );
trace( 'Os Name: ' + currentOSUser() );
0 голосов
/ 03 апреля 2011

Это может помочь.

Последнее сообщение на странице.

То, что я сделал в Air 2 для достижения следующих целей:

public function getHostName():void {  
    if(NativeProcess.isSupported) {  
        var OS:String = Capabilities.os.toLocaleLowerCase();  
        var file:File;  

        if (OS.indexOf('win') > -1) {  
             //Executable in windows  
             file = new File('C:\\Windows\\System32\\hostname.exe');  
        } else if (OS.indexOf('mac') > -1 ) {  
             //Executable in mac  
        } else if (OS.indexOf('linux')) {  
             //Executable in linux  
        }  

        var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
        nativeProcessStartupInfo.executable = file;  

        var process:NativeProcess = new NativeProcess();
        process.addEventListener(NativeProcessExitEvent.EXIT, onExitError);  
        process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onOutput);  
        process.start(nativeProcessStartupInfo);  
        process.closeInput();  
     }  
}  

import utls.StringHelper;
public function onOutput(event:ProgressEvent):void {  
    var strHelper:StringHelper = new StringHelper();
    var output:String = event.target.standardOutput.readUTFBytes(event.target.standardOutput.bytesAvailable);
    output = strHelper.trimBack(output, "\n");
    output = strHelper.trimBack(output, "\r");

    trace('"'+output+'"');
}

Я использовал пакет из руководства:

package utls  
{  
     public class StringHelper  
     {  
          public function StringHelper()  
          {  
          }  

          public function replace(str:String, oldSubStr:String, newSubStr:String):String {  
               return str.split(oldSubStr).join(newSubStr);  
          }  

          public function trim(str:String, char:String):String {  
               return trimBack(trimFront(str, char), char);  
          }  

          public function trimFront(str:String, char:String):String {  
               char = stringToCharacter(char);  
               if (str.charAt(0) == char) {  
                    str = trimFront(str.substring(1), char);  
               }  
               return str;  
          }  

          public function trimBack(str:String, char:String):String {  
               char = stringToCharacter(char);  
               if (str.charAt(str.length - 1) == char) {  
                    str = trimBack(str.substring(0, str.length - 1), char);  
               }  
               return str;  
          }  

          public function stringToCharacter(str:String):String {  
               if (str.length == 1) {  
                    return str;  
               }  
               return str.slice(0, 1);  
          }  
     }  
}  
...