;Coder:derek_s
;2011-3-16 15:30
;用于自动设置RealtekHD声卡前置音频接口
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_outfile=HD Autoit.exe
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
#include <process.au3>
Run("CONTROL.EXE RTSndMgr.CPL")
WinWait("Realtek HD Audio Manager","OK")
ControlClick("Realtek HD Audio Manager","OK",66068,"left",1,160,10)
ControlClick("Realtek HD Audio Manager","2CH 喇叭","TRzBmpButton1")
WinWait("接头设置","取消")
ControlClick("接头设置","取消","TCheckBox1")
ControlClick("接头设置","取消","TCheckBox2")
ControlClick("接头设置","取消","TRzBmpButton2")
WinClose("Realtek HD Audio Manager","2CH 喇叭")

在AU3中,打开控制面板选项是通过调用系统自带程序来打开控制面板项,在AHK时代是可以直接通过shell命令行方式打开的,在AU3中,Run函数只允许运行EXE,BAT,COM 或 PIF了。

函数原型:

Run ( "程序" [, "工作目录" [, 显示标志[, 可选标志]]] )

鉴于此,我们可以调用windows系统自带的 CONTROL.EXE 来访问控制面板

RTSndMgr.CPL是 Realtek HD Audio Manager的具体控制面板项

 

winwait函数用于等待制定窗口出现,这个函数原型在au3的help文件中有描述

 

 ControlClick("Realtek HD Audio Manager","OK",66068,"left",1,160,10)

 

这可以说是本段代码中比较难处理的部分了

根据ControlClick函数的函数原型

 

ControlClick ( "title", "text", controlID [, button [,
clicks [, x [, y ]]]] )

这个应该是不难实现,但是 Realtek HD Audio Manager的控制面板项是一个没有明确窗口特征的窗口,在使用au3info工具反复对比之后才找到可以自动切换标签页的方法。

函数原型中,controlID是可选参数,在这个切换中,这个参数就必须使用,从过控件ID来明确窗口控件的类——TRzPageControl

 

使用窗口类名称直接确定空间位置以用来向窗口发送鼠标点击操作时脚本不执行,只能使用ID来确定,不知道是个体原因还是这个类只能通过ID来确定需要操作的控件的位置……

本脚本于2011-3-16 15:30分

在WinXP SP3+Au3+DELL 230S测试通过

版权声明
转载保留版权: 大D技研室 | 《AU3实现自动设置RealtekHD声卡前置音频接口》
本文链接地址:https://www.dadclab.com/archives/58.jiecao
转载须知:如果您需要转载本文,请将版权信息,版权授权方式,以及本文的链接地址注明,谢谢合作。
本文被贴上了: 标签