しているかどうかを返しログインしたOSユーザーにAdobe Air

StackOverflow https://stackoverflow.com/questions/1376

  •  08-06-2019
  •  | 
  •  

質問

さんありがとうございます。名を現在ログインユーザーマ航空/フレックス。アプリケーション内のみで展開するWindowsます。と思いを達成するregexingのユーザディレクトリが開放することはいたしません。

正しい解決策はありません

他のヒント

あるカップルの小さな地域の清掃活動できる...

package
{
    import flash.filesystem.File;

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

としてのKevin示唆され、 File.separator のディレクトリに割りクロスプラットフォームで動作確認はWindowsおよびMac OS X).

必要な利用 resolvePath("") ばんざいます。

また、この機能を適切なゲッターでは結合せずに更なる。

上記の例のように入 UserUtil クラスできるようになった結 UserUtil.currentOSUser, る。g:

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    <mx:Label text="{UserUtil.currentOSUser}"/> 
</mx:WindowedApplication>

もう:

File.userDirectory.name

もしっかり身につけるた会員番号を入力してください設置できません!

こん最も美しいアプローチを知っているだけでお気アプリでのみ実行されるWindows環境では十分には:

public var username:String;

public function getCurrentOSUser():void
{       
   var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();  
   var file:File = new File("C:/WINDOWS/system32/whoami.exe");
   nativeProcessStartupInfo.executable = file;

   process = new NativeProcess();       
   process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onOutputData);
   process.start(nativeProcessStartupInfo);
}

public function onOutputData(event:ProgressEvent):void
{           
   var output:String = process.standardOutput.readUTFBytes(process.standardOutput.bytesAvailable);
   this.username = output.split('\\')[1];
   trace("Got username: ", this.username);
}

こちらのシングソリューション作品XP/Vistaでは拡張可OSX、linux、いいものです。

public static function GetCurrentOSUser():String{
    // XP & Vista only.
    var userDirectory:String = File.userDirectory.resolvePath("").nativePath;
    var startIndex:Number = userDirectory.lastIndexOf("\\") + 1
    var stopIndex:Number = userDirectory.length;
    var user = userDirectory.substring(startIndex, stopIndex);

    return user;
}

更新方法降:が、実際に建て機能しているかどうかを返します。と思うのでnativeApplication.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top