Есть программа для системы контроля доступом fortnet. Требуется:
1) Автологин при входе
2) Нажатие на кнопку автоплан.
Первую задачу решил:
А вот со второй проблема, дело в том, что кнопка автоплана находится в панели toolbar в виде рисунка. Она 1 из 4 кнопок.
Вот что выдает autoit windows info:
Пытался:
Но кнопка мыши нажимается в том месте где находится курсор
Пытался и так:
Но реакции ни какой не заметил, может что-то не так делаю
Операционная система Windows 7.
1) Автологин при входе
2) Нажатие на кнопку автоплан.
Первую задачу решил:
Код:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=Icon_1.ico
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Global $fortnet
$fortnet ="[TITLE:frmSplash; CLASS:TfrmSplash]" ;имя титульного окна
Global $fortnet_get
$fortnet_get =WinGetHandle('[TITLE:frmSplash; CLASS:TfrmSplash]') ;поиск имени титульного окна
Global $path = IniRead ( 'C:\fortnet_autologin.ini', "DATA", "PATH", "NotFound" ) ;путь к программе
Global $login = IniRead ( 'C:\fortnet_autologin.ini', "DATA", "LOGIN", "NotFound" ) ;логин
Global $pass = IniRead ( 'C:\fortnet_autologin.ini', "DATA", "PASSWORD", "NotFound" ) ;пароль
While 1=1
If Not ProcessExists("fortnet.exe") Then
Run ( $path)
EndIf
WinActive($fortnet, "")
If ControlGetHandle($fortnet,"","[CLASS:TComboBox; INSTANCE:1]") Then ;проверка на появление элемента ввода пользователя
ControlCommand ($fortnet, "", "[CLASS:TComboBox; INSTANCE:1]", "SelectString", $login) ;выбор пользователя
ControlSend($fortnet, "", "[CLASS:TEdit; INSTANCE:1]", $pass) ;ввод пароля
ControlSend($fortnet, "", "[CLASS:TEdit; INSTANCE:1]",'{ENTER}') ;вход
EndIf
Sleep(5000) ; ожидание загрузки фортнет 5 сек
WEnd
А вот со второй проблема, дело в том, что кнопка автоплана находится в панели toolbar в виде рисунка. Она 1 из 4 кнопок.
Вот что выдает autoit windows info:
Код:
>>>> Window <<<<
Title: FortNet
Class: TfrmMainArm
Position: -8, -8
Size: 1382, 784
Style: 0x17CF0000
ExStyle: 0x00010100
Handle: 0x004B0A7C
>>>> Control <<<<
Class: TTBXToolbar
Instance: 1
ClassnameNN: TTBXToolbar1
Name:
Advanced (Class): [CLASS:TTBXToolbar; INSTANCE:1]
ID: 2033910
Text: tbButtons
Position: 339, 0
Size: 102, 26
ControlClick Coords: 18, 13
Style: 0x56000000
ExStyle: 0x00010000
Handle: 0x001F08F6
>>>> Mouse <<<<
Position: 357, 13
Cursor ID: 0
Color: 0x000000
Пытался:
Код:
Global $fortnet_o
$fortnet_o ="[TITLE:FortNet; CLASS:TfrmMainArm]" ;имя операторского окна
Global $fortnet_get_o
$fortnet_get_o=WinGetHandle('[TITLE:FortNet; CLASS:TfrmMainArm]') ;поиск имени операторского окна
WinActive($fortnet_o, "")
ControlClick ($fortnet_get_o,"","[CLASS:TTBXToolbar; INSTANCE:1]", "left",1, 18, 13) ;нажатие кнопки автоплан
Но кнопка мыши нажимается в том месте где находится курсор
Пытался и так:
Код:
#Include <WinAPIEx.au3>
#include <GuiToolbar.au3>
#include <ToolbarConstants.au3>
Global $fortnet_o
$fortnet_o ="[TITLE:FortNet; CLASS:TfrmMainArm]" ;имя операторского окна
Global $fortnet_get_o
$fortnet_get_o=WinGetHandle('[TITLE:FortNet; CLASS:TfrmMainArm]') ;поиск имени операторского окна
WinWaitActive($fortnet_o)
$hWnd = WinGetHandle($fortnet_o)
$iProcID = WinGetProcess($fortnet_o)
$hToolBar = ControlGetHandle($hWnd, "", "[CLASS:TTBXToolbar; INSTANCE:1]")
$iCommand = _GUICtrlToolbar_IndexToCommand($hToolBar, 0)
_SendMessage($hToolBar, $WM_COMMAND, $iCommand, $hToolBar)
Но реакции ни какой не заметил, может что-то не так делаю
Операционная система Windows 7.