(y/N)
編集:読み取り専用アクセスは問題ありません。
これはまだ試していませんが、回避策を見つけたと思います。
Adobe AIR は Windows レジストリに書き込むことはできませんが、AIR 2 でネイティブ プロセスを起動することはできます。その方法については、次のブログ記事を参照してください: http://www.adobe.com/devnet/air/flex/quickstart /articles/interacting_with_native_process.html
Windows では、Windows レジストリを .reg ファイルで変更できるようになりました。.reg ファイルは、regedit.exe によって読み取られるプレーン テキスト ファイルです。したがって、理論的には、ファイル システムに .reg ファイルを書き込んでから、渡された .reg ファイルを使用して regedit.exe を起動することができます。AIR アプリから Windows レジストリを変更しました。
値を読み取るには、regedit のエクスポート機能を使用して、reg ファイルに書き込み、reg ファイルから読み取ることができます。regedit のオプションの詳細: http://www.robvanderwoude.com/regedit.php
ユーザーに別のアプリケーションもインストールするように強制する場合は、レジストリにアクセスするためのある種のプロトコルを提供するソケットを開くだけの小さなC#またはC++Windowsサービスを作成できます。次に、AIRでは、Socketクラスを使用して、結果をAIRアプリに返すC#サービスとの間でメッセージを送受信できます。
アプリが読み込まれると、Socketへの接続を試みることができます。接続が拒否された場合は、サービスをダウンロード/インストールするようにユーザーに求めることができます。
レジストリへの直接アクセスに関しては、AdobeがAIRからのアクセスを許可しないと確信しています。
できれば恐ろしいです。
なぜあなたは恐ろしいのですか?Airはデスクトッププラットフォームであり、OSのAPI(レジストリアクセスなど)にアクセスできることは非常に理にかなっています。
そうは言っても、現在はサポートされていません(そして、Adobeは非常にMac中心のように見えるので、これから追加されることはないと思います)。
ユーザーディレクトリの名前からユーザー名を取得することにしました
File.userDirectory.nameの使用はほとんどの場合機能しますが、非常に壊れやすい実装のように見えます。これは、ディレクトリとしてユーザー名を持つという規則を維持しているOSに依存しています。私はそれを壊すかもしれないいくつかの可能なことを考えることができます(TweakUIで遊ぶなど)。
ユーザーが管理者かどうかを判断しようとしていますか?
その場合、「File.userDirectory.name」を使用してユーザー名を段階的に変更できます。
また、ユーザーが管理者であるかどうかを判断するには、おそらく管理者権限が必要なファイルにアクセスしようとすることができます (Windows/System32 にファイルを書き込んでみてください)。ファイルへのアクセスに失敗した場合、おそらくユーザーが制限付きアカウントに属していると推測できます。
少し遅れましたが、プロジェクトがほぼ終了したときに、クライアントからレジストリからいくつかの値を読み取ってほしいという依頼を受けました。そんな願いがもっとあれば、AIRは選ばなかったと思います。しかし、FluorineFx の素晴らしい拡張機能を見つけたので、それを拡張することで、レジストリから文字列と dword の値を読み取ることができるようになりました。Windows のみ: http://aperture.fluorinefx.com/
理論的には実際のレジストリファイルを変更することもできますが、その考えはお勧めしません。
レジストリ コマンドをリッスンするソケット サーバーを作成する場合は、十分に注意してください。セキュリティ ホールが作成される可能性があり、ユーザーのパーソナル ファイアウォールがユーザビリティの面で邪魔になる可能性があります。