2010-11-06 32 views
1

如何更改這是在使用(XP)當前聲卡,沒有進入控制面板>聲音設備>選擇播放設備。更改播放設備編程XP

任何語言就足夠了,或批處理文件,只是,我必須改變設備中進行播放的日期和其各自具有的時間來加載控制面板疼痛約50倍。

有誰知道怎麼樣?

+0

一個是完美的數字。 – 2010-11-06 23:20:11

+0

控制面板很可能只是更改註冊表設置。我會跑將procmon(http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx),僅捕獲註冊事件,以及設備的開關,然後看進行了哪些註冊表更改。一旦找出需要更改默認值的更改,您可以編寫一個腳本(從.NET到AutoHotKey的任何內容),爲您執行註冊表更改。請記住,如果您在註冊表中出現錯誤,可能會永久性地損壞您的音頻設備設置。 – patrickmdnet 2010-11-06 23:46:13

+0

可能的重複:http://stackoverflow.com/questions/1555156/c-how-to-programatically-change-the-playback-device – 2010-11-07 10:50:53

回答

3

要設置默認的聲音播放設備在Windows XP中,你可以更改以下注冊表項的值:

HKEY_CURRENT_USER\Software\Microsoft\Multimedia\Sound Mapper\Playback 

可能是最容易的事情,因爲現有的配置與所有的設備,您希望能夠從安裝中進行選擇,是在「聲音和音頻設備屬性」控制面板中一次選擇一個聲音播放設備,並將此註冊表項的設置導出到文件中。所以,如果你有3個聲音播放設備,你可以選擇它們,你最終會得到3個獨立的.REG文件,每個文件對應一個播放設備。否則,您將不得不以編程方式即時生成註冊表項文件。

一旦你產生這些reg文件,在資源管理器其中之一隻需雙擊將插入它們包含到註冊表中的適當位置,將選擇相應的播放設備的信息。您可以通過編程輕鬆執行這些註冊表腳本。在C#中,您可能會使用類似System.Diagnostics.Process.Start的東西,並傳遞想要生效的.REG文件的位置。或者,你可以寫默默導入註冊表項文件,而不要求確認一個簡單的批處理文件:

@echo off 
%windir%\regedit.exe /s ExternalSpeakers.reg 

不言而喻,在手動應用該解決方案和編輯註冊表,你採取任何破壞承擔全部責任說您可能會隨Windows安裝一起運行。我知道Windows XP解決方案是提問者正在尋找的東西,但對於任何未來的Google員工,請注意,這不適用於Windows Vista或更高版本,它使用Core Audio APIs來管理這些設置,請參閱this question一個解決方案。)