Что нового

Правый щелчок мыши на окне, по значению хэндла

lixar21

Новичок
Сообщения
70
Репутация
0
Добрый вечер.

Подскажите - как в автоите выполнить правый щелчок мыши на окне, если известны только его хэндлы ?

Через функцию _WinAPI_EnumProcessWindows - получен следующий список хэндлов относящихся к данному процессу (интересует первый хэндл 0x000000000010484):
 

Вложения

  • скриншот.jpg
    скриншот.jpg
    43.2 КБ · Просмотры: 13

joiner

Модератор
Локальный модератор
Сообщения
3,570
Репутация
632
Код:
Local $hw = WinActivate(Здесь дескриптор окна)
If $hw Then ControlClick($hw,'','','right')

Дескриптор нужно получать всякий раз, когда окно запускается, так как дескриптор меняется
 
Автор
L

lixar21

Новичок
Сообщения
70
Репутация
0
joiner , что-то не работает.

Код:
Local $hw = WinActivate(0x000000000010496)
If $hw Then ControlClick($hw,'','','right')

Выполняю скрипт - ничего не происходит.
Использую другой хэндл 0x000000000010484 тоже ничего не происходит.

то же самое для кода:
Код:
Local $hw = WinActivate(000000000010496)
If $hw Then ControlClick($hw,'','','right')


Проверял перед запуском скрипта - хэндлы процесса с помощью _WinAPI_EnumProcessWindows.
Они именно такие как в коде.
 

joiner

Модератор
Локальный модератор
Сообщения
3,570
Репутация
632
lixar21
я же ясно написал
joiner [?]
Дескриптор нужно получать всякий раз, когда окно запускается, так как дескриптор меняется
Решил, что поймешь, ан нет, оказалось.
Нужно переходить к чтению справки и к изучению работы операционной системы
Не обижайся, но без этого никуда
 
Автор
L

lixar21

Новичок
Сообщения
70
Репутация
0

Вложения

  • скриншот.jpg
    скриншот.jpg
    25.6 КБ · Просмотры: 5

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
lixar21
Что за программа?
 
Автор
L

lixar21

Новичок
Сообщения
70
Репутация
0
Garrett , программа не имеет названия окна - только название процесса.
 

Вложения

  • 3.rar
    93.4 КБ · Просмотры: 5
A

Alofa

Гость
lixar21 сказал(а):
... программа не имеет названия окна...
Скорее всего консольное ПО. А окно создается из ресурсов "AlphaForms.dll" (к сожалению не могу проверить)

Код:
If Not Run("3.exe") Then Exit 2
$hWnd = WinWaitActive('[REGEXPCLASS:WindowsForms\d\d.Window.\d.app.+]', '', 5)
If Not $hWnd Then Exit 3
ControlClick($hWnd, '', '', 'right')
 
Автор
L

lixar21

Новичок
Сообщения
70
Репутация
0
Alofa, код не работает.

Запускаю ваш скрипт - ничего не происходит.



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

Garrett, запускаю ваш скрипт и происходит следующее:

Открывается программа 3.exe
Затем курсор - ползет в левый верхний угол рабочего стола и щелкает по пустому месту - правой кнопкой мыши...
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
247
Верх