|
짤팔이 님이 쓰신 글 :
: ===>실행file을 관리자권한으로 실행하니까 되네요...
: regiistry 의 편집관련 권한은 관계가 없는 것 같구요..(read 만 하는거는 다 check 가
: 되어있더군요--default 가요) win7과 다른상황이긴하지만 어쨋든 해결은 됬네요..
: 다른 조언 있으신 고수님들 계시면 추가 답변 부탁드립니다....
: ======<
:
: 짤팔이 님이 쓰신 글 :
: : "현재 컴퓨터에 연결된 통신포트 알아보는 방법" 에 대하여 장성호님께서
: : 알려주신 방법을 잘 사용해 오고 있습니다.-감사드립니다.
: : 레지스트리 GetValueNames 를 사용하는데요,,,win8에서는 list에 아무것도
: : 읽혀지는게 없습니다. search를 나름대로 많이해보았는데...아직 못찾아서...
: : 이렇게 질문 드립니다. 조언 부탁드립니다.
답변:
TRegistry 클래스 구현 상의 디폴트 권한설정의 문제 입니다.
//---------------------------------------------------------------------------
#include <registry.hpp>
#include <memory>
void GetCOMPort()
{
using namespace std;
auto_ptr<TStringList> list(new TStringList);
auto_ptr<TRegistry> reg(new TRegistry(KEY_READ));
reg->RootKey = HKEY_LOCAL_MACHINE;
reg->OpenKey("HARDWARE\\DEVICEMAP\\SERIALCOMM", false);
reg->GetValueNames(list.get());
for(int i = 0; I < list->Count; i++)
Form1->Memo1->Lines->Add(reg->ReadString(list->Strings[i]));
}
//---------------------------------------------------------------------------
위와 같이 해보세요.
|