Войти

Показать полную графическую версию : ClassnameNN


BERGAMOD
11-08-2016, 15:37
Добрый день!
Уважаемые знатоки, подскажите пожалуйста, как сделать можно функцию.

Есть кнопка в ней ClassnameNN: WindowsForms10.BUTTON.app0 нужно сделать так, что пока не нажмешь на нее следующие действие не выполнялось..

Буду рад любой помощи, а то не знаю где искать уже.

Iska
11-08-2016, 16:05
Есть кнопка »
Где «есть кнопка»?

BERGAMOD
11-08-2016, 16:30
Где «есть кнопка»? »

кнопка не определяется как BUTTON поэтому и нужно сделать по ClassnameNN: WindowsForms10.BUTTON.app0

Mike909
11-08-2016, 18:57
попробуете в эту сторону покопать:


Local $hObj = WinGetHandle("[CLASS:WindowsForms10.BUTTON.app0]")
GUICtrlSetState($hObj, $GUI_DISABLE)

BERGAMOD
12-08-2016, 09:13
Local $hObj = WinGetHandle("[CLASS:WindowsForms10.BUTTON.app0]")
GUICtrlSetState($hObj, $GUI_DISABLE) »



Попробовал

#include <MsgBoxConstants.au3>

Example()

Func Example()

WinWait("title", "text", 10)

Local $hWnd = WinGetHandle("[CLASS:WindowsForms10.BUTTON.app0]")
GUICtrlSetState($hWnd, $GUI_DISABLE)
If @error Then
MsgBox(0, "", "Произошла ошибка при попытке получить дескриптор окна.")
Exit
EndIf

MsgBox(0, "TEST", 'TEST')

WinClose($hWnd)
EndFunc

не работает, при нажатии на кнопку нечего не происходит.

Mike909
12-08-2016, 10:34
а $hWnd на кнопку получаете без ошибки?

BERGAMOD
12-08-2016, 11:14
а $hWnd на кнопку получаете без ошибки?»

я да же ничего не делаю все равно срабатывает MsgBox(0, "TEST", 'TEST')

в Summary выглядит так

>>>> Window <<<<
Title: Искать
Class: WindowsForms10.Window.8.app48
Position: 164, 114
Size: 1271, 941
Style: 0x16CF0000
ExStyle: 0x00050100
Handle: 0x00FE0B56

>>>> Control <<<<
Class: WindowsForms10.BUTTON.app48
Instance: 5
ClassnameNN: WindowsForms10.BUTTON.app485
Name: loadObject
Advanced (Class): [NAME:loadObject]
ID: 4785752
Text:
Position: 0, 164
Size: 20, 20
ControlClick Coords: 10, 12
Style: 0x5600000B
ExStyle: 0x00000000
Handle: 0x00490658

>>>> Mouse <<<<
Position: 182, 320
Cursor ID: 2
Color: 0x616161

Mike909
12-08-2016, 12:52
1) проверьте на ошибку сразу WinGetHandle ( не после функции GUICtrlSetState)
Local $hWnd = WinGetHandle( ...
If @error Then ...

2) app уже другой, был 0 стал 48.. WindowsForms10.BUTTON.app48

BERGAMOD
15-08-2016, 10:01
1) проверьте на ошибку сразу WinGetHandle ( не после функции GUICtrlSetState)
Local $hWnd = WinGetHandle( ...
If @error Then ...
2) app уже другой, был 0 стал 48.. WindowsForms10.BUTTON.app48 »

ClassnameNN: WindowsForms10.BUTTON.app0 это пример.



Проверил, окно видит

If not WinActive("Title") Then WinActivate("Title")
$handle = WinGetHandle("Title", "")
If @error Then
MsgBox(4096, "Error", "Окно не найдено")
Else

Сюда нужна функция

MsgBox(4096, "ОК", "Окно найдено")
EndIf

BERGAMOD
16-08-2016, 08:50
Нет не у кого соображений как можно сделать

BERGAMOD
17-08-2016, 10:57
Что то все затихли ((( Не у желе в AutoIT нельзя так сделать




© OSzone.net 2001-2012