2012-12-13 11 views
5

मैं Enabled स्थिति को AutoIt में एक बटन के कैसे प्राप्त करूं (या तो यह अक्षम/मंद या सक्षम है)?एक बटन के 'सक्षम' स्थिति को पढ़ें

यह एक .NET अनुप्रयोग (विंडोज फॉर्म, वीबी.नेट) के लिए है जहां विजुअल स्टूडियो डिजाइनर में बटन का नाम btnStoreInModule है और संपत्ति टेक्स्ट S&tore in Module है। संपत्ति Enabled वह है जो मुझे रूचि है। बटन System.Windows.Forms.Button टाइप है। मेरे AutoIt स्क्रिप्ट इस तरह बटन दबाता है:

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

आवेदन बटन को निष्क्रिय करने, जबकि यह एक ऑपरेशन कर रही है से प्रतिक्रिया करता है। जब ऑपरेशन समाप्त हो गया, बटन फिर से सक्षम है (अनदेखा)। आवेदन जब Store बटन अक्षम है:

>>>> 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 

मैं का उपयोग कर किसी पाठ बॉक्स नियंत्रण का पाठ मिलता है (:

Button in a disabled state. For a .NET application

AutoIt Window Information Tool दोनों disabled- और सक्षम राज्य के लिए एक ही परिणाम देता है

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

: TB_Type) दृश्य स्टूडियो की गुण विंडो में पाठ बॉक्स का नाम है बटन के लिए संबंधित लाइन S&tore in Module लौटाती है (जैसा कि कोई उम्मीद कर सकता है)। ऑटोआईटी v3.3.8.1 (2012-01-29)।

उत्तर

6

इस तरह ControlCommand समारोह का उपयोग करें:

$isControlEnabled = ControlCommand($hWin, "", "[NAME:button2]", "IsEnabled", "") 

समारोह अगर यह अक्षम किया गया है वापस आ जाएगी => 1 यदि "[NAME:button2]" सक्षम और 0 है।

+4

"बटन 2" "btnStoreInModule" नहीं होना चाहिए? –

+1

बटन के पास नाम नहीं हैं। उनके पास टेक्स्ट ("मॉड्यूल में सेंट एंड ओरे") है, जब संवाद में उपयोग किया जाता है तो उनके पास नियंत्रण आईडी हो सकती है। सबसे अच्छा कौन सा है, आईडी देखने के लिए Spy ++ (et al) का उपयोग करें। –

1

निम्नलिखित कोड काम करना चाहिए:

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

समारोह 1 वापस आ जाएगी, तो बटन सक्षम है और 0 अगर यह अक्षम है।

संबंधित मुद्दे