Что нового

Почему _IEFormElementCheckboxSelect работает только при _IECreate?

PACHOM

Новичок
Сообщения
99
Репутация
0
Здравствуйте!

Есть код - смотрите ниже. Данный код работает только если использовать только что открытое окно:
Код:
$hWnd =  _IECreate(@ScriptDir & '\test.html')


Если использовать уже открытое окно, то скрипт не работает. Открытое окно определяется так:
Код:
$hWnd = WinWait("[TITLE:" & $sCellTitle & "; CLASS:" & $sCellClass & "]", "", 2)
If Not $hWnd Then
    MsgBox(16+4096, 'Сообщение', 'Окно не найдено, завершаем работу скрипта.')
	_ExcelBookClose($oExcel, 0, 1) ;Этот метод при указанных параметрах закрывает рабочую книгу, если в ней были сделаны изменения - вызывается стандартный запрос Excel на сохранение изменений
    Exit
EndIf
WinActivate($hWnd) ;заход в окно програмы


Подскажите пожалуйста почему? Если будет нужно, прикреплю файлы.

Полный код скрипта:
Код:
#include <IE.au3>
#include <ExcelCOM_UDF.au3>
#RequireAdmin

Opt("WinTitleMatchMode", 4)

;Актуален только при наличии формы. Просто таблица не подходит.

HotKeySet("{ESC}", "Terminate")
Func Terminate()
	Exit 0
EndFunc

$sFilePath = @ScriptDir & "\База.xlsx" ;Существующая рабочая книга Excel
$oExcel = _ExcelBookOpen($sFilePath)
If @error = 1 Then
    MsgBox(16+4096, "Ошибка!", "Ошибка OLE\COM")
    Exit
ElseIf @error = 2 Then
    MsgBox(16+4096, "Ошибка!", "Файл Excel не существует или имеет неправильный формат!")
    Exit
EndIf

$sCellMax = $oExcel.WorkSheets("Настройка").Cells(2, 2).Value

;даные для функции ControlSend
$sCellTitle = $oExcel.WorkSheets("Настройка").Cells(2, 7).Value 			;Заголовок окна
$sCellClass = $oExcel.WorkSheets("Настройка").Cells(4, 7).Value 			;Класс окна

;~ $hWnd =  _IECreate(@ScriptDir & '\test.html')

$hWnd = WinWait("[TITLE:" & $sCellTitle & "; CLASS:" & $sCellClass & "]", "", 2)
If Not $hWnd Then
    MsgBox(16+4096, 'Сообщение', 'Окно не найдено, завершаем работу скрипта.')
	_ExcelBookClose($oExcel, 0, 1) ;Этот метод при указанных параметрах закрывает рабочую книгу, если в ней были сделаны изменения - вызывается стандартный запрос Excel на сохранение изменений
    Exit
EndIf
WinActivate($hWnd) ;заход в окно програмы

$oForm = _IEFormGetObjByName ($hWnd, "ExampleForm")

; Данные в столбце А могут быть только 0 (снять)
for $i = 0 to $sCellMax - 1
	$sReadCell = _ExcelReadCell($oExcel, "A" & $i + 1)
	if $sReadCell = 0 then
		_IEFormElementCheckboxSelect($oForm, $i, "", 1, "byIndex")
		Sleep(1000)
	EndIf
next

MsgBox(64, 'Сообщение', 'Скрипт завершён.')


Добавлено:
Сообщение автоматически объединено:

Может надо ссылку на объект создать ... а как? Я уже всё перепробовал ...
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
PACHOM,
Код:
_IEAttach()
 
Автор
P

PACHOM

Новичок
Сообщения
99
Репутация
0
Доброе утро!

Я не пониманию что к чему ... С
Код:
_IEAttach()
тоже не выходит.




Добавлено:
Сообщение автоматически объединено:

Всё ... сделал. Вместо функции исправлял MsgBox ... :smile:

Всех благодарю за внимание!!!
 
Верх