sensalim Posted February 22, 2008 Share Posted February 22, 2008 I want to make a script that can, with a hotkey, adjust sound & audio device properties. For example, if I right click the speaker icon and choose Adjust Audio Properties (I'm on WinXP btw), I get that window "Sound and Audio Device Properties" with these tabs: -Volume -Sounds -Audio -Video -Hardware Now I want the script to go to Audio tab and change the Sound playback to "xxxxxx" (doesn't matter the text, but it's the second value in the drop down list). I also want the script to go back to the previous value in the same drop down list with a different hotkey. Is that possible? I assume it needs to go to registry but I just don't know anything about registry or how to access and/or manipulate the windows registry. Thanks a lot for any hints/help! Link to comment Share on other sites More sharing options...
Bert Posted February 22, 2008 Share Posted February 22, 2008 Look in my sig for audio.au3. It does not work on Vista, but does work on XP. The Vollatran project My blog: http://www.vollysinterestingshit.com/ Link to comment Share on other sites More sharing options...
sensalim Posted February 22, 2008 Author Share Posted February 22, 2008 I looked but your script does volume set and get. Am I wrong? I need to change the device not just the volume... Link to comment Share on other sites More sharing options...
Bert Posted February 22, 2008 Share Posted February 22, 2008 what OS are you using? The Vollatran project My blog: http://www.vollysinterestingshit.com/ Link to comment Share on other sites More sharing options...
sensalim Posted February 22, 2008 Author Share Posted February 22, 2008 WinXP. Link to comment Share on other sites More sharing options...
Bert Posted February 22, 2008 Share Posted February 22, 2008 You may need to go to MSDN to get what you need. The Vollatran project My blog: http://www.vollysinterestingshit.com/ Link to comment Share on other sites More sharing options...
FreeFry Posted February 22, 2008 Share Posted February 22, 2008 I have a old(dusty) script I made a long time ago, to lock the wave volume to the main volume, it might have something you can use in it: expandcollapse popupOpt("WinTitleMatchMode", 4) DllCall("kernel32.dll", "int", "Wow64DisableWow64FsRedirection", "int", 1) Global Const $pID = Run(@SystemDir & "\sndvol32.exe", @SystemDir, @SW_HIDE) WinWait("classname=Volume Control") Global $Muted = False Global Const $TBM_GETPOS = 0x400 Global Const $TBM_SETPOS = 0x405 Global Const $WM_VSCROLL = 0x115 Global Const $SB_LINEDOWN = 0x1 Global Const $SB_LINEUP = 0x0 Global Const $WindowHandle = WinGetHandle("classname=Volume Control") Global Const $ControlHandle1 = ControlGetHandle($WindowHandle, "", 1001) Global Const $ControlHandle2 = ControlGetHandle($WindowHandle, "", 2001) $g_szVersion = "Volume Control Fixer v1" If WinExists($g_szVersion) Then Exit AutoItWinSetTitle($g_szVersion) While 1 If Not WinExists($WindowHandle) Then MsgBox(0, "Error!", "sndvol32.exe is not running, exiting") Exit Else $data1 = DllCall("user32.dll", "int", "SendMessage", "hwnd", $ControlHandle1, "int", $TBM_GETPOS, "int", 0, "int", 0) $data2 = DllCall("user32.dll", "int", "SendMessage", "hwnd", $ControlHandle2, "int", $TBM_GETPOS, "int", 0, "int", 0) If $data1[0] <> $data2[0] Then ;~ If $data1[0] > $data2[0] Then ;~ TrayTip("", "Volume @ " & Int(100-($data1[0]/5)) & "%", 0) ;~ DllCall("user32.dll", "ptr", "SendMessage", "hwnd", $ControlHandle2, "int", $TBM_SETPOS, "int", 1, "int", $data1[0]) ;~ DllCall("user32.dll", "ptr", "SendMessage", "hwnd", $WindowHandle, "int", $WM_VSCROLL, "int", $SB_LINEDOWN, "int", $ControlHandle2) ;~ ElseIf $data1[0] < $data2[0] Then ;~ TrayTip("", "Volume @ " & Int(100-($data1[0]/5)) & "%", 0); works, but buggs out sometimes... annoying, therefore removed ;~ DllCall("user32.dll", "ptr", "SendMessage", "hwnd", $ControlHandle2, "int", $TBM_SETPOS, "int", 1, "int", $data1[0]) ;~ DllCall("user32.dll", "ptr", "SendMessage", "hwnd", $WindowHandle, "int", $WM_VSCROLL, "int", $SB_LINEUP, "int", $ControlHandle2) ;~ EndIf DllCall("user32.dll", "ptr", "SendMessage", "hwnd", $ControlHandle2, "int", $TBM_SETPOS, "int", 1, "int", $data1[0]) DllCall("user32.dll", "ptr", "SendMessage", "hwnd", $WindowHandle, "int", $WM_VSCROLL, "int", $SB_LINEDOWN, "int", $ControlHandle2) Else If ControlCommand($WindowHandle, "", "Button2", "IsChecked") And Not $muted Then ControlCommand($WindowHandle, "", "Button4", "Check") TrayTip("Muted!", "Sound Muted!", 0) $muted = True ElseIf Not ControlCommand($WindowHandle, "", "Button2", "IsChecked") And $muted Then ControlCommand($WindowHandle, "", "Button4", "UnCheck") TrayTip("Unmuted!", "Sound Unmuted!", 0) $muted = False EndIf EndIf EndIf Sleep(100) WEnd Func OnAutoItExit() ;~ If WinExists($WindowHandle) Then ;~ WinClose($WindowHandle) ;~ EndIf If ProcessExists($pID) Then ProcessClose($pID) EndIf EndFunc ;==>OnAutoItExit Lots of commented out code, etc. But as I said, it's old. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now