Necesito el nombre del usuario registrado actualmente en mi aplicación Air/Flex. La aplicación solo se implementará en máquinas con Windows. Creo que podría lograr esto actualizando el directorio de usuarios, pero estoy abierto a otras formas.Obtenga el usuario actual del sistema operativo conectado en Adobe Air
Respuesta
Aquí hay una solución que funciona en XP/Vista, pero definitivamente es ampliable para OSX, Linux, todavía estaría interesado de otra manera.
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;
}
Hay un par de pequeñas limpiezas que puedas hacer ...
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;
}
}
}
Como Kevin sugirió, utilice File.separator
para hacer la división directorio multiplataforma (solo probado en Windows y Mac OS X).
No necesita utilizar resolvePath("")
a menos que esté buscando un niño.
Además, hacer de la función un getter adecuado permite el encuadernado sin más trabajo.
En el ejemplo anterior lo puse en una clase UserUtil
, ahora puede unirse a UserUtil.currentOSUser
, por ejemplo:
<?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>
Esta solución no funciona cuando el usuario tiene un nombre de inicio de sesión y un nombre de directorio personal diferentes, que es común cuando se reinstala o migra el sistema operativo. ¿Alguien sabe otra solución? Por favor ayuda. –
día manera más adelante: hay realmente una función integrada para obtener el usuario actual. Creo que está en nativeApplication.
Necesito obtener el usuario actual también, pero no puedo encontrar esa función ... ¿puedes compartir la solución? –
No se menciona nada en http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/desktop/NativeApplication.html – merlinc
Este no es el enfoque más bonita, pero si usted sabe que su aplicación AIR sólo se ejecuta en un entorno de Windows que funciona bastante bien:
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);
}
- 1. Adobe AIR y diferentes sistemas de archivos del sistema operativo
- 2. Silverlight vs Adobe Air
- 3. ¿Qué es Adobe Air?
- 4. Adobe AIR 512x512 Iconos?
- 5. Adobe Air y .NET
- 6. Acceso al puerto serie en Adobe-Air
- 7. ¿Qué sentido tiene Adobe AIR?
- 8. protección de adobe air apps
- 9. Adobe AIR para ejecutar el programa
- 10. Sistema operativo del encabezado HTTP del agente de usuario
- 11. ¿Cómo obtener la identificación del usuario actual conectado a Grails?
- 12. ¿Cómo puedo encontrar el sistema operativo actual en Python?
- 13. cómo instalar adobe air sdk en Linux?
- 14. Python, obtenga ventanas carpetas especiales para el usuario actualmente conectado
- 15. Adobe air varias aplicaciones en un instalador
- 16. Obtenga el nombre de usuario actual en C++ en Windows
- 17. Cómo establecer el icono en una aplicación de adobe air
- 18. Adobe AIR: Manejo de objetos JSON del servidor
- 19. Flex, obtenga la identificación USB del dispositivo USB conectado
- 20. cómo detectar el sistema operativo actual de Gradle
- 21. LoaderContext y ApplicationDomain cambia con Adobe AIR?
- 22. jQuery - detectando el sistema operativo y la versión del sistema operativo
- 23. ¿Herramientas de desarrollo para Adobe Flex/AIR?
- 24. Detectar el sistema operativo
- 25. as3 | Cómo exportar PNG usando Adobe AIR
- 26. Descargar un archivo con Adobe AIR
- 27. Adobe Air: Iniciar ventana nativa oculta
- 28. Descompilación de aplicaciones de Adobe AIR
- 29. Pilas NFC en el sistema operativo Android
- 30. Diferencia entre Adobe AIR y FLEX?
desea, puede sustituir ' "\\" 'con' File.separator' para que funcione en Linux. – Kevin