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
[14707] 사운드장치 리스트 소스코드입니다. 여기서 기본 사운드장치 설정 방법 좀 알려주세요.
하두고 [hadugo] 2658 읽음    2013-06-14 14:56
앞에서 했던 질문인데 시원한 답변이 없어 여기 저기 돌아다니며  찾은 소스코드입니다.
아래 소스코드는 피시에 장착된 사운드장치를 나열하는 소스코드인데요.

아래 소스에서 나열된 사운드장치를 선택하여 더블클릭하면
해당 사운드장치가 윈도우 기본 사운드장치로 바뀌게 하고 싶은데요.

기본 사운드 장치를 바꾸는 방법을 모르겠습니다.

procedure TForm1.EnumAudioDevices;
var
  dsCreateDevEnum  : ICreateDevEnum;
  EnumDevice       : IEnumMoniker;
  DeviceMoniker    : IMoniker;
  Data             : Integer;
  DevicePropBag    : IPropertyBag;
  DeviceName       : OLEVariant;
begin
  If CoCreateInstance(CLSID_SystemDeviceEnum,nil,CLSCTX_INPROC_SERVER,IID_ICreateDevEnum,dsCreateDevEnum) = S_OK then
  Begin
    If dsCreateDevEnum.CreateClassEnumerator(CLSID_AudioRendererCategory,EnumDevice,0) = S_OK then
    Begin
      EnumDevice.Reset;
      While EnumDevice.Next(1,DeviceMoniker,@Data) = S_OK do
      Begin
        If DeviceMoniker.BindToStorage(nil,nil,IID_IPropertyBag,DevicePropBag) = NOERROR then
        Begin
          If DevicePropBag.Read('FriendlyName',DeviceName,nil) = NOERROR then
             IF Copy(DeviceName, 1, Length('DirectSound')) = 'DirectSound' Then
                ListBox1.Items.Add(Copy(DeviceName, Length('DirectSound: ') + 1, Length(DeviceName) - Length('DirectSound: ')));
          DevicePropBag := nil;
        End;
        DeviceMoniker := nil;
      End;
      EnumDevice := nil;
    End;
    dsCreateDevEnum := nil;
  End;
End;

+ -

관련 글 리스트
14707 사운드장치 리스트 소스코드입니다. 여기서 기본 사운드장치 설정 방법 좀 알려주세요. 하두고 2658 2013/06/14
14709     Re: 뭔가 착각하고 있나 보네요 리버스엔지니어링 2118 2013/06/17
14710         Re:Re: 뭔가 착각하고 있나 보네요 하두고 2078 2013/06/17
14711             Re: COM 오브젝트를 인젝션해서 분석해보면 답이 나옴 지나다가 2230 2013/06/19
14712                 Re:Re: COM 오브젝트를 인젝션해서 분석해보면 답이 나옴 2072 2013/06/19
14713                     Re:Re:Re: COM 오브젝트를 인젝션해서 분석해보면 답이 나옴 하두고 1971 2013/06/19
14714                         Re: COM 코드 어셈블러로 작성한 것임 지나다가 2335 2013/06/20
14718                             Re:Re: COM을 어셈블러로 코딩하시다니 헐~ 델파이 2194 2013/06/22
14716                             Re:Re: 인젝션이 안 걸리는데요? 궁금이 1932 2013/06/20
14717                                 Re:Re:Re: 인젝션이 안 걸리는데요? 지나다가 2206 2013/06/20
14715                             Re:Re: 어셈코드 올려서 약올리는거 같아서 ... Lyn 2221 2013/06/20
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.