Уведомления

Группа в Telegram: @pythonsu

#1 Март 14, 2020 23:54:55

KotMakrpskin
Зарегистрирован: 2020-03-04
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Окно вывода информации работающее фоном

Добрый день!

Пишу для себя небольшой набор макросов на действия мышкой, для удобства работы хочу сделать окно поверх всех в windows где будет выводится информация об активном макросе в данный момент. В целом само окно сделать вышло, оно компактно висит в углу:

 import time as t
import win32api
import win32con
from tkinter import *
 
X1 = win32con.VK_XBUTTON1
X2 = win32con.VK_XBUTTON2
root = Tk()
root.overrideredirect(True)
root.title('Окно')
root.wm_attributes('-topmost',1)
root['bg'] = 'black'
while True:
    t.sleep(0.001)
    if win32api.GetAsyncKeyState(X1):
            on = False
            lbl = Label(root, text="Выбран макрос №1")
            lbl.grid(column=0, row=0)
            root.mainloop()
            macro = 1
    if win32api.GetAsyncKeyState(X2):
            on = True
            lbl = Label(root, text="Выбран макрос №2")
            lbl.grid(column=0, row=0)
            root.mainloop() 
            macro = 2 
    
   if ПКМ and macro == 1: выполнить действия...    

Но я к несчастью не могу понять, как это окно сделать “откликаемым”, что бы оно отображало выбранный макрос и не мешало его выполнению.
В целом устроит и вариант с окном появляющемся на короткое время содержащим инфу о выбранном макросе.

Отредактировано KotMakrpskin (Март 15, 2020 14:48:31)

Офлайн

#2 Март 15, 2020 14:20:46

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Окно вывода информации работающее фоном

KotMakrpskin



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Офлайн

#3 Март 15, 2020 15:01:52

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Окно вывода информации работающее фоном

KotMakrpskin
Но я к несчастью не могу понять, как это окно сделать “откликаемым”, что бы оно отображало выбранный макрос и не мешало его выполнению.
В целом устроит и вариант с окном появляющемся на короткое время содержащим инфу о выбранном макросе.
вобщем так:
 while True:
t.sleep(0.001)
if win32api.GetAsyncKeyState(X1):
программы не пишут, тебе нужно установить хук в цепочку хуков ОС,
гугли SetWindowsHookExA
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setwindowshookexa
https://stackoverflow.com/questions/53732628/python-using-winapi-setwindowshookexa-on-windows-10
в данном случае нужно вешать хук на событие WH_KEYBOARD_LL, и тогда не нужно будет тыщу раз в секунду дергать метод ОС, а ОС сама дергнет твою процедуру когда произойдет нажатие клавиши.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Март 15, 2020 15:15:05)

Офлайн

#4 Март 15, 2020 15:16:04

KotMakrpskin
Зарегистрирован: 2020-03-04
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Окно вывода информации работающее фоном

PEHDOM
программы не пишут, тебе нужно установить хукв цепочку хуков ОС,
гугли user32.SetWindowsHookExA
Благодарю! Хотелось бы еще разобраться с окном отображающем инфу о действующем выборе исполняемого макроса..

Офлайн

#5 Март 15, 2020 15:22:38

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Окно вывода информации работающее фоном

KotMakrpskin
Хотелось бы еще разобраться с окном отображающем инфу о действующем выборе исполняемого макроса..
с окном все будет ОК когда ты уберешь из программы бесконечный цикл, тогда ткинтер запустит свой цикл обработки событий и вся инфа будет отображаться.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#6 Март 15, 2020 16:05:25

KotMakrpskin
Зарегистрирован: 2020-03-04
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Окно вывода информации работающее фоном

Теперь до меня дошло что вы имели виду в первом посте, благодарю еще раз
И Адоду412 спасибо

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version