我需要Air/Flex应用程序中当前登录用户的名称。该应用程序将只部署在Windows机器上。我想我可以通过重新编制用户目录来实现这一点,但我可以通过其他方式开放。获取Adobe Air中当前登录的操作系统用户
15
A
回答
2
这是一个可以在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;
}
10
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;
}
}
}
正如凯文建议,使用File.separator
使目录分裂的跨平台(只在Windows和Mac OS X上测试过)。
除非您要找孩子,否则您不需要使用resolvePath("")
。
另外,使函数成为一个适当的getter允许绑定,而无需进一步的工作。
在上面的例子中,我把它变成一个UserUtil
类,现在我可以绑定到UserUtil.currentOSUser
,e.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>
+2
当用户具有不同的登录名和主目录名时,此解决方案不起作用,这在重新安装或迁移操作系统时很常见。有谁知道另一种解决方案。请帮忙。 – 2011-02-09 23:46:46
-1
更新方式后:里面居然是一个内置的函数来获取当前用户。我认为这是在nativeApplication中。
5
这是不是最漂亮的办法,但如果你知道你的AIR应用程序只能在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);
}
相关问题
- 1. 获取Adobe AIR中的当前操作系统
- 2. 获取当前登录用户的身份,而不是系统帐户
- 3. PHP获取当前客户端操作系统语言
- 4. QT获取当前登录用户ID
- 5. 获取当前登录用户PHP
- 6. 获取当前登录用户
- 7. 获取当前登录用户asp.net
- 8. pysvn:获取当前登录用户名
- 9. 如何获取MSBuild中的当前操作系统?
- 10. Vimscript中是否有命令获取当前操作系统?
- 11. Windows XP操作系统用户登录Id从Javascript
- 12. 如何获取Windows Phone的当前操作系统版本?
- 13. 获取当前操作系统的最佳方式是什么?
- 14. 从服务中获取系统中登录用户的数量
- 15. 如何从Windows操作系统获取当前用户名和密码。
- 16. fbjs:获取当前的登录用户的用户
- 17. 在C++运行时获取当前操作系统
- 18. 电脑操作系统不能使用fs登录系统API
- 19. 如何获取当前登录用户的用户对象
- 20. Laravel用户登录系统
- 21. Adobe AIR和不同的操作系统文件系统
- 22. 从活动目录获取当前登录用户的列表
- 23. 如何在wordpress中获取当前登录用户的角色?
- 24. jquery SPGetCurrentUser()获取sharepoint 2007中当前登录的用户名
- 25. 如何在Access VBA中获取当前登录的Windows用户?
- 26. 如何获取Pinax中当前登录的用户?
- 27. 如何获取mysql中当前登录的用户?
- 28. 在MVC中获取当前登录用户的角色6
- 29. 在UNIX类型的操作系统中获取当前用户帐户的显示名称
- 30. 在OTRS中获取当前用户登录ID
可能需要更换`“\\”`和` File.separator`使它在Linux上工作。 – Kevin 2011-02-09 23:44:28