2008-08-06 4 views
7

(y/N)Adobe Air에서 Windows 레지스트리에 액세스 할 수 있습니까?

편집 : 읽기 전용 액세스가 유효합니다.

+0

응용에는 배경 다운로더이며, I는 현재 레지스트리에 저장된 사용자 이름과 역할을,지고의 몇 가지 방법이 필요합니다. 나는 읽기 전용 액세스로 레지스트리 파일에 접근 할 수 있다고 생각하지만 분명히 시도하고 분석하는 것은 정신 나간 것입니다 (Jarin이 말했듯이). 나는 사용자 디렉토리의 이름에서 사용자 이름을 얻고 서버에 웹 메소드를 작성하여 역할을 되 찾으려했다. C#은 창의적인 아이디어였습니다. 감사합니다. – Shawn

+0

나는 너를 두려워 할 수있다. – sparkes

답변

2

사용자가 다른 응용 프로그램을 설치하도록 강요하는 경우 레지스트리에 액세스하기위한 일종의 프로토콜을 제공하는 작은 C# 또는 C++ Windows 서비스를 작성할 수 있습니다. 그런 다음 AIR에서 Socket 클래스를 사용하여 결과를 AIR 응용 프로그램에 반환하는 C# 서비스와 메시지를주고받을 수 있습니다.

앱이로드되면 소켓에 연결을 시도 할 수 있으며 연결이 거부되면 사용자에게 서비스 다운로드/설치를 요청할 수 있습니다.

레지스트리에 대한 직접 액세스에 대해서는 Adobe가 AIR에서 허용하지 않을 것이라고 확신합니다.

0

이론적으로 실제 레지스트리 파일을 수정할 수는 있지만 그 아이디어는 크게 권장하지 않습니다.

1

사용자가 관리자인지 아닌지 확인하려고합니까?

그렇다면 사용자 이름을 "File.userDirectory.name"으로 바꿀 수 있습니다.

그리고 아마도 관리자 권한이 필요한 파일 (아마도 Windows/System32에 파일을 작성 해보십시오)에 액세스하려고 시도 할 수있는 관리자인지 아닌지를 생각합니다. 파일 액세스가 실패하면 사용자가 제한된 계정에 있다고 가정 할 수 있습니다.

0

레지스트리 명령을 수신하는 소켓 서버를 만드는 경우 매우주의해야합니다. 잠재적으로 보안 구멍이 생기고 사용자의 개인 방화벽이 유용성 측면에서 방해가 될 수 있습니다.

2

나는 당신을 놀라게 할 수있다.

왜 당신을 놀라게하겠습니까? Air는 데스크톱 플랫폼이며 운영체제의 API (예 : 레지스트리 액세스)에 액세스하면 많은 의미가 있습니다.

말하자면, 지금은 지원되지 않습니다. (그리고 어도비는 매우 맥 중심적 인 것처럼 보입니다.

내가 사용자 디렉토리

File.userDirectory.name 대부분의 경우에 작동합니다 사용의 이름에서 사용자 이름을 잡는에 정착하지만 매우 깨지기 쉬운 구현처럼 보인다, 그것은 의존 OS에서 사용자 이름을 디렉토리로 유지하는 규칙을 유지해야합니다. 나는 그것을 깨뜨릴 수도있는 몇 가지 가능한 것들을 생각할 수있다 (TweakUI 등을 가지고 노는).

1

다소 늦었지만 프로젝트가 거의 끝나면 클라이언트에서 레지스트리 값을 읽어 달라는 소원이 있습니다. 이러한 유형의 소원이 더 있다면 AIR를 선택하지 않았을 것입니다. 하지만 FluorineFx에서 멋진 확장 기능을 발견했으며이를 확장하여 레지스트리에서 문자열과 dword 값을 읽을 수 있습니다. Windows 만 해당 : http://aperture.fluorinefx.com/

7

아직 시도하지는 않았지만 해결 방법을 찾은 것 같습니다.

Adobe AIR은 Windows 레지스트리에 쓸 수 없지만 AIR 2에서는 원시 프로세스를 시작할 수 있습니다.다음은이를 수행하는 방법을 보여주는 블로그 게시물입니다. http://www.adobe.com/devnet/air/flex/quickstart/articles/interacting_with_native_process.html

이제 Windows에서 .reg 파일로 Windows 레지스트리를 수정할 수 있습니다. .reg 파일은 regedit.exe에서 읽는 일반 텍스트 파일입니다. 그래서 이론적으로 파일 시스템에 .reg 파일을 작성한 다음 .reg 파일이 전달 된 regedit.exe를 실행하면 ... TADA! 방금 AIR 응용 프로그램에서 Windows 레지스트리를 수정했습니다!

값을 읽으려면 regedit의 내보내기 기능을 사용하여 reg 파일에 기록하고 reg 파일에서 읽을 수 있습니다. regedit를의 옵션 상세 정보 :
.reg 파일의 구문은 다음과 같습니다 : AIR와 파일에 http://support.microsoft.com/kb/310516
쓰기 : 여기

1

http://www.adobe.com/devnet/air/flex/articles/exploring_file_capabilities.html이 NativeProcess를 사용하여 어도비 AIR에서 윈도우 레지스트리를 수정하는 샘플입니다 여기에 http://www.robvanderwoude.com/regedit.php

몇 가지 추가 리소스입니다 및 파이썬. 따라서 한 줄의 코드로 키를 추가, 삭제 또는 읽을 수 있습니다!

다운로드 : Adobe Air Registry Modifier Github에서

+0

링크가 끊어졌습니다. – giorgian

+0

@giorgian 링크가 업데이트되었습니다. –

+0

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