Apa yang saya butuhkan
Saya mencari alat atau skrip yang memungkinkan saya untuk mengakses level volume Windows dari baris perintah. Idealnya itu akan memungkinkan saya untuk mendapatkan dan mengatur semua volume termasuk level aplikasi, tapi saya akan puas hanya mendapatkan, dan hanya tingkat master. Saya tidak keberatan jika menggunakan PowerShell
, WMI
, JavaScript
, .Net
, Voodoo, atau kupu-kupu. Solusi apa pun yang hanya akan memberi saya nomor yang dapat saya proses lebih lanjut agar sesuai dengan rentang dari 0% hingga 100% akan dilakukan.
Dengan kata lain, bagian prompt adalah kotak hitam yang perlu saya isi:
C:\> getvol master
50
atau bahkan
C:\> wmic <alias> where "device='master' and name='volume'" get name,value
Name Value
Volume 0xDEADBEEF
Saya tidak keberatan jika saya harus meluangkan waktu untuk membungkusnya atau bahkan menulis sesuatu sendiri jika alat untuk melakukannya tersedia secara bebas. Dalam kasus terakhir, saya memerlukan beberapa pointer / pembuktian konsep untuk core, tetapi saya dapat mengelola cruft sendiri. Juga saya ingin menghindari menginstal kerangka pembangunan baru hanya untuk tujuan ini (catatan bahwa kedua music2myear ini dan iglvzx ini jawaban diberi sebelum saya memperkenalkan persyaratan ini).
Sebagai "platform", saya sudah tersedia:
- apa pun yang datang dengan Windows 7 Home Premium
- apa pun yang datang dengan Cygwin
- Perl
- Python
- Rubi
Secara umum, solusi open-source sangat disukai. Alat sumber tertutup tidak masalah selama itu freeware dan sumbernya dapat dipercaya. Solusi komersial tidak dapat digunakan.
Apa yang tidak saya butuhkan
- Ada beberapa pertanyaan serupa yang sebagian besar berhubungan dengan pengaturan volume. Yang paling penting, saya perlu mendapatkan volume, tidak diatur.
- Ada
nircmdc
, yang mendukung pengaturan volume, tetapi tidak mendapatkan. - Ada kunci [1] di registri saya yang memiliki nilai yang berubah diprediksi ketika saya menyesuaikan volume melalui mixer GUI, tapi saya kira membaca dari kunci itu rentan terhadap kerusakan pada perubahan perangkat keras atau peningkatan sistem. Kecuali saya bisa mengandalkan solusi yang cukup tahan di masa depan, saya tidak bisa menggunakannya.
- Ada
AutoHotKey
danWSH
solusi untuk mengatur volume di Web, tetapi a) mereka juga hanya baik untuk pengaturan dan, lebih buruk, b) mereka menggunakanSendKeys
atau gerakan mouse otomatis untuk mengontrol GUI. Mengotomatiskan GUI bukanlah suatu pilihan.
The ##windows
channel pada freenode tidak membantu seperti biasa, Google meluap dengan hacks dan setengah matang workarounds, dan saya tidak bisa mengatakan panggilan WinAPI dari mantera Wiccan.
Apakah ada yang tahu cara?
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0000\MixerSettings\eLineOutTopo\PrimaryNode000
Jawaban:
Pertanyaan ini ditanyakan dan dijawab di StackOverflow: /programming/4640106/how-to-get-current-volume-of-system-sound-device-in-windows-7
Jawabannya: /programming//a/4640225/704977
sumber
Saya tahu Anda mengatakan Anda tidak menginginkan solusi AutoHotkey, tapi saya percaya API AutoHotkey memiliki apa yang Anda cari:
Anda tidak perlu membuat GUI atau menggunakan tombol cepat dengan AutoHotkey. Anda dapat menulis utilitas baris perintah yang kuat dengan menyusun
.ahk
skrip. Yang sedang berkata, Anda akan ingin melihat perintah FileAppend untuk bekerja dengannyastdout
.sumber
Volume master disimpan di lokasi registri:
Sebagai contoh, file REG ini menetapkan volume master menjadi 100%.
Nama kuncinya mungkin berbeda. Anda harus memulai ulang agar perubahan diterapkan.
Anda mungkin tidak dapat mengedit atau membuka
Properties
atau{7fb7b48f-531d-44a2-bcb3-5ad5a134b3dc}
kunci dalamregedit
. Meskipun Anda memiliki izin akses yang diperlukan, Anda mungkin menerima kesalahan seperti ini:Ini karena nama kuncinya terlalu panjang. Anda harus sementara mengubah nama nama kunci panjang menjadi satu karakter dan kemudian mengubah nama kembali.
sumber