Сенсорный экран Windows 10 Chrome

GetBay

Новичок
Пользователь
Фев 8, 2023
3
1
3


Доброго времени суток !
Подскажите как можно отслеживать событие прикосновение к экрану на 10 Винде в Хроме.
Уже попробовал с разных модулей отследить события мышки и это работает, но как (условно) доходит курсор до окна хрома отклик пропадает.

Пробовал с помощью "from pynput import mouse" отслеживать нажатие 3х клавиш на мышке, на сенсорном экране координаты прикосновения передаются только при работе в Windows. В запущенном окне хрома координаты уже не передаются(Именно в окне "контента" странички)

Передаем в консоль координаты нажатия клавиш мышки (pynput)
Python:
from pynput import mouse

def on_click(x, y, button, pressed):
    print('{0} at {1}'.format(
        'Pressed' if pressed else 'Released',
        (x, y)))
    if not pressed:
        return


with mouse.Listener(
    on_click=on_click) as listener:
    listener.join()
    print(mouse.Listener)

Внутри окна хрома передвижения не отслеживаются на сенсорном экране, а вот на рабочем столе Windows все хорошо.
Передаем в консоль координаты движения курсора (ctypes)
Python:
from ctypes import windll, Structure, c_long, byref
import time


while  True :

    class POINT(Structure):
        _fields_ = [("x", c_long), ("y", c_long)]


    def queryMousePosition():
        pt = POINT()
        windll.user32.GetCursorPos(byref(pt))
        return { "x": pt.x, "y": pt.y}
    pos = queryMousePosition()
    print(pos)
    time.sleep(0.07)

Также пробовал (win32api) отклика от сенсора вообще нету
Python:
import win32api
import time


while True:
    if win32api.GetKeyState(0x0400) < 0:
        x, y = win32api.GetCursorPos()
        print(f'Коориднаты - {x}, {y}')
        time.sleep(1)
 

GetBay

Новичок
Пользователь
Фев 8, 2023
3
1
3
РЕШЕНИЕ:

Вариант 1 (Ловит любое действие пользователя, а также сенсорную панель Win10)
Python:
import win32api

def getIdleTime():
    return (win32api.GetTickCount() - win32api.GetLastInputInfo()) / 1000.0

Вариант 2 (Аналогично первому варианту)
Python:
from ctypes import Structure, windll, c_uint, sizeof, byref
import time

class LASTINPUTINFO(Structure):
    _fields_ = [
        ('cbSize', c_uint),
        ('dwTime', c_uint),
    ]

def get_idle_duration():
    lastInputInfo = LASTINPUTINFO()
    lastInputInfo.cbSize = sizeof(lastInputInfo)
    windll.user32.GetLastInputInfo(byref(lastInputInfo))
    millis = windll.kernel32.GetTickCount() - lastInputInfo.dwTime
    return millis / 1000.0

Вдруг кому-то пригодится =)
 
  • Мне нравится
Реакции: regnor

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 661
474
83
возможно нужно обрабатывать это сообщение
 

GetBay

Новичок
Пользователь
Фев 8, 2023
3
1
3
возможно нужно обрабатывать это сообщение
Спасибо, буду пробовать ! О результатах напишу
 
Последнее редактирование:

Форум IT Специалистов