Что нового

Ф-ция GUICtrlCreateObj сбивает фокус

The Dream

Новичок
Сообщения
393
Репутация
3
Подскажите пожалуйста как быть, проблема достаточно длительная, не уверен что вообще ее можно решить, но тем не менее.

Ф-ция GUICtrlCreateObj сбивает фокус мышки. То есть если курсор мышки был поставлен в адресную строку к примеру, то после строчки:

Код:
$iObjIE = GUICtrlCreateObj($oIE, 0, 0, 0, 0)
(то есть обьект присваивает себе фокус по сути)

Фокус уже сбит. Подскажите, это можно вообще как-то исправить? При работе программы, за компьютером работать почти невозможно.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Код:
ControlFocus

а если так?
 
Автор
T

The Dream

Новичок
Сообщения
393
Репутация
3
joiner, все равно не совсем понял, как именно применять это? Фокус то переходит к "GUICtrlCreateObj", а "отнимает" фокус у любой программы - не важно браузер это или другая.


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

Вот пример проблемы которую я не могу решить уже очень долгое время.

Код:
#include <ie.au3>

Sleep(2000) ; пауза, за это время ставим курсор в редактор и
                       ; через две секунды курсор уже не мигает в редакторе

$hGui = GUICreate('', 0, 0, 800, 600)
GUISetState(@SW_HIDE, $hGui)
$oIE = _IECreateEmbedded()
$iObjIE = GUICtrlCreateObj($oIE, 0, 0, 800, 600) ; после этой строчки фокус сбит

While 1
	Sleep(1000)
WEnd


Есть костыль, но это не решение, так как процесс такой не один:

Код:
Local $hWin = WinGetHandle("") ; это для примера, но суть ясна
Local $iCtrlObj = GUICtrlCreateObj($obj, $iLeft, $iTop, $iWidth, $iHeight)
WinActivate($hWin)
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Код:
#include <ie.au3>

Sleep(2000) ; пауза, за это время ставим курсор в редактор и
                       ; через две секунды курсор уже не мигает в редакторе

$hGui = GUICreate('', 110, 110, 800, 600)
;~ GUISetState()
GUISetState(@SW_HIDE, $hGui)
__IELockSetForegroundWindow($LSFW_LOCK)

$oIE = _IECreateEmbedded()
$iObjIE = GUICtrlCreateObj($oIE, 0, 0, 800, 600) ; после этой строчки фокус сбит
__IELockSetForegroundWindow($LSFW_UNLOCK)
While 1
    Sleep(1000)
WEnd
 
Автор
T

The Dream

Новичок
Сообщения
393
Репутация
3
inververs, я не знаю что вам написать. Не знаю. Вы спасли меня от мучений :stars:


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

inververs, я просто ставлю вначале скрипта ф-цию __IELockSetForegroundWindow(1) и все, этого ведь достаточно, верно?


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

inververs, подскажите пожалуйста, может еще какую-то ф-цию задействовать чтобы уж наверняка, или не стоит?
 
Автор
T

The Dream

Новичок
Сообщения
393
Репутация
3
inververs, подскажите еще пожалуйста, но значок ожидания возле курсора (мышки) уже никак не убрать, да? ну к примеру когда компьютер грубо говоря завис - появляется тоже этот значок. Но тут он именно от обьекта IE, так как в нем загружается страница.
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Смотри курсоры в системе. Значок ожидания измени на стрелку.
 
Автор
T

The Dream

Новичок
Сообщения
393
Репутация
3
inververs сказал(а):
Смотри курсоры в системе. Значок ожидания измени на стрелку.

Нет, это то я знаю. Просто подумал, может есть ф-ция чтобы заблокировать любые "сигналы для мышки", извините что не могу точнее подсказать.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Zalman1980,
Предупреждение За нарушение общих правил (пункт В.4):
Не лепите несколько вопросов разной тематики в один пост. По типу "Ребят, а ещё такой вопрос...". Каждый вопрос в свою тему.


С уважением, ваш Глобальный модератор.
 
Верх