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

델파이 Q&A
Delphi Programming Q&A
[13133] Re:[질문]usb 메모리의 시리얼번호를 알아내는 방법???
소지영(몽인) [neonim] 11789 읽음    2010-02-28 03:10
VID, PID같은 경우 레지스트리에서 쉽게 얻어올수 있습니다.
장치가 어떤것인지 알면 좀더 쉽게 얻어올수 있고, 아니면 여러단계를 거쳐 얻어올수 있습니다.
예를들어 UMS라면 다음처럼 해서 쉽게 얻어올수 있습니다.

UMS로 인식된 장치가 1개 있을경우의 예

[레지스트리값]
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR\Enum
0:USB\Vid_1976&Pid_1307\110074973765
Count:1
NextInstance:1

위 레지스트리 내용을 보면 Count가 1로 되어 있는데 이건 장치가 1개 라는 뜻입니다.
장치가 2개 연결되면 2의값을 가집니다.
"0"이라고 된부분의 값이 "USB\Vid_1976&Pid_1307\110074973765"라고 되어 있는데,
이것은 USB장치에 대한 세부 정보가 있는 위치 입니다.
이 "USB\Vid_1976&Pid_1307\110074973765" 내용만 가지고도 vid, pid를 식별 할수 있습니다.
만일 좀더 자세한 정보가 필요하면 "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\" + "USB\Vid_1976&Pid_1307\110074973765"를 살펴보면 여러 정보를 보실수 있습니다.

나머지 프린터나 모뎀이나 장치에 대한 정보도 저런식으로 레지스트리를 찾아가 정보를 알아낼수 있습니다.
(어떤 장치인지 모른다면 레지스트리를 열심히 왔다갔다 해야 합니다. 알고 있는게 유리하죠...)

그리고 자동으로 하고 싶으시면 해당 장치를 내렸다 올리면서 레지스트리 변경 부분을 체크해서 사용 하시면 되겠네요.
아니면 사용자에게 장치연결을 해제 했다가 다시 연결 하라고 메세지를 띄워 주던지 하면 됩니다.








김현승 님이 쓰신 글 :
: 안녕하세요
:
: usb 메모리의 시리얼번호(pid)에 대해서 뽑아낼 수 있는 방법 좀 알려주세요~~
:
: 뒤적뒤적 하고 있는데 잘 모르겠네요~~
:
: 부디 아시는 분은 꼭 댓글 부탁드립니다.

+ -

관련 글 리스트
13126 [질문]usb 메모리의 시리얼번호를 알아내는 방법??? 김현승 2658 2010/02/11
13133     Re:[질문]usb 메모리의 시리얼번호를 알아내는 방법??? 소지영(몽인) 11789 2010/02/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.