문제

(예/아니요)

편집하다:읽기 전용 액세스는 괜찮습니다.

올바른 솔루션이 없습니다

다른 팁

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

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를 실행하고...짜다!방금 AIR 앱에서 Windows 레지스트리를 수정했습니다!

값을 읽으려면 regedit의 내보내기 기능을 사용하여 reg 파일에 쓰고 reg 파일에서 읽을 수 있습니다.regedit 옵션에 대한 세부정보: http://www.robvanderwoude.com/regedit.php

다음은 몇 가지 추가 리소스입니다.
.reg 파일 구문: http://support.microsoft.com/kb/310516
AIR를 사용하여 파일에 쓰기: http://www.adobe.com/devnet/air/flex/articles/exploring_file_capability.html

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

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

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

당신이 할 수 있다면 나는 겁에 질릴 것입니다.

왜 겁을 먹었을까요?Air는 데스크톱 플랫폼이므로 OS의 API(예: 레지스트리 액세스)에 액세스하는 것이 합리적입니다.

즉, 현재는 지원되지 않습니다(Adobe는 매우 Mac 중심적인 것처럼 보이므로 추가될지는 의문입니다).

사용자 디렉터리 이름에서 사용자 이름을 가져오기로 결정했습니다.

File.userDirectory.name을 사용하면 대부분의 경우 작동하지만 매우 취약한 구현처럼 보입니다. 사용자 이름을 디렉터리로 사용하는 규칙을 유지하는 OS에 의존합니다.나는 그것을 깨뜨릴 수 있는 몇 가지 가능한 것들을 생각할 수 있습니다(TweakUI를 가지고 노는 것 등).

사용자가 관리자인지 아닌지 확인하려고 하시나요?

그렇다면 "File.userDirectory.name"을 사용하여 사용자 이름을 등급화할 수 있습니다.

그리고 사용자가 관리자인지 파악하려면 관리자 권한이 필요한 파일에 액세스하려고 시도할 수 있습니다(Windows/System32에 파일을 작성해 볼 수도 있음).파일 액세스에 실패하면 사용자가 제한된 계정에 속한다고 가정할 수 있습니다.

조금 늦었지만 클라이언트로부터 프로젝트가 거의 완료되면 레지스트리에서 일부 값을 읽어 달라는 요청을 받았습니다.이런 소망이 더 많았다면 저는 결코 AIR를 선택하지 않았을 것입니다.하지만 저는 FluorineFx에서 멋진 확장 기능을 찾았고, 이를 확장함으로써 이제 레지스트리에서 문자열 및 dword 값을 읽을 수 있습니다.Windows에만 해당: http://aperture.flurinefx.com/

다음은 NativeProcess 및 Python을 사용하여 Adobe Air에서 Windows 레지스트리를 수정하는 샘플입니다.따라서 단 한 줄의 코드로 키를 추가, 삭제 또는 읽을 수 있습니다!!

다운로드: Adobe Air 레지스트리 수정자 Github에서

이론적으로는 실제 레지스트리 파일을 수정할 수 있지만 그런 생각은 권장하지 않습니다.

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top