问题求救 如何获得SysListView32中的选项
问题是这样的 我们网吧使用的是INTEL的集成声卡 与其他的声卡不同的是这个声卡的录音设备是叫做 后麦克风 结果问题就出来了 QQ等一系列的软件会自动调整录音设备为 麦克风现在我要做一个程序来实现自动模拟点击选择为后麦克风
在大部分场合下还是还是很好用的 但是个别机器上在我使用c:\windows\system32\SNDVOL32.EXE /r 调出录音设备界面的时候其中没有选上后麦克风和线路输入 只有选上麦克风
原先是根据BUTTON号来判断的 这样一来也就不能判断了
于是我又写代码来模拟选择上后麦克风和线路输入
windows 是在SysListView32这个控件中有几个复选按钮 我能不能判断到其中的子项是否被选中了
代码如下
#NoTrayIcon
run("c:\windows\system32\SNDVOL32.EXE /r")
WinWaitActive("录音控制","")
$temp=ControlGetText("录音控制","","Static22")
if ($temp<>"后麦克风") then
winclose("录音控制")
endif
run("c:\windows\system32\SNDVOL32.EXE")
WinWaitActive("音量控制","")
send("!PR")
WinWaitActive("属性","混音器")
ControlCommand ("属性","混音器","Button3","check")
;如正常只需要以下代码
;run("c:\windows\system32\SNDVOL32.EXE /r")
;WinWaitActive("录音控制","线路输入")
;ControlCommand ("录音控制","线路输入","Button5","check")
;winclose("录音控制")
;sgbox(4096,"调整成功!","已成功调整,请测试") 其他方法我试过了 没有探测到写了什么文件也没看到写什么注册表 很诡异! #NoTrayIcon
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_outfile=调节声音.exe
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
func change()
run("c:\windows\system32\SNDVOL32.EXE")
WinWaitActive("音量控制","")
send("!PR")
WinWaitActive("属性","混音器")
ControlCommand ("属性","混音器","Button3","check")
EndFunc
func turn()
WinWaitActive("录音控制","线路输入")
ControlCommand ("录音控制","线路输入","Button5","check")
winclose("录音控制")
msgbox(4096,"调整成功!","已成功调整,请测试")
EndFunc
run("c:\windows\system32\SNDVOL32.EXE /r")
WinWaitActive("录音控制","")
$temp=ControlGetText("录音控制","","Static22")
$temp2=ControlGetText("录音控制","","Static13")
$temp3=ControlGetText("录音控制","","Static4")
if $temp=="后麦克风"AND $temp2=="麦克风"AND $temp3="线路输入" then
WinWaitActive("录音控制","线路输入")
ControlCommand ("录音控制","线路输入","Button5","check")
winclose("录音控制")
msgbox(4096,"调整成功!","已成功调整,请测试")
EndIf
if $temp==""AND $temp2==""AND $temp3="线路输入" then
winclose("录音控制")
change()
send("{TAB}")
send("{DOWN}")
send("{DOWN}")
send("{SPACE}")
send("{DOWN}")
send("{SPACE}")
ControlCommand ("属性","混音器","Button5","check")
turn()
winclose("录音控制")
exit
EndIf
if $temp==""AND $temp2==""AND $temp3="麦克风" then
winclose("录音控制")
change()
send("{TAB}")
send("{DOWN}")
send("{SPACE}")
send("{DOWN}")
send("{DOWN}")
send("{SPACE}")
ControlCommand ("属性","混音器","Button5","check")
turn()
winclose("录音控制")
exit
EndIf
if $temp==""AND $temp2==""AND $temp3="立体声混音" then
winclose("录音控制")
change()
send("{TAB}")
send("{SPACE}")
send("{DOWN}")
send("{SPACE}")
send("{DOWN}")
send("{SPACE}")
send("{DOWN}")
send("{SPACE}")
ControlCommand ("属性","混音器","Button5","check")
turn()
winclose("录音控制")
exit
EndIf 只好用了个笨办法来实现了 不过还算好用! 能自动实现就是好方法,不管笨不笨,呵呵。
页:
[1]