Vă mulțumim pentru susținere

Puteți accesa registrul Windows de la Adobe Air?

(Y / N)

Editare: accesul numai pentru citire este bine.

0
adăugat editat
Vizualizări: 1
Aplicația este o descărcare de fundal și am nevoie de un mod de a obține numele și rolul utilizatorilor, care în prezent sunt stocate doar în registry. Cred că aș putea ajunge la fișierele de registru cu acces doar pentru citire, dar, evident, ar fi nebun să încerc și să analizez (așa cum spunea Jarin). M-am hotărât să iau numele utilizatorilor din numele directorului de utilizatori și să scriu o metodă web pe server pentru a-și reveni. C# a fost o idee creativă, mulțumită.
adăugat autor Shawn
Dacă poți fi îngrozit.
adăugat autor sparkes

6 răspunsuri

Dacă sunteți dispus să forțați utilizatorul să instaleze, de asemenea, o altă aplicație, puteți scrie un mic serviciu C# sau C ++ care deschide pur și simplu un Socket care oferă un fel de protocol pentru a accesa registrul. Apoi, în AIR puteți utiliza clasa Socket pentru a trimite mesaje către / de la serviciul C# care va returna rezultatele în aplicația AIR.

Când aplicația se încarcă, puteți încerca să vă conectați la Socket, iar dacă conexiunea este respinsă, puteți solicita utilizatorului să descarce / instalați serviciul.

În ceea ce privește accesul direct la registru, sunt destul de sigur că Adobe nu ar permite acest lucru de la AIR.

0
adăugat

Încercați să determinați dacă utilizatorul este administrator sau nu?

Dacă da, puteți să faceți gradul de utilizator cu "File.userDirectory.name".

Și cred că pentru a afla dacă utilizatorul este un administrator, probabil că ați putea încerca să accesați un fișier care necesită privilegii de administrator (poate încercați să scrieți un fișier în Windows / System32). Dacă accesul la fișiere eșuează, probabil că presupuneți că utilizatorul are un cont limitat.

0
adăugat

Fiți foarte atent dacă decideți să creați un server socket care să asculte comenzile din registry. Este posibil să creați o gaură de securitate, iar firewall-urile personale ale utilizatorilor ar putea deveni în calea utilizării.

0
adăugat

Nu am încercat încă asta, dar cred că am găsit o soluție.

Adobe AIR cannot write to Windows Registry, but you can, however, launch a native process in AIR 2. Here's a blog post that shows how to do that: http://www.adobe.com/devnet/air/flex/quickstart/articles/interacting_with_native_process.html

Acum, pe Windows, puteți modifica registrul Windows cu fișiere .reg. Fișierele .reg sunt doar fișiere text simplu care sunt citite de regedit.exe. Deci, teoretic, puteți scrie un fișier .reg în sistemul de fișiere, apoi lansați regedit.exe cu fișierul .reg trecut în și ... TADA! Tocmai ați modificat registrul Windows din aplicația dvs. AIR!

To read value, you can use regedit's export function to write to a reg file and read from the reg file. Details to regedit's options: http://www.robvanderwoude.com/regedit.php

Here are some additional resources:
.reg file syntax: http://support.microsoft.com/kb/310516
write to file with AIR: http://www.adobe.com/devnet/air/flex/articles/exploring_file_capabilities.html

0
adăugat

Dacă poți fi îngrozită.

De ce ai fi îngrozit? Air este o platformă desktop și accesul la API-urile sistemului de operare (cum ar fi accesul la registri) are o mare importanță.

Acestea fiind spuse, nu sunt suportate acum (și întrucât Adobe pare a fi foarte Mac-centric, mă îndoiesc că va fi vreodată adăugat).

M-am hotărât să apuc numele de utilizator din numele directorului de utilizator

Utilizarea File.userDirectory.name va funcționa în majoritatea cazurilor, dar se pare că este o implementare foarte fragilă, se bazează pe sistemul de operare care menține convenția de a avea numele de utilizator ca director. Mă gândesc la câteva lucruri posibile care ar putea să-l spargă (joc cu TweakUI etc.).

0
adăugat

Ați putea modifica teoretic fișierele de registru reale, dar aș descuraja foarte mult această idee.

0
adăugat