Windows 7의 명령 줄에서 볼륨 레벨에 어떻게 액세스 할 수 있습니까?


17

내가 필요한 것

명령 줄에서 Windows 볼륨 레벨에 액세스 할 수있는 도구 또는 스크립트를 찾고 있습니다. 이상적으로는 응용 프로그램 수준을 포함하여 모든 볼륨을 가져오고 설정할 수 있지만 마스터 수준 만 가져 오기로 결정했습니다. 그것을 사용하는 경우 난 상관 없어 PowerShell, WMI, JavaScript, .Net, 부두, 또는 나비. 0 %에서 100 % 범위에 맞게 추가 처리 할 수있는 숫자를 제공하는 솔루션이 가능합니다.

달리 말하면, 프롬프트 부분은 내가 채워야 할 블랙 박스입니다.

C:\> getvol master
50

또는

C:\> wmic <alias> where "device='master' and name='volume'" get name,value
Name    Value
Volume  0xDEADBEEF

포장하는 데 시간을 소비하거나 도구를 자유롭게 사용할 수 있다면 직접 작성해야하는지 걱정하지 않습니다. 후자의 경우 핵심에 대한 몇 가지 포인터 / 개념 증명이 필요하지만 cruft를 자체적으로 관리 할 수 ​​있습니다. 또한이 목적을 위해 새로운 개발 프레임 워크를 설치하지 않으려 고합니다 ( music2myeariglvzx의 답변은 이러한 요구 사항을 소개 하기 전에 제공 되었습니다).

"플랫폼"으로 다음을 사용할 수 있습니다.

  • Windows 7 Home Premium과 함께 제공되는 모든 것
  • Cygwin과 함께 제공되는 모든 것
  • 파이썬
  • 루비

일반적으로 오픈 소스 솔루션이 선호됩니다. 폐쇄 소스 도구는 프리웨어이고 소스를 신뢰할 수있는 한 괜찮습니다. 상업용 솔루션은 필요 없습니다.

내가 필요하지 않은 것

  • 볼륨 설정 관련된 몇 가지 유사한 질문 이 있습니다. 무엇보다도, 내가 필요 얻을 볼륨, 설정되지 않았습니다.
  • nircmdc볼륨을 설정하지만받지 지원한다.
  • 내 레지스트리에는 GUI 믹서를 통해 볼륨을 조정할 때 예측 가능한 값으로 변경되는 키 [1]가 있지만이 키를 읽으면 하드웨어 변경이나 시스템 업그레이드시 손상되기 쉽다고 생각합니다. 미래에 대비할 수있는 솔루션에 의지 할 수 없으면 사용할 수 없습니다.
  • 있습니다 AutoHotKeyWSH웹의 볼륨을 설정하기위한 솔루션은하지만) 그들도 그들이 사용) B, 악화 설정 만 좋은 및 SendKeysGUI를 제어 또는 자동 마우스 움직임. GUI 자동화는 옵션이 아닙니다.

##windowsfreenode 의 채널은 그 어느 때보 다 도움이되지 않습니다 .Google은 해킹과 반 구워진 해결 방법으로 오버플로합니다 .Wiccan 주문에서 WinAPI 호출을 말할 수 없습니다.

누구나 방법을 알고 있습니까?


  1. HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0000\MixerSettings\eLineOutTopo\PrimaryNode000



답변을 확장해야합니까? 프로그래밍 경험이있는 것 같아서 더 많은 것이 필요하다는 것을 확신하지 못했습니다. AutoHotkey를 사용하여 목표를 쉽게 달성하는 방법에 대한 예를 제공 할 수 있습니다.
iglvzx

나는 그것이 매우 좋은 제안이라고 생각한다. 다시 한번 감사하지만 AHK는 나를 한 번 물었고 그 이후로 수줍어한다. 완전히 본격적인 솔루션이더라도 사용하지 않을 것입니다. 미래의 독자 들이나 더 많은 투표자들을 위해 그것을 확장시키는 데 방해가되는 것은 없습니다. :)
peth 2013 년

