Answer-ID
  • Întrebări
  • Tag-uri
  • Categorii
Notificări
Recompense
Înregistrare
După înregistrare, veți primi notificări despre răspunsurile și comentariile la întrebările DVS.
Logare
Dacă aveţi deja un cont, autentificaţi-vă pentru a verifica notificările noi.
Aici vor fi recompensele pentru întrebările, răspunsurile și comentariile adăugate sau modificate.
Mai mult
Sursă
Editează
 Shawn
Shawn

Obțineți utilizatorul curent conectat la sistemul de operare în Adobe Air

Am nevoie de numele utilizatorului curent conectat în aplicația mea Air / Flex. Aplicația va fi implementată numai pe mașinile Windows. Cred că aș putea realiza acest lucru prin regexarea directorului de utilizatori, dar sunt deschis și altor moduri.

17 2008-08-04T16:05:29+00:00 5
Programare
air
apache-flex
Comentarii la întrebare (0)
Shawn
1 ianuarie 1970 в 3:00
1970-01-01T03:00:00+00:00
Mai mult
Sursă
Editează
#1380

Aici este o soluție care funcționează în XP / Vista, dar este cu siguranță extensibilă la OSX, linux, aș fi în continuare interesat într-un alt mod.

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;
}
0
0
Comentarii (0)
Kevin
1 ianuarie 1970 в 3:00
1970-01-01T03:00:00+00:00
Mai mult
Sursă
Editează
#1397

De asemenea, aș încerca:

File.userDirectory.name

Dar nu am instalat Air, deci nu pot sa testez asta ...

0
0
Comentarii (0)
ianmjones
1 ianuarie 1970 в 3:00
1970-01-01T03:00:00+00:00
Mai mult
Sursă
Editează
#28034

Există câteva curățări mici pe care le puteți face ...

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;
        }
    }
}

Așa cum a sugerat Kevin, folosiți File.separator pentru a face directorul să împartă platforma (doar testată pe Windows și Mac OS X).

Nu trebuie să utilizați resolvePath ("") decât dacă căutați un copil.

De asemenea, realizarea funcției de obținere adecvată permite legarea fără alte lucrări.

În exemplul de mai sus am introdus-o într-o clasă UserUtil , acum pot lega la UserUtil.currentOSUser , de exemplu:



     

0
0
Comentarii (0)
Shawn
1 ianuarie 1970 в 3:00
1970-01-01T03:00:00+00:00
Mai mult
Sursă
Editează
#417427

Actualizați modul mai târziu: de fapt, există o funcție integrată pentru a obține utilizatorul curent. Cred că este în Aplicație nativă.

0
0
Comentarii (0)
Steve Myers
1 ianuarie 1970 в 3:00
1970-01-01T03:00:00+00:00
Mai mult
Sursă
Editează
#5024862

Aceasta nu este cea mai frumoasă abordare, dar dacă știți că aplicația dvs. AIR va fi rulată într-un mediu Windows, funcționează destul de bine:

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);
}
0
0
Comentarii (0)
Adăugati o întrebare
Categorii
Toate
Tehnologii
Cultură
Viață / Artă
Stiință
Profesii
Afaceri
ID
KO
RU
© Answer-ID 2021
Sursă
stackoverflow.com
în cadrul licenței cc by-sa 3.0 cu atribuire