Geçerli Adobe Air OS kullanıcı oyuna girişi

oy
16

Benim Hava / Flex uygulamasında kullanıcı oturum akımın adı lazım. Uygulama Windows makinelerde sadece görevlendirilecek. Ben Kullanıcı dizini regexing bu elde düşünüyorum, ama diğer yollarla açığım.

Oluştur 04/08/2008 saat 17:05
kaynak kullanıcı
Diğer dillerde...                            


5 cevaplar

oy
10

Yapabileceğiniz küçük temizlikleri bir çift var ...

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 öne sürdüğü gibi, kullanmak File.separatordizin bölme çapraz platform (sadece Windows ve Mac OS X üzerinde test) yapmak.

Kullanılacak gerekmez resolvePath("")Eğer bir çocuk için aradığınız sürece.

Ayrıca, işlevini uygun bir toplama maddesinin yaparken herhangi başka bir işlem yapılmadan bağlanmasını sağlar.

Yukarıdaki örnekte ben bir koydu UserUtilşimdi bağlanabildiği, sınıf UserUtil.currentOSUser, ör:

<?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>
Cevap 26/08/2008 saat 14:32
kaynak kullanıcı

oy
10

Ayrıca ben denemek istiyorum:

File.userDirectory.name

Ama Hava yüzden gerçekten bu test edemez yüklü olmayan ...

Cevap 04/08/2008 saat 17:39
kaynak kullanıcı

oy
5

Bu güzel bir yaklaşım değildir, ancak bir Windows ortamında sadece koşmak edilecektir HAVA uygulamasını biliyorsanız yeterince iyi çalışıyor:

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);
}
Cevap 17/02/2011 saat 04:48
kaynak kullanıcı

oy
2

İşte XP / Vista çalışan bir çözümdür, ama OSX, linux kesinlikle genişletilebilir, hala başka bir şekilde ilgi duyardım.

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;
}
Cevap 04/08/2008 saat 17:19
kaynak kullanıcı

oy
-1

Güncelleme yolu daha sonra: aslında işlevi inşa edilmiş bir geçerli kullanıcı almak için var. Bunun NativeApplication içinde olduğunu düşünüyorum.

Cevap 06/01/2009 saat 18:26
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more