1

次のコードがあります

 #Include <GuiComboBox.au3>
 #Include <GuiComboBoxEX.au3>
 #include <GUIListBox.au3>
 #include <GUIConstantsEx.au3>
;~#AutoIt3Wrapper_Res_requestedExecutionLevel=requireAdministrator 
global $hcombo = "[NAME:ctlMsgQueueCombo]"
global $hcomboclass = "[CLASS:WindowsForms10.COMBOBOX.app.0.2bf8098_r15_ad12]"
global $title = "Test Form"
global $index = 0
WinActivate ($title)
;Start test executable
Run("Z:\test\Info.Test\bin\Debug\Info.Test.exe")
sleep(6000)
controlFocus("", "", "[NAME:ctlSelector]")
controlsend("", "", "[NAME:ctlSelector]", 'QWER67')
sleep(1000)
local $shcombo = ControlGetHandle($title, "", $hcombo)
local $sText = 'TYY Processor (QWERYY980) - Q00S00'
_GUICtrlComboBox_SelectString($shcombo, $sText) 

このコードはドロップダウンから項目を選択していますが、実際にはオブジェクト参照を設定していません。autoitでどうやってそれを行うことができますか?

4

2 に答える 2

0

AutoItは.NETコントロールで問題なく動作します。.NETで作成されたコントロールは、カテゴリ標準コントロールに分類されます。JavaやWPFによって作成されたものなどのコントロールはそうではありません。COMにアクセスできることは、それとは何の関係もありません。

そうは言っても、AutoItコードにおそらくいくつかのエラーがあるようです。「しかし実際にはオブジェクト参照を設定しない」とはどういう意味かわからないので、正確にどこにいるのかわかりません。

一部のポインタでは、空の文字列の代わりに、可能な場合は$titleを使用してください。

controlFocus($title, "", "[NAME:ctlSelector]")
controlsend($title, "", "[NAME:ctlSelector]", 'QWER67')

_GUICtrlComboBox_SelectStringは、部分的な文字列を処理できます。したがって、代わりに:

local $shcombo = ControlGetHandle($title, "", $hcombo)
local $sText = 'TYY Processor (QWERYY980) - Q00S00'
_GUICtrlComboBox_SelectString($shcombo, $sText) 

行う:

local $shcombo = ControlGetHandle($title, "", $hcombo)
local $sText = 'TYY Processor'
_GUICtrlComboBox_SelectString($shcombo, $sText) 

そして、それが機能するかどうかを確認します。何が失敗しているのかについての詳細を投稿してください。たとえば、適切なデバッグ手順を使用します。コードのエラーを常に確認します。$shcomboが有効であると想定しないでください。

于 2011-06-24T08:52:22.060 に答える
0

「標準」のコントロールとは、COMにアクセス可能なコントロールのことだと思いますか?

その場合は、おそらく.NETコントロール/コンポーネントをCOMインターフェイスで使用できるようにする必要があります。ここに簡単な説明と、より詳細な説明があります。

于 2011-06-23T13:04:38.097 に答える