Air/Flexアプリケーションで現在ログインしているユーザーの名前が必要です。アプリケーションはWindowsマシンにのみデプロイされます。私はUserディレクトリを正規表現することでこれを達成できると思っていますが、他の方法もあります。Adobe Airで現在ログインしているOSユーザーを取得する
答えて
ここは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;
}
をすることができます小さなクリーンアップのカップルがありますケビンが示唆したように...
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("")
を使用する必要はありません。
また、この関数を適切なゲッターにすることで、これ以上の作業をせずにバインドすることができます。例えば上記の例では
私は今、私はUserUtil.currentOSUser
に結合することができ、UserUtil
クラスに入れて、:
<?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>
このソリューションは、ユーザーが異なるログイン名とホームディレクトリ名を持っている場合に機能しません。これは、OSの再インストールまたは移行時によく起こります。誰か他の解決策を知っていますか?助けてください。 –
アップデート方法以降:現在のユーザーを取得するための関数に建てられ、実際にあります。私はそれがnativeApplicationにあると思う。
私も現在のユーザーを取得する必要がありますが、その機能を見つけることができません...ソリューションを共有できますか? –
http://help.adobe.com/jp/FlashPlatform/reference/actionscript/3/flash/desktop/NativeApplication.htmlには何も記載されていません – merlinc
これはきれいなアプローチではありませんが、あなたはあなたの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 - ユーザー設定XML
- 2. Adobe AIR。ファイルのMD5を取得
- 3. 現在ログインしているFBユーザーのIDを取得する
- 4. 現在ログインしているユーザーSIDを取得する方法
- 5. 現在ログインしているユーザー名を取得するには?
- 6. Adobe AIRでアクティブなIPを取得する
- 7. 現在ログインしているユーザーのユーザーIDをDjangoで取得するには?
- 8. Adobe AIR - キャプティブランタイム
- 9. Adobe Air - Analytics
- 10. Adobe Air stop();
- 11. Adobe AIR readLine
- 12. Adobe AIRサンプルアプリケーション?
- 13. Adobe AIR - コントロールスキャナ
- 14. Adobe AIR、メモリリーク
- 15. Adobe Air Database
- 16. Adobe Air - アプリケーションアップデータ
- 17. 現在ログインしているユーザーを取得asp.net
- 18. ログインしている現在のユーザーのデータを取得
- 19. MVC3 +現在ログインしているユーザーのユーザー名を取得する方法
- 20. スプリングセキュリティを使用して現在ログインしているユーザーを取得する
- 21. Adobe AIR ADTコマンド
- 22. Adobe Air and Dropbox
- 23. Adobe Air - StageWebViewメタタイトル
- 24. Adobe Air for IPhone
- 25. Adobe Air - Mimeタイプ
- 26. Adobe air http auth
- 27. Adobe Airネイティブプロセス(Java)
- 28. 現在WordPressでログインしているユーザーの役割を取得するには?
- 29. Djangoのクラスビューで現在ログインしているユーザーを取得しますか?
- 30. Adobe AirでのJSONPコールバック
'交換したい場合があります「\\」' 'とFile.separator'を使ってLinux上で動作させます。 – Kevin