啊,早上对原版编译的程序进行了广泛测试,结果是,在某一版本驱动自带的控制面板可以使用本脚本来实现自动调节。

为解决这个问题,再一次使用au3info对Realtek HD Audio Manager窗口进行分析。分析后发现:不同版本的驱动程序自带的声音控制面板在TRzPageControl这个类上面,控件的ID是不同的。

根据函数原型

ControlClick ( "标题", "文本", 控件ID [, 按钮 [, 点击次数 [, X坐标 [, Y坐标 ]]]] )
在参考了au3帮助文件之后,发现控件ID这个可选参数还可以使用高级模式

在使用 Control...() 函数时,有一些控件描述可以使用ControlID. 通过这些描述才能正确的识别.这些描述包括:

  • ID - 内部控件 ID. The Control ID is the internal numeric identifier that windows gives to each control. It is generally the best method of identifying controls. In addition to the AutoIt Window Info Tool, other applications such as screenreaders for the blind and Microsoft tools/APIs may allow you to get this Control ID
  • TEXT - 控件上的文本,例如: 按钮上显示的 "下一步(&N)"
  • CLASS -内部控件的"类"名称,如 "Edit" 或者 "Button"
  • CLASSNN - 类别名, 如: "Edit1"
  • NAME - 内部 .NET Framework WinForms 名称 (如果有效)
  • REGEXPCLASS - 控件类名使用 正则表达式
  • X(坐标) \ Y(坐标) \ W(宽度) \ H(高度) - 控件坐标与大小.
  • INSTANCE - 基于1开始的接口(instance,原翻译为枚举) 由程序自动分配的唯一标识.

根据这个高级模式,既可以通过控件的高级模式描述来完成对不同控件ID但是同一类的控件的控制以及对空间的操作。

代码段更正如下

ControlClick("Realtek HD Audio Manager","OK","[CLASS:TRzPageControl; INSTANCE:1]","left",1,160,10)

更正后脚本代码在

WinXP SP3+AU3+G41主板上测试通过

2011-3-17 12:26

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