我需要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. 如何檢測Adobe AIR中的Android操作系統版本?
- 5. 獲取當前登錄的Windows用戶?
- 6. pysvn:獲取當前登錄用戶名
- 7. 獲取當前登錄用戶
- 8. QT獲取當前登錄用戶ID
- 9. Sails.js + Passport.js獲取當前登錄用戶
- 10. 獲取當前登錄用戶PHP
- 11. 獲取當前登錄用戶asp.net
- 12. 如何獲取MSBuild中的當前操作系統?
- 13. Vimscript中是否有命令獲取當前操作系統?
- 14. 如何顯示當前登錄的用戶ID,IP地址及其操作系統登錄?
- 15. Windows XP操作系統用戶登錄Id從Javascript
- 16. 獲取當前操作系統的最佳方式是什麼?
- 17. 如何獲取Windows Phone的當前操作系統版本?
- 18. 從服務中獲取系統中登錄用戶的數量
- 19. 如何從Windows操作系統獲取當前用戶名和密碼。
- 20. 在C++運行時獲取當前操作系統
- 21. fbjs:獲取當前的登錄用戶的用戶
- 22. 電腦操作系統不能使用fs登錄系統API
- 23. Laravel用戶登錄系統
- 24. 獲取當前用戶名,即在SharePoint 2010門戶中登錄
- 25. 如何獲取當前Windows登錄用戶的用戶名?
- 26. 如何獲取當前登錄用戶的用戶對象
- 27. Adobe AIR和不同的操作系統文件系統
- 28. 從活動目錄獲取當前登錄用戶的列表
- 29. 獲取主模板中當前登錄的用戶
- 30. 如何獲取Pinax中當前登錄的用戶?
可能需要更換`「\\」`和` File.separator`使它在Linux上工作。 – Kevin 2011-02-09 23:44:28