I'm trying to create an AppleScript for setting the value of Input Volume of the Input category under the Sound menu in System Preferences.
How does one change the value of a Slider?
tell application "System Preferences"
activate
set current pane to pane "com.apple.preference.sound"
end tell
tell application "System Events"
if UI elements enabled then
try
tell application process "System Preferences"
tell tab group 1 of window "Sound"
click radio button "Input"
select row 1 of table 1 of scroll area 1
set selected of row 1 of table 1 of scroll area 1 to true
set deviceselected to "Microphone"
set slider "Input Volume" of group "Input Volume" of tab group "Input" to 0
select row 2 of table 1 of scroll area 1
set selected of row 2 of table 1 of scroll area 1 to true
set deviceselected to "Microphone"
set slider "Input Volume" of group "Input Volume" of tab group "Input" to 0
end tell
end tell
end try
end if
end tell
This doesn't seem to work. I also tried using Accessibility Inspector to find out how to hierarchically access the elements in the following manner,
value of slider of group "Input volume" of tab group "Input" of window "Sound"
That doesn't seem to be a correct way either.
What's wrong here?
EDIT
set content of slider "Input volume" of tab group "Input" of window "Sound" of tab group 1 of window "Sound" of application process "System Preferences" to 0
--> error nu开发者_如何学Pythonmber -1700 from content of slider "Input volume" of tab group "Input" of window "Sound" of tab group 1 of window "Sound" of application **
So it returns an error. I couldn't find any description for error code -1700, what does it mean?
You can access the volume settings directly without using gui scripting. These commands are in the standard additions osax of applescript. To see the volume settings you can change use this. Notice it requires the word "get" in the command.
get volume settings
Looking at those results you can see that the input volume is one of the volume settings you can access. It's a value from 0 to 100. Here's how you can set it...
set volume input volume 64
The above command is a little strange because there is no "to" word in that command. You're not setting the volume "to" something so it's strange. Anyway Good luck!
EDIT: Here's how to access it using gui scripting. Also if you want to know the error codes, I posted a script for that here. See post #9 for the latest version.
tell application "System Preferences"
activate
set current pane to pane "com.apple.preference.sound"
end tell
tell application "System Events"
tell application process "System Preferences"
tell tab group 1 of window "Sound"
click radio button "Input"
get value of slider 1 of group 2
end tell
end tell
end tell
Sliders can be manipulated with the increment
and decrement
actions. So, you can just repeat until it reaches the level you desire. This example sets the Sound Effects Alert volume to 0.5
tell application "System Preferences"
tell anchor "effects" of pane "com.apple.preference.sound" to reveal
tell application "System Events" to tell process "System Preferences"
set s to slider "Alert volume:" of tab group 1 of window 1
repeat while value of s is less than 0.5
increment s
end repeat
repeat while value of s is greater than 0.5
decrement s
end repeat
end tell
end tell
set content of slider "Input volume" to x
精彩评论