Hallo,
da ich ein Logitech G35 besitze, möchte ich natürich dementsprechend auch manchmal darauf hören.
Aber bei meinem Windows 7 muss ich dafür immer das Standard-Audiogeärt wechseln.
Kann ich diesen Schritt nicht automatisieren?
Hallo,
da ich ein Logitech G35 besitze, möchte ich natürich dementsprechend auch manchmal darauf hören.
Aber bei meinem Windows 7 muss ich dafür immer das Standard-Audiogeärt wechseln.
Kann ich diesen Schritt nicht automatisieren?
[ offen ] Standard Audiogerät setzen (Win XP + Win 7)
Vielleicht hilft dir das weiter !
Danke !
Leider hat dies mir nicht viel gebracht, da es den genannten Reg-Key bei mir auch nicht gibt.
Ich google mich seit heute morgen schon zu Tode ! ![]()
Mit dem überaus nützlichen Process Monitor kannst du evtl herausfinden,
wo in der Registry dein Standard-Audiogerät umgeschaltet wird.
![]()
Unmöglich. Ich änder den Wert und in der Zeit hab ich ca. 100.000 Registry aktivitäten aufgezeichnet.
Jetzt nach 20 Sekunden bin ich bereits bei 1,2 Millionen. ![]()
Du kannst die Ausgabe vom Process Monitor auch filtern,
damit nur relevante Informationen angezeigt werden.
Der process ist "rundll32.exe" und greift u.a. zu auf:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Render\
Unmöglich. Ich änder den Wert und in der Zeit hab ich ca. 100.000 Registry aktivitäten aufgezeichnet.
Jetzt nach 20 Sekunden bin ich bereits bei 1,2 Millionen.
Nimm "RegShot" !
Der zeigt Dir nur die Differenzen zweier Registry-Snapshot's. Das reduziert deutlich den Aufwand.
*Ausgraben*
Hallo Leute,
ich habe nochmal recherchiert, und folgendes gefunden:
http://www.computerbase.de/forum/showthread.php?t=786817
Ist natürlich auch keine gern gesehen Lösung, aber wenigstens eine.
Sollte jemand mit der Registry weiter gekommen sein, könnte er sein Ergebnis hier ja posten.
(Ich bin mit RegShot etc. pp. nicht klargekommen)
Hallo PokerFace,
wenn ich Deine Frage richtig verstanden habe, müsste das auch mit folgender Funktion der BASS_UDF gehen.
_BASS_SetDevice()
[/autoit]So wie ich das verstanden habe, müsste ich doch so mit der Funktion arbeiten können:
[autoit]#include <Bass.au3>
_BASS_StartUp()
_BASS_SetDevice(1);Das erste in meiner "Geräte" Liste
Jedoch tut sich nichts.
Hallo PokerFace,
ganz so einfach geht es dann doch nicht.
Wenn Du den Code so verwenden möchtest, müsstest du mit
_BASS_Init()
[/autoit]oder einer vergleichbaren Funktion arbeiten.
Außerdem solltest Du beachten, dass das Ausgabegerät nur im Rahmen der Verwendung mit dem jeweiligen Programm und der Bass_UDF geändert wird. Dazu steht in der Hilfe der jeweiligen Funktionen der Bass_UDF mehr.
Okay.
Also ich möchte die Änderung des Standartausgabegerätes ja nicht nur für ein Programm sonder den ganzen PC haben, da ich ein Headset besitze und die ganze Umschalterei echt nervt.
Hallo zusammen!
Ich musste mal etwas für einen Arbeitskollegen machen.
Zuerst für XP (Dort konnte man es noch über die Registry erledigen)
Danach für Vista / Win7.
Dort habe ich nur die Möglichkeit gefunden, es fernzusteuern.
Hier der Code:
Das INI-File wird automatisch erzeugt, wenn nicht vorhanden. Darin muss man
- bei XP die Namen der zu tauschenden Audio Devices Angeben
- die Nummern der Positionen bei Win7 angeben.
;===============================================================================================================================
;Description......: Switch from one Audio Output to an other
;Author...........: Veronesi
;Date.............: 21.10.2010
;===============================================================================================================================
#NoTrayIcon
#AutoIt3Wrapper_UseX64=n
#AutoIt3Wrapper_UseUpx=y
#AutoIt3Wrapper_Res_Comment=Switch from one Audio Output to an other
#AutoIt3Wrapper_Res_Description=Switch from one Audio Output to an other
#AutoIt3Wrapper_Res_Fileversion=1.0.0.6
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
#AutoIt3Wrapper_Res_LegalCopyright=Veronesi
Opt("MustDeclareVars", 1) ;Must declare variables
Opt("WinWaitDelay", 100)
Opt("SendKeyDelay", 20)
Opt("SendKeyDownDelay", 20)
Global Const $RegKey = "HKEY_CURRENT_USER\Software\Microsoft\Multimedia\Sound Mapper"
Global $ActualSettings, $OutputDevice1, $OutputDevice2, $Status
If @OSVersion = "WIN_2000" Then Exit
[/autoit] [autoit][/autoit] [autoit]If @OSVersion = "WIN_XP" Then ;Win XP
If Not FileExists(@ScriptDir & "\Swap_AudioOutput_Settings.ini") Then
IniWrite(@ScriptDir & "\Swap_AudioOutput_Settings.ini","Audio Output","OutputDevice1","Realtek HD Audio output")
IniWrite(@ScriptDir & "\Swap_AudioOutput_Settings.ini","Audio Output","OutputDevice2","Realtek HD Audio output")
EndIf
$OutputDevice1 = IniRead(@ScriptDir & "\Swap_AudioOutput_Settings.ini","Audio Output","OutputDevice1","Realtek HD Audio output")
$OutputDevice2 = IniRead(@ScriptDir & "\Swap_AudioOutput_Settings.ini","Audio Output","OutputDevice2","Realtek HD Audio output")
$ActualSettings = RegRead($RegKey, "Playback")
[/autoit] [autoit][/autoit] [autoit]If $ActualSettings = $OutputDevice1 Then
RegWrite($RegKey, "Playback", "REG_SZ", $OutputDevice2)
Else
RegWrite($RegKey, "Playback", "REG_SZ", $OutputDevice1)
EndIf
Else ;Vista, Win7
If Not FileExists(@ScriptDir & "\Swap_AudioOutput_Settings.ini") Then
IniWrite(@ScriptDir & "\Swap_AudioOutput_Settings.ini","Audio Output","OutputDevice1","1") ;1 = First entry / 2 = second entry / 3 = third entry....
IniWrite(@ScriptDir & "\Swap_AudioOutput_Settings.ini","Audio Output","OutputDevice2","2")
EndIf
$OutputDevice1 = IniRead(@ScriptDir & "\Swap_AudioOutput_Settings.ini","Audio Output","OutputDevice1","1")
$OutputDevice2 = IniRead(@ScriptDir & "\Swap_AudioOutput_Settings.ini","Audio Output","OutputDevice2","2")
ShellExecute("mmsys.cpl") ;Start Sound switcher control
WinWait("Sound", "", 10000) ;Wait max. 10s for this window
WinActivate("Sound") ;Activate window
Send("{Down " & $OutputDevice1 & "}") ;Activate entry
$Status = ControlCommand("Sound", "", "[CLASS:Button; INSTANCE:2]", "IsEnabled", "") ;Check status of the button "Als Standard". If = 1 then the button is NOT deactivated!
If Not $Status Then Send("{Down " & $OutputDevice2 - $OutputDevice1 & "}") ;If the first entry is set as default, then take the second
ControlClick("Sound", "", "[CLASS:Button; INSTANCE:2]")
ControlClick("Sound", "", "[CLASS:Button; INSTANCE:4]")
EndIf
Exit
Gruss Veronesi
Bin im Internet auf eine weitere, wenn auch simple, Lösung in AuoIt gestoßen.
Hier der Link:
http://www.computerbase.de/forum/showthread.php?t=786817
Ähhhh... genau das macht doch mein Programm!....