阅读按钮的"已启用"状态

Pet*_*sen 4 .net autoit button winforms

如何获取按钮的AutoItEnabled状态(禁用/调暗或启用)?

这适用于.NET应用程序(Windows窗体,VB.NET),其中Visual Studio设计器中的按钮名称是btnStoreInModule属性文本S&tore in Module.该属性Enabled是我感兴趣的.按钮是类型System.Windows.Forms.Button.我的AutoIt脚本按下这样的按钮:

ControlClick("My Application", "", "[NAME:btnStoreInModule]")
Run Code Online (Sandbox Code Playgroud)

应用程序通过在执行操作时禁用按钮来响应.操作完成后,再次启用该按钮(不显示).Store禁用按钮时的应用程序:

按钮处于禁用状态. 对于.NET应用程序

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
Run Code Online (Sandbox Code Playgroud)

我使用(TB_Type在Visual Studio的属性窗口中是TextBox的名称)获取TextBox控件的文本:

Local $sText = ControlGetText ("My Application", "", "[NAME:TB_Type]")
Run Code Online (Sandbox Code Playgroud)

对于按钮,相应的行返回S&tore in Module(正如人们所期望的那样).AutoIt v3.3.8.1(2012-01-29).

小智 6

像这样使用ControlCommand函数:

    $isControlEnabled = ControlCommand($hWin, "", "[NAME:button2]", "IsEnabled", "")
Run Code Online (Sandbox Code Playgroud)

如果"[NAME:button2]"启用,该函数将返回=> 1,如果禁用,则返回0.

  • "button2"不应该是"btnStoreInModule"吗? (4认同)