apache flex - Können Sie von Adobe Air aus auf die Windows-Registrierung zugreifen?

Translate

(J / N)

Bearbeiten: Der schreibgeschützte Zugriff ist in Ordnung.

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

Alle Antworten

Translate

Ich habe das noch nicht ausprobiert, aber ich glaube, ich habe eine Problemumgehung gefunden.

Adobe AIR kann nicht in die Windows-Registrierung schreiben, Sie können jedoch einen nativen Prozess in AIR 2 starten. Hier ist ein Blog-Beitrag, der zeigt, wie das geht:http://www.adobe.com/devnet/air/flex/quickstart/articles/interacting_with_native_process.html

Unter Windows können Sie jetzt die Windows-Registrierung mit REG-Dateien ändern. .reg-Dateien sind nur reine Textdateien, die von regedit.exe gelesen werden. Theoretisch können Sie also eine .reg-Datei in das Dateisystem schreiben und dann regedit.exe mit der übergebenen .reg-Datei starten und ... TADA! Sie haben gerade die Windows-Registrierung in Ihrer AIR-App geändert!

Um den Wert zu lesen, können Sie die Exportfunktion von regedit verwenden, um in eine reg-Datei zu schreiben und aus der reg-Datei zu lesen. Details zu den Optionen von regedit:http://www.robvanderwoude.com/regedit.php

Hier sind einige zusätzliche Ressourcen:
.reg-Dateisyntax:http://support.microsoft.com/kb/310516
Mit AIR in eine Datei schreiben:http://www.adobe.com/devnet/air/flex/articles/exploring_file_capabilities.html

Quelle
Translate

Wenn Sie bereit sind, den Benutzer zu zwingen, auch eine andere Anwendung zu installieren, können Sie einen kleinen C # - oder C ++ - Windows-Dienst schreiben, der einfach einen Socket öffnet, der eine Art Protokoll für den Zugriff auf die Registrierung bereitstellt. In AIR können Sie dann die Socket-Klasse verwenden, um Nachrichten an / vom C # -Dienst zu senden, die Ergebnisse an die AIR-App zurückgeben.

Wenn die App geladen wird, können Sie versuchen, eine Verbindung zum Socket herzustellen. Wenn die Verbindung abgelehnt wird, können Sie den Benutzer auffordern, den Dienst herunterzuladen / zu installieren.

Was den direkten Zugriff auf die Registrierung betrifft, bin ich mir ziemlich sicher, dass Adobe dies von AIR nicht zulassen würde.

Quelle
Translate

Wenn du kannst, wäre ich entsetzt.

Warum würdest du entsetzt sein? Air ist eine Desktop-Plattform, und der Zugriff auf die APIs des Betriebssystems (z. B. Registrierungszugriff) ist sehr sinnvoll.

Davon abgesehen wird es derzeit nicht unterstützt (und da Adobe sehr Mac-zentriert zu sein scheint, bezweifle ich, dass es jemals hinzugefügt wird).

Ich habe mich entschlossen, den Benutzernamen aus dem Namen des Benutzerverzeichnisses zu übernehmen

Die Verwendung von File.userDirectory.name funktioniert in den meisten Fällen, scheint jedoch eine sehr fragile Implementierung zu sein. Das Betriebssystem basiert auf der Konvention, den Benutzernamen als Verzeichnis zu verwenden. Ich kann mir ein paar mögliche Dinge vorstellen, die es kaputt machen könnten (mit TweakUI spielen usw.).

Quelle
Translate

Versuchen Sie festzustellen, ob der Benutzer ein Administrator ist oder nicht?

In diesem Fall können Sie den Benutzernamen mit "File.userDirectory.name" bewerten.

Und ich denke, um herauszufinden, ob der Benutzer ein Administrator ist, könnten Sie wahrscheinlich versuchen, auf eine Datei zuzugreifen, für die Administratorrechte erforderlich sind (versuchen Sie möglicherweise, eine Datei in Windows / System32 zu schreiben). Wenn der Dateizugriff fehlschlägt, können Sie wahrscheinlich davon ausgehen, dass sich der Benutzer unter einem eingeschränkten Konto befindet.

Quelle
Henry Lee
Translate

Ein bisschen spät, aber ich bekam von einem Kunden den Wunsch, einige Werte aus der Registrierung zu lesen, als das Projekt fast abgeschlossen war. Wenn es mehr solcher Wünsche gäbe, hätte ich mich nie für AIR entschieden. Aber ich habe eine nette Erweiterung von FluorineFx gefunden, und durch die Erweiterung kann ich jetzt Zeichenfolgen- und Dword-Werte aus der Registrierung lesen. Nur Windows:http://aperture.fluorinefx.com/

Quelle
Leona Lee
Translate

Hier ist ein Beispiel für das Ändern der Windows-Registrierung in Adobe Air mithilfe von NativeProcess und Python. Sie können also Schlüssel nur mit einer einzigen Codezeile hinzufügen, löschen oder lesen !!

Herunterladen:Adobe Air Registry Modifierauf Github

Quelle
Translate

Sie könnten theoretisch die tatsächlichen Registrierungsdateien ändern, aber ich würde diese Idee sehr entmutigen.

Quelle
Translate

Seien Sie sehr vorsichtig, wenn Sie einen Socket-Server erstellen, der auf Registrierungsbefehle wartet. Sie schaffen möglicherweise eine Sicherheitslücke, und die persönlichen Firewalls der Benutzer können die Benutzerfreundlichkeit beeinträchtigen.

Quelle