Получение значения из текстового поля в пользовательском контейнере приложения SAP - PullRequest
1 голос
/ 19 марта 2020

Мое требование - автоматизировать поток SAP с помощью AutoIt. Когда я пытаюсь получить значения (тест) из текстового поля имени пользователя, оно не получает значение текстового поля и отображает пустое значение. Я хочу получить значение из текстового поля, и мне нужно сравнить со строкой. Не могли бы вы помочь мне?

enter image description here

Выход:

enter image description here

Я уже упоминал ниже ссылки:

Снимок экрана средства поиска AutoIt:

enter image description here

Мой код AutoIt:

Run("C:\Program Files (x86)\SAP\FrontEnd\SAPgui\saplogon.exe")
Local $hWnd = WinWaitActive("SAP Logon 740")

WinSetState($hWnd, "", @SW_MAXIMIZE)

ControlFocus("SAP Logon 740","","SAPTreeList1")
ControlTreeView("SAP Logon 740","","[CLASS:SAPTreeList; INSTANCE:1]","Expand","#0")
ControlClick("SAP Logon 740","","[CLASS:SAPTreeList; INSTANCE:1]","left",2,47,60)
Sleep(2000)
ControlClick("SAP Logon 740","","[CLASS:SAPTreeList; INSTANCE:1]","left",2,59,115)
Sleep(2000)
ControlClick("SAP Logon 740","","[CLASS:SysListView32; INSTANCE:1]","left",1,71,573)

Sleep(1000)
ControlClick("SAP Logon 740","","Log &On")
Sleep(3000)
Local $hNewWnd = WinWaitActive("SAP")
; Retrieve the classlist of the Notepad window using the handle returned by WinWait.
    Local $sClassList = WinGetClassList("SAP")
#ConsoleWrite($sClassList)
    ; Display the classlist.
Sleep(3000)
ControlClick("SAP","","","left",1,179,56)
    # MsgBox(0, "output", $sClassList)
Send("test")
Sleep(1000)
$wrd = ControlGetText("SAP","test","")
MsgBox(0,"Display",$wrd)

Вкладка управления:

enter image description here

1 Ответ

0 голосов
/ 20 марта 2020

Пожалуйста, прочитайте о этом и этом .

#RequireAdmin ;sometimes this is required in order to be able to manipulate windows
Opt("WinTitleMatchMode", 4) ;1=start, 2=subStr, 3=exact, 4=advanced, -1 to -4=Nocase
Opt("WinSearchChildren", 1) ;0=no, 1=search children also

$wrd = ControlGetText("[TITLE:SAP]","",100);100 is id from the WindowInfo Tool
If @error Then $wrd = ControlGetText("[TITLE:SAP]","","[CLASS:Afx:68570000:1008; INSTANCE: 1]")
;This is the advanced method. Aslo shown in the WIndowInfo Tool.
MsgBox(0,"Display",$wrd)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...