2008-08-06 9 views
7

(y/N)Czy można uzyskać dostęp do rejestru systemu Windows z Adobe Air?

Edytuj: Dostęp do odczytu jest w porządku.

+0

Aplikacja jest downloader tło, i muszę w jakiś sposób na uzyskanie nazwy użytkowników i rolę, która jest obecnie przechowywana tylko w rejestrze. Myślę, że mógłbym dostać się do plików rejestru z dostępem tylko do odczytu, ale oczywiście byłoby to szalone, aby spróbować i parsować (jak powiedział Jarin). Postanowiłem pobrać nazwę użytkownika z nazwy katalogu użytkownika i napisać metodę sieciową na serwerze, aby odzyskać swoją rolę. C# było kreatywnym pomysłem, dziękuję. – Shawn

+0

Jeśli możesz, będę przerażony. – sparkes

Odpowiedz

2

Jeśli chciałbyś zmusić użytkownika do zainstalowania innej aplikacji, możesz napisać małą usługę Windows C# lub C++, która po prostu otwiera gniazdo, które zapewnia pewien rodzaj protokołu dostępu do rejestru. Następnie w środowisku AIR można użyć klasy Socket do wysyłania wiadomości do/z usługi C#, która będzie zwracać wyniki do aplikacji AIR.

Po załadowaniu aplikacji możesz spróbować połączyć się z gniazdem, a jeśli połączenie zostanie odrzucone, możesz poprosić użytkownika o pobranie/zainstalowanie usługi.

Jeśli chodzi o bezpośredni dostęp do rejestru, jestem prawie pewien, że Adobe nie zezwoli na to ze środowiska AIR.

0

Teoretycznie można zmodyfikować rzeczywiste pliki rejestru, ale zdecydowanie zniechęciłbym ten pomysł.

1

Czy próbujesz ustalić, czy użytkownik jest administratorem, czy nie?

Jeśli tak, możesz zmienić nazwę użytkownika za pomocą "File.userDirectory.name".

I myślę, aby dowiedzieć się, czy użytkownik jest administratorem, prawdopodobnie mógł spróbować uzyskać dostęp do pliku, który wymaga uprawnień administratora (może spróbuj napisać plik do systemu Windows/System32). Jeśli dostęp do pliku nie powiedzie się, prawdopodobnie możesz założyć, że użytkownik jest pod ograniczonym kontem.

0

Zachowaj ostrożność, jeśli zdecydujesz się utworzyć serwer gniazd, który nasłuchuje poleceń rejestru. Potencjalnie tworzysz lukę bezpieczeństwa, a osobiste zapory ogniowe użytkowników mogą przeszkadzać pod względem użyteczności.

2

Jeśli możesz, będę przerażony.

Dlaczego byłbyś przerażony? Air to platforma komputerowa, a posiadanie dostępu do interfejsów API systemu operacyjnego (takich jak dostęp do rejestru) ma wiele sensu.

To powiedziawszy, nie jest to teraz obsługiwane (a ponieważ Adobe wydaje się być bardzo skoncentrowane na Macu, wątpię, czy kiedykolwiek zostanie dodane).

mam rozliczone chwytając nazwy użytkowników z nazwą katalogu użytkownika

Korzystanie File.userDirectory.name będzie działać w większości przypadków, ale wydaje się bardzo kruche życie, opiera w systemie operacyjnym zachowując konwencję posiadania nazwy użytkownika jako katalogu. Mogę wymyślić kilka możliwych rzeczy, które mogą go złamać (gra z TweakUI itp.).

1

Trochę za późno, ale dostałem życzenie od klienta, aby odczytał niektóre wartości z rejestru, gdy projekt był prawie ukończony. Gdyby było więcej tego typu życzeń, nigdy nie wybrałbym AIR. Ale znalazłem ładne rozszerzenie z FluorineFx, a po jego rozszerzeniu mogę teraz odczytać wartości ciągu i dwordu z rejestru. Tylko system Windows: http://aperture.fluorinefx.com/

7

Nie próbowałem tego jeszcze, ale myślę, że znalazłem obejście.

Adobe AIR nie może pisać w rejestrze systemu Windows, ale można jednak uruchomić proces natywny w środowisku AIR 2.Oto blog, który pokazuje, jak to zrobić: http://www.adobe.com/devnet/air/flex/quickstart/articles/interacting_with_native_process.html

Teraz, w systemie Windows, jesteś w stanie zmodyfikować rejestr systemu Windows z plikami .reg. Pliki .reg to zwykłe pliki tekstowe, które są odczytywane przez regedit.exe. Więc teoretycznie, możesz napisać plik .reg do systemu plików, a następnie uruchomić regedit.exe z przekazanym plikiem .reg i ... TADA! Właśnie zmodyfikowałeś rejestr systemu Windows z aplikacji AIR!

Aby odczytać wartość, można użyć funkcji eksportu regedit, aby zapisać do pliku reg i odczytać z pliku rejestru. Szczegóły na temat opcji regedit w: http://www.robvanderwoude.com/regedit.php

Oto niektóre dodatkowe zasoby:
.reg plik składni: http://support.microsoft.com/kb/310516
zapisu do pliku z powietrza: http://www.adobe.com/devnet/air/flex/articles/exploring_file_capabilities.html

1

Oto przykład modyfikacji rejestru systemu Windows w środowisku Adobe AIR za pomocą NativeProcess i Python. Możesz więc dodawać, usuwać lub czytać klawisze tylko jedną linią kodu !!

Download: Adobe Air Registry Modifier na Github

+0

Link jest uszkodzony. – giorgian

+0

@giorgian link został zaktualizowany –

+0

https://github.com/yaa110/Adobe-Air-Registry-Modifier –