如何在按钮的AutoIt中获取Enabled
状态(禁用/变暗或启用)?
这适用于.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 Information Tool为禁用和启用状态提供相同的结果:
>>>> 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
我在Visual Studio的属性窗口中使用(TB_Type
是TextBox的名称)获取TextBox控件的文本:
Local $sText = ControlGetText ("My Application", "", "[NAME:TB_Type]")
对于按钮,相应的行返回S&tore in Module
(正如人们所期望的那样)。 AutoIt v3.3.8.1(2012-01-29)。
答案 0 :(得分:6)
使用ControlCommand功能,如下所示:
$isControlEnabled = ControlCommand($hWin, "", "[NAME:button2]", "IsEnabled", "")
该函数将返回=&gt;如果"[NAME:button2]"
已启用,则为1;如果已禁用,则为0。
答案 1 :(得分:2)
以下代码应该有效:
Local $isControlEnabled = ControlCommand("My Application 1.2a6", "", "WindowsForms10.BUTTON.app.0.b7ab7b21", "IsEnabled")
ConsoleWrite($isControlEnabled)
如果按钮为Enabled,则该函数将返回1;如果为Disabled,则返回0。