3

AutoItEnabledでボタンの状態を取得するにはどうすればよいですか (無効/淡色表示または有効)? プロパティでは機能しますがプロパティ(Visual Studio の .NET Windows フォームの意味での「プロパティ」 ) では機能しないようです(ボタンの状態に関係なく常に同じ結果)。TextEnabled

btnStoreInModuleこれは、Visual Studio デザイナのボタンの名前が で、プロパティ テキストがである .NET アプリケーション (Windows フォーム、VB.NET) の場合ですS&tore in Module。プロパティEnabledは私が興味を持っているものです。ボタンのタイプはSystem.Windows.Forms.Buttonです。私の AutoIt スクリプトは、次のようにボタンを押します。

ControlClick("My Application", "", "[NAME:btnStoreInModule]")

アプリケーションは、操作中にボタンを無効にすることで応答します。操作が完了すると、ボタンは再び有効になります (淡色表示が解除されます)。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

(は、Visual Studio のプロパティ ウィンドウ (プロパティ"Name" )のテキスト ボックスの名前です)を使用して、TextBox コントロールのテキストを取得できます。TB_Type

Local $sText = ControlGetText ("My Application", "", "[NAME:TB_Type]")

ボタンの場合、対応する行が返されますS&tore in Module(予想どおり)。

AutoIt バージョン: 3.3.8.1 (2012-01-29)。

4

2 に答える 2

2

次のコードが機能するはずです。

Local $isControlEnabled = ControlCommand("My Application 1.2a6", "", "WindowsForms10.BUTTON.app.0.b7ab7b21", "IsEnabled")
ConsoleWrite($isControlEnabled)

この関数は、ボタンが有効の場合は 1 を返し、無効の場合は 0 を返します。

于 2014-04-08T10:12:31.680 に答える