在Adobe Air中获取当前登录的OS用户

问题描述 投票:17回答:5

我需要在Air / Flex应用程序中当前登录用户的名称。该应用程序将仅部署在Windows计算机上。我想我可以通过重新表达User目录来实现这一点,但可以接受其他方式。

apache-flex air
5个回答
10
投票

您可以进行几次小清理...

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("")

此外,使函数成为适当的getter可以使绑定而无需任何进一步的工作。

在上面的示例中,我将其放入UserUtil类,现在我可以绑定到UserUtil.currentOSUser,例如:

<?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>

9
投票

也可以尝试:


5
投票

这不是最漂亮的方法,但是如果您知道AIR应用程序只能在Windows环境中运行,那么效果很好:


1
投票

这里是可以在XP / Vista中使用的解决方案,但是肯定可以扩展到OSX,Linux,我仍然对另一种方法感兴趣。


-1
投票

稍后更新:实际上有一个内置函数来获取当前用户。我认为它在nativeApplication中。

© www.soinside.com 2019 - 2024. All rights reserved.