1
(reg.는 내 상자에 존재하지 않는 것처럼 보이므로 실제로 불안정 할 수 있습니다). 또한 내 C ++ 답변을 참조하십시오 : stackoverflow.com/a/21056089/32453
rogerdpack

답변:


5

이 질문은 StackOverflow에서 질문과 답변을 받았습니다 : /programming/4640106/how-to-get-current-volume-of-system-sound-device-in-windows-7

대답 : /programming//a/4640225/704977

EndpointVolume API를 찾고 있습니다. 이것은 Windows Vista에서 출시 된 새로운 오디오 API의 일부이며 마스터 볼륨을 가져 오거나 설정하는 데 사용할 수 있습니다.
... CodeProject : Vista Core Audio API 마스터 볼륨 컨트롤에서 사용할 수있는 완전한 관리 래퍼 라이브러리가 있습니다.


포인터 주셔서 감사합니다! 이것을 직접 코딩해야합니까, 아니면 질문 / 답변에서 나온 작은 도구에 대해 알고 있습니까? 전에 C #을 건드리지 않았습니다. 직접 코딩해야하는 경우 자유롭게 사용할 수있는 컴파일러가 있습니까?
peth

최악의 경우 무료로 Visual Studio C # Express를 다운로드해야합니다. microsoft.com/visualstudio/en-us/products/2010-editions/…
music2myear

귀하의 질문에 대한 해결책을 찾는 동안이 특정 답변 만 찾았습니다. 컴파일 된 바이너리가 이미 공개되어 있는지 확인하기 위해 더 연구하지 않았습니다.
music2myear

이 구글 검색이 어떤 약속이 보인다 google.com/search?q=get+current+volume+by+command+line+windows
music2myear

2
그 중 하나는 C # 지향적 인 것 같습니다. C ++ 'ish 옵션을 찾고 있다면 stackoverflow.com/a/21056089/32453
rogerdpack

4

AutoHotkey 솔루션을 원하지 않는다고 말했지만 AutoHotkey API에는 원하는 것이 있습니다.

AutoHotkey와 함께 GUI를 만들거나 핫키를 사용할 필요가 없습니다. .ahk스크립트 를 컴파일하여 강력한 명령 줄 유틸리티를 작성할 수 있습니다 . 즉, 작업을 위해 FileAppend 명령 을보고 싶을 것 입니다 stdout.


gist.github.com/rdp/8363141 (단순한 콘솔 앱은 더 간단하고 쉬울 수 있지만 다른 의견은 여기를 참조하십시오)
rogerdpack

0

마스터 볼륨은 레지스트리 위치에 저장됩니다.

...\#eSpeakerTopo\Properties\{7fb7b48f-531d-44a2-bcb3-5ad5a134b3dc}

예를 들어이 REG 파일은 마스터 볼륨을 100 %로 설정합니다.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\DeviceClasses\{6994ad04-93ef-11d0-a3cc-00a0c9223196}\##?#HDAUDIO#FUNC_01&VEN_8384&DEV_7680&SUBSYS_83847680&REV_1034#4&31e60982&0&0001#{6994ad04-93ef-11d0-a3cc-00a0c9223196}\#eSpeakerTopo\Properties\{7fb7b48f-531d-44a2-bcb3-5ad5a134b3dc}\20000]
@=hex(ffff1003):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00

키 이름이 다를 수 있습니다. 변경 사항을 적용하려면 다시 시작해야합니다.

에서 Properties또는 {7fb7b48f-531d-44a2-bcb3-5ad5a134b3dc}키 를 편집하거나 열지 못할 수 있습니다 regedit. 필요한 액세스 권한이 있지만 다음과 같은 오류가 발생할 수 있습니다.

[Window Title]
Error Opening Key

[Content]
{7fb7b48f-531d-44a2-bcb3-5ad5a134b3dc} cannot be opened.
An error is preventing this key from being opened.

[OK]

키 이름이 너무 길기 때문입니다. 긴 키 이름의 이름을 일시적으로 한 문자로 바꾼 다음 다시 이름을 바꿔야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.