<?xml version="1.0" encoding="windows-1252"?>
<node id="1003046" title="Re: Programmatically enable/disable a playback device in Windows 7" created="2012-11-08 21:27:49" updated="2012-11-08 21:27:49">
<type id="11">
note</type>
<author id="964068">
thmsdrew</author>
<data>
<field name="doctext">
&lt;p&gt;What I am thinking of doing is the following:&lt;/p&gt;
&lt;code&gt;#!/usr/bin/perl
 
use strict;
use warnings;
 
use Win32::GuiTest qw(:ALL);
 
system "control mmsys.cpl";
sleep 1;
my @sound = FindWindowLike(undef, "Sound");

# Get the list that contains the playback devices
my @list = FindWindowLike($sound[0], "", "SysListView32");
my ($left, $top, $right, $bottom) = GetWindowRect($list[0]);

# Move the mouse within the bounds of that list, clicking
# on stuff. You can type "E" to enable the device once you
# right-click, or "D" to disable it.
MouseMoveAbsPix($right - 10, $top + 5);
SendMouse("{RightClick}");
SendKeys("{E}");&lt;/code&gt;

&lt;p&gt;It's limited in that I have to trial-and-error to find the right pixels to click. As far as I'm concerned, there's no way to find the coordinates of the individual list items, so I think something like this will have to do. Any thoughts?&lt;/p&gt;</field>
<field name="root_node">
1002892</field>
<field name="parent_node">
1002892</field>
</data>
</node>
