C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[65001] win7 serial port 인식사용에 의한 권한 상승
초보 user [] 2250 읽음    2011-08-17 17:13
안녕하세요
현재 c++ builder 2009를 사용하고 있습니다.
xp에서는 초기 실행시 현재 레지스트리에 등록된 com port를 인식하는데 문제없으나
win7에서는 인식하지 못하네요 권한상승이 필요한 것 같은데 방법을 잘 모르겠어요(xp,win7 혼용 사용)
참고로 소스 아래에 첨부드립니다.
급한데 쉽게 권한 상승시키는 방법이 없을까요??

void __fastcall TForm1::FormCreate(TObject *Sender){
    Form1->Left = 100;
    Form1->Top = 50;
    ProgressBar = new TProgressBar(StatusBar1);
    ProgressBar->Parent = StatusBar1;
    ProgressBar->Position = 0;
    ProgressBar->Visible = false;
    TStringList *portlist=new TStringList;
    TRegistry *reg = new TRegistry;
    try{
      reg->RootKey = HKEY_LOCAL_MACHINE;
      reg->OpenKey("HARDWARE\\DEVICEMAP\\SERIALCOMM", true);
      reg->GetValueNames(portlist);
      Memo1->Clear();
        if ( portlist->Count == 0 ){
            ShowMessage("SerialPort doesn't installed");
            reg->CloseKey();
            return;
        }
        ComboBox1->Items->Add("Auto");
        number_of_port = portlist->Count;

        sprintf(sBuf,"Number of port is %d", number_of_port);
        Form1->Memo1->Lines->Add(sBuf);

        for(int i=0;i<portlist->Count;i++){
            if ( portlist->Strings[i].SubString(2,6) != "Device" ){
                number_of_port--;    // 시리얼포트가 아닌 놈들은 삭제
                continue;
            }
            ComboBox1->Items->Add(reg->ReadString(portlist->Strings[i]));
            Memo1->Lines->Add(portlist->Strings[i]);
            Memo1->Lines->Add(reg->ReadString(portlist->Strings[i]));
        }
        reg->CloseKey();
    }
    __finally{
        delete reg;
        delete  portlist;
    }
    ComboBox1->ItemIndex = 0;
    step_timer = TSTEP_INIT    ;
    sprintf(sBuf,"Number of port is %d", number_of_port);
    Form1->Memo1->Lines->Add(sBuf);

    circ_head = 0;
    circ_tail = 0;
    if ((hComThread = CreateThread (NULL, 0,(LPTHREAD_START_ROUTINE)ComThread, NULL,0, &id))
                     == INVALID_HANDLE_VALUE){
        ShowMessage("Error creating READ thread");
        return;
    }
}

+ -

관련 글 리스트
65001 win7 serial port 인식사용에 의한 권한 상승 초보 user 2250 2011/08/17
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.