apache flex - Pouvez-vous accéder au registre Windows à partir d'Adobe Air?

Translate

(o / N)

Edit: l'accès en lecture seule est très bien.

This question and all comments follow the "Attribution Required."

Toutes les réponses

Translate

Je n'ai pas encore essayé cela, mais je pense avoir trouvé une solution de contournement.

Adobe AIR ne peut pas écrire dans le registre Windows, mais vous pouvez toutefois lancer un processus natif dans AIR 2. Voici un article de blog qui explique comment procéder:http://www.adobe.com/devnet/air/flex/quickstart/articles/interacting_with_native_process.html

Désormais, sous Windows, vous pouvez modifier le registre Windows avec des fichiers .reg. Les fichiers .reg ne sont que des fichiers texte simples lus par regedit.exe. Donc, en théorie, vous pouvez écrire un fichier .reg dans le système de fichiers, puis lancer regedit.exe avec le fichier .reg passé et ... TADA! Vous venez de modifier le registre Windows à partir de votre application AIR!

Pour lire la valeur, vous pouvez utiliser la fonction d'exportation de regedit pour écrire dans un fichier reg et lire à partir du fichier reg. Détails des options de regedit:http://www.robvanderwoude.com/regedit.php

Voici quelques ressources supplémentaires:
Syntaxe du fichier .reg:http://support.microsoft.com/kb/310516
écrire dans un fichier avec AIR:http://www.adobe.com/devnet/air/flex/articles/exploring_file_capabilities.html

La source
Translate

Si vous souhaitez forcer l'utilisateur à installer également une autre application, vous pouvez écrire un petit service Windows C # ou C ++ qui ouvre simplement un Socket qui fournit une sorte de protocole pour accéder au registre. Ensuite, dans AIR, vous pouvez utiliser la classe Socket pour envoyer des messages vers / depuis le service C # qui renverraient des résultats à l'application AIR.

Lorsque l'application se charge, vous pouvez essayer de vous connecter au socket, et si la connexion est rejetée, vous pouvez inviter l'utilisateur à télécharger / installer le service.

En ce qui concerne l'accès direct au registre, je suis presque sûr qu'Adobe ne le permettrait pas depuis AIR.

La source
Translate

Si tu peux, je serais horrifié.

Pourquoi seriez-vous horrifié? Air est une plate-forme de bureau, et avoir accès aux API du système d'exploitation (comme l'accès au registre) a beaucoup de sens.

Cela étant dit, il n'est pas pris en charge maintenant (et comme Adobe semble être très centré sur Mac, je doute qu'il sera jamais ajouté).

J'ai choisi de saisir le nom de l'utilisateur à partir du nom de l'annuaire d'utilisateurs

L'utilisation de File.userDirectory.name fonctionnera dans la plupart des cas, mais cela semble être une implémentation très fragile, elle repose sur le système d'exploitation qui maintient la convention d'avoir le nom d'utilisateur comme répertoire. Je peux penser à quelques choses possibles qui pourraient le casser (jouer avec TweakUI, etc.).

La source
Translate

Essayez-vous de déterminer si l'utilisateur est un administrateur ou non?

Si c'est le cas, vous pouvez classer le nom d'utilisateur avec "File.userDirectory.name".

Et je pense que pour savoir si l'utilisateur est un administrateur, vous pouvez probablement essayer d'accéder à un fichier qui nécessite des privilèges d'administrateur (essayez peut-être d'écrire un fichier sur Windows / System32). Si l'accès au fichier échoue, vous pouvez probablement supposer que l'utilisateur est sous un compte limité.

La source
Henry Lee
Translate

Un peu tard, mais j'ai eu le souhait d'un client de lire certaines valeurs du registre alors que le projet était presque terminé. S'il y avait plus de ces types de souhaits, je n'aurais jamais choisi AIR. Mais j'ai trouvé une belle extension de FluorineFx, et en l'étendant, je peux maintenant lire les valeurs de chaîne et de dword du registre. Windows seulement:http://aperture.fluorinefx.com/

La source
Leona Lee
Translate

Voici un exemple de modification du registre Windows dans Adobe Air à l'aide de NativeProcess et Python. Ainsi, vous pouvez ajouter, supprimer ou lire des clés par une seule ligne de code !!

Télécharger:Modificateur Adobe Air Registrysur Github

La source
Translate

Vous pourriez théoriquement modifier les fichiers de registre réels, mais je découragerais fortement cette idée.

La source
Translate

Soyez très prudent si vous décidez de créer un serveur socket qui écoute les commandes du registre. Vous créez potentiellement une faille de sécurité et les pare-feu personnels des utilisateurs peuvent vous gêner en termes de convivialité.

La source