如何获取
AutoIt中按钮的
Enabled
状态(禁用/变暗或启用)?它确实适用于属性Text
,但它似乎不适用于属性Enabled
(无论按钮状态如何,结果总是相同)(“属性”,如 Visual Studio 中 .NET Windows 窗体意义上的那样) ).
这适用于 .NET 应用程序(Windows 窗体、VB.NET),其中 Visual Studio 设计器中的按钮名称为
btnStoreInModule
,属性文本为 S&tore in Module
。属性 Enabled
是我感兴趣的。按钮的类型为 System.Windows.Forms.Button
。我的 AutoIt 脚本按下按钮是这样的:
ControlClick("My Application", "", "[NAME:btnStoreInModule]")
应用程序在执行操作时通过禁用按钮来响应。操作完成后,该按钮将再次启用(不呈灰色)。
Store
按钮禁用时的应用程序:
AutoIt 窗口信息工具 对于禁用和启用状态给出相同的结果:
>>>> Window <<<<
Title: My Application 1.2a6
Class: WindowsForms10.Window.8.app.0.b7ab7b
Position: -4, 34
Size: 1448, 870
Style: 0x17CF0000
ExStyle: 0x00050100
Handle: 0x000C08DE
>>>> Control <<<<
Class: WindowsForms10.BUTTON.app.0.b7ab7b
Instance: 21
ClassnameNN: WindowsForms10.BUTTON.app.0.b7ab7b21
Name: btnStoreInModule
Advanced (Class): [NAME:btnStoreInModule]
ID: 592026
Text: S&tore in Module
Position: 257, 675
Size: 91, 23
ControlClick Coords: 59, 8
Style: 0x5601000B
ExStyle: 0x00000000
Handle: 0x0009089A
我可以使用(
TB_Type
是Visual Studio属性窗口中文本框的名称(属性“Name”))获取TextBox控件的文本:
Local $sText = ControlGetText ("My Application", "", "[NAME:TB_Type]")
对于按钮,相应的行返回
S&tore in Module
(正如人们所期望的那样)。
AutoIt版本:3.3.8.1(2012-01-29)。
使用 ControlCommand 函数,如下所示:
$isControlEnabled = ControlCommand($hWin, "", "[NAME:button2]", "IsEnabled", "")
如果启用
"[NAME:button2]"
,该函数将返回 => 1;如果禁用,则返回 0。
以下代码应该可以工作:
Local $isControlEnabled = ControlCommand("My Application 1.2a6", "", "WindowsForms10.BUTTON.app.0.b7ab7b21", "IsEnabled")
ConsoleWrite($isControlEnabled)
如果按钮启用,该函数将返回 1;如果按钮禁用,该函数将返回 0。