Найти - Пользователи
Полная версия: Окно вывода информации работающее фоном
Начало » Python для новичков » Окно вывода информации работающее фоном
1
KotMakrpskin
Добрый день!

Пишу для себя небольшой набор макросов на действия мышкой, для удобства работы хочу сделать окно поверх всех в 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: выполнить действия...    

Но я к несчастью не могу понять, как это окно сделать “откликаемым”, что бы оно отображало выбранный макрос и не мешало его выполнению.
В целом устроит и вариант с окном появляющемся на короткое время содержащим инфу о выбранном макросе.
AD0DE412
KotMakrpskin
PEHDOM
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, и тогда не нужно будет тыщу раз в секунду дергать метод ОС, а ОС сама дергнет твою процедуру когда произойдет нажатие клавиши.
KotMakrpskin
PEHDOM
программы не пишут, тебе нужно установить хукв цепочку хуков ОС,
гугли user32.SetWindowsHookExA
Благодарю! Хотелось бы еще разобраться с окном отображающем инфу о действующем выборе исполняемого макроса..
PEHDOM
KotMakrpskin
Хотелось бы еще разобраться с окном отображающем инфу о действующем выборе исполняемого макроса..
с окном все будет ОК когда ты уберешь из программы бесконечный цикл, тогда ткинтер запустит свой цикл обработки событий и вся инфа будет отображаться.
KotMakrpskin
Теперь до меня дошло что вы имели виду в первом посте, благодарю еще раз
И Адоду412 спасибо
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB