def enter():
time.sleep(2)
appname = "?????"
enter = 0x0D
window = win32gui.FindWindow(None, appname)
try:
win32gui.SetForegroundWindow(window)
except:
pass
win32api.keybd_event(enter,0,0,0)
time.sleep(0.1)
win32api.keybd_event(enter,0,0,0)
time.sleep(0.1)
win32api.keybd_event(enter,0,0,0)
time.sleep(0.1)
win32api.keybd_event(enter,0,0,0)
time.sleep(0.1)
win32api.keybd_event(enter,0,0,0)
time.sleep(0.1)
python类keybd_event()的实例源码
def main_thread():
F6 = 0x75
while True:
win32api.keybd_event(F6,0,0,0)
time.sleep(0.05)
win32api.keybd_event(F6,0 ,win32con.KEYEVENTF_KEYUP ,0)
input_words = ""
for line in iter(input,"~~~~~????????~~~~~~"):
input_words += line
if " " in input_words or "?" in input_words:
break
print("???"+input_words)
win32api.keybd_event(F6,0,0,0)
time.sleep(0.05)
win32api.keybd_event(F6,0 ,win32con.KEYEVENTF_KEYUP ,0)
if "??" in input_words or "??" in input_words or "??" in input_words or "??" in input_words or "?" in input_words:
play(input_words)
else:
chat(input_words)
##????
def hawk_enter():
appname = "?????"
enter = 0x0D
count = 0
while True:
if count % 10 == 0:
window = win32gui.FindWindow(None, appname)
try:
win32gui.SetForegroundWindow(window)
except:
pass
if window != 0:
win32api.keybd_event(enter,0,0,0)
time.sleep(0.05)
win32api.keybd_event(enter,0 ,win32con.KEYEVENTF_KEYUP ,0)
time.sleep(1)
count += 1
def pressHoldRelease(*args):
'''
press and hold passed in strings. Once held, release
accepts as many arguments as you want.
e.g. pressAndHold('left_arrow', 'a','b').
this is useful for issuing shortcut command or shift commands.
e.g. pressHoldRelease('ctrl', 'alt', 'del'), pressHoldRelease('shift','a')
'''
for i in args:
win32api.keybd_event(VK_CODE[i], 0, 0, 0)
time.sleep(.05)
for i in args:
win32api.keybd_event(VK_CODE[i], 0, win32con.KEYEVENTF_KEYUP, 0)
time.sleep(.1)
def QQ_AtPerson(name):
win32api.keybd_event(win32con.VK_SHIFT, 0, 0, 0);
win32api.keybd_event(ord('2'), 0, 0, 0);
win32api.keybd_event(ord('2'), 0, win32con.KEYEVENTF_KEYUP, 0);
win32api.keybd_event(win32con.VK_SHIFT, 0, win32con.KEYEVENTF_KEYUP, 0);
time.sleep(0.5)
QQ_PrintText(user_list[name]['spell'])
time.sleep(0.8)
win32api.keybd_event(win32con.VK_RETURN, 0, 0, 0);
win32api.keybd_event(win32con.VK_RETURN, 0, win32con.KEYEVENTF_KEYUP, 0);
# Parse out the AT directives.
def key_down(self):
win32api.keybd_event(0x20 ,0,1,0)
def key_up(self):
win32api.keybd_event(0x20,0,win32con.KEYEVENTF_EXTENDEDKEY | win32con.KEYEVENTF_KEYUP,0)
def Ctrl_T():
try:
win32api.keybd_event(17,0,0,0)#ctrl????17
win32api.keybd_event(84,0,0,0)#t????84
win32api.keybd_event(84,0,win32con.KEYEVENTF_KEYUP,0)#????
win32api.keybd_event(17,0,win32con.KEYEVENTF_KEYUP,0)
time.sleep(3)
#win32gui.SendMessage(Tab_handle,0x130C,1,0)#????????????????
except Exception as e:
ReadEBK.wx_msg(corp_id, secret,agentid,sys._getframe().f_code.co_name+'\t'+str(e))
#???????
def button_event(content):
key_table = {'BACKSPACE':8, 'TAB':9, 'TABLE':9, 'CLEAR':12, 'ENTER':13, 'SHIFT':16, 'CTRL':17,
'CONTROL':17, 'ALT':18, 'ALTER':18, 'PAUSE':19, 'BREAK':19, 'CAPSLK':20, 'CAPSLOCK':20, 'ESC':27,
'SPACE':32, 'SPACEBAR':32, 'PGUP':33, 'PAGEUP':33, 'PGDN':34, 'PAGEDOWN':34, 'END':35, 'HOME':36,
'LEFT':37, 'UP':38, 'RIGHT':39, 'DOWN':40, 'SELECT':41, 'PRTSC':42, 'PRINTSCREEN':42, 'SYSRQ':42,
'SYSTEMREQUEST':42, 'EXECUTE':43, 'SNAPSHOT':44, 'INSERT':45, 'DELETE':46, 'HELP':47, 'WIN':91,
'WINDOWS':91, 'F1':112, 'F2':113, 'F3':114, 'F4':115, 'F5':116, 'F6':117, 'F7':118, 'F8':119,
'F9':120, 'F10':121, 'F11':122, 'F12':123, 'F13':124, 'F14':125, 'F15':126, 'F16':127, 'NMLK':144,
'NUMLK':144, 'NUMLOCK':144, 'SCRLK':145, 'SCROLLLOCK':145, 'LEFTCLICK':999, 'RIGHTCLICK':1000}
unrecognized = ''
key_values = []
keys = content.split('+')
for key in keys:
raw_key = key
key = key.strip().replace(' ','').upper()
if key in key_table:
key_values.append(key_table.get(key))
elif len(key) == 1:
key_values.append(ord(key))
else:
if key != '':
unrecognized = raw_key
for key_value in key_values:
if key_value == 999:
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
elif key_value == 1000:
win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0)
else:
win32api.keybd_event(key_value, 0, 0, 0)
time.sleep(1)
for i in range(len(key_values)-1, -1, -1):
if key_value == 999:
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
elif key_value == 1000:
win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0)
else:
win32api.keybd_event(key_values[i], 0, win32con.KEYEVENTF_KEYUP, 0)
time.sleep(1)
return unrecognized
#??????????
def next():
if platform.system() == 'Linux':
bus = dbus.SessionBus()
proxy = bus.get_object(
'org.mpris.MediaPlayer2.spotify', '/org/mpris/MediaPlayer2')
interface = dbus.Interface(
proxy, dbus_interface='org.mpris.MediaPlayer2.Player')
interface.Next()
elif platform.system() == 'Windows':
win32api.keybd_event(Media_Next, hwcode(Media_Next))
def previous():
if platform.system() == 'Linux':
bus = dbus.SessionBus()
proxy = bus.get_object(
'org.mpris.MediaPlayer2.spotify', '/org/mpris/MediaPlayer2')
interface = dbus.Interface(
proxy, dbus_interface='org.mpris.MediaPlayer2.Player')
interface.Previous()
elif platform.system() == 'Windows':
win32api.keybd_event(Media_Previous, hwcode(Media_Previous))
def pause():
if platform.system() == 'Linux':
bus = dbus.SessionBus()
proxy = bus.get_object(
'org.mpris.MediaPlayer2.spotify', '/org/mpris/MediaPlayer2')
interface = dbus.Interface(
proxy, dbus_interface='org.mpris.MediaPlayer2.Player')
interface.PlayPause()
elif platform.system() == 'Windows':
win32api.keybd_event(Media_Pause, hwcode(Media_Pause))
def play():
if platform.system() == 'Linux':
bus = dbus.SessionBus()
proxy = bus.get_object(
'org.mpris.MediaPlayer2.spotify', '/org/mpris/MediaPlayer2')
interface = dbus.Interface(
proxy, dbus_interface='org.mpris.MediaPlayer2.Player')
interface.PlayPause()
elif platform.system() == 'Windows':
win32api.keybd_event(Media_Pause, hwcode(Media_Pause))
def mute():
win32api.keybd_event(Media_Mute, hwcode(Media_Mute))
def type_char_worker():
while True:
char = type_char_queue.get()
if char is None:
break
if platform.system() == 'Linux':
if LINUX_USE_CLIPBOARD:
was = None
try:
was = root.clipboard_get()
except:
pass
root.clipboard_clear()
root.clipboard_append(char)
# call(["xdotool", "key", "CTRL+V"], False)
linux_paste()
if was is not None:
sleep(CLIPBOARD_WAIT_DELAY)
root.clipboard_clear()
root.clipboard_append(was)
else:
call(["xdotool", "key", "U" + hex(ord(char))[2:]], True)
else:
was = None
try:
was = win_get_clipboard_text()
except:
pass
win_set_clipboard_text(char)
win32api.keybd_event(win32con.VK_CONTROL, 0, 0, 0)
win32api.keybd_event(0x56, 0, 0, 0)
win32api.keybd_event(win32con.VK_CONTROL, 0,
win32con.KEYEVENTF_KEYUP, 0)
win32api.keybd_event(0x56, 0, win32con.KEYEVENTF_KEYUP, 0)
if was is not None:
sleep(CLIPBOARD_WAIT_DELAY)
win_set_clipboard_text(was)
type_char_queue.task_done()
def game_start(self):
#enter 3?
win32api.keybd_event(self.keyMap[4], 0, 0, 0) # enter down
time.sleep(0.1)
win32api.keybd_event(self.keyMap[4], 0, win32con.KEYEVENTF_KEYUP, 0) # enter up
time.sleep(0.1)
win32api.keybd_event(self.keyMap[4], 0, 0, 0) # enter down
time.sleep(0.1)
win32api.keybd_event(self.keyMap[4], 0, win32con.KEYEVENTF_KEYUP, 0) # enter up
time.sleep(0.1)
win32api.keybd_event(self.keyMap[4], 0, 0, 0) # enter down
time.sleep(0.1)
win32api.keybd_event(self.keyMap[4], 0, win32con.KEYEVENTF_KEYUP, 0) # enter up
time.sleep(4)
def game_reset(self):
#?? ?? ???????? ? ????
win32api.keybd_event(win32con.VK_MENU, 0, 0, 0) #alt down
time.sleep(self.interval_time)
win32api.keybd_event(win32con.VK_MENU, 0, win32con.KEYEVENTF_KEYUP, 0) #alt up
win32api.keybd_event(0x47, 0, 0, 0) # key'G' down
time.sleep(0.01)
win32api.keybd_event(0x47, 0, win32con.KEYEVENTF_KEYUP, 0) # key 'G' up
win32api.keybd_event(0x52, 0, 0, 0) # key 'R' down
time.sleep(0.01)
win32api.keybd_event(0x52, 0, win32con.KEYEVENTF_KEYUP, 0) # key 'R' up
self.game_start()
def press(*args):
'''
one press, one release.
accepts as many arguments as you want. e.g. press('left_arrow', 'a','b').
'''
for i in args:
win32api.keybd_event(VK_CODE[i], 0, 0, 0)
time.sleep(.05)
win32api.keybd_event(VK_CODE[i], 0, win32con.KEYEVENTF_KEYUP, 0)
def pressAndHold(*args):
'''
press and hold. Do NOT release.
accepts as many arguments as you want.
e.g. pressAndHold('left_arrow', 'a','b').
'''
for i in args:
win32api.keybd_event(VK_CODE[i], 0, 0, 0)
time.sleep(.05)
def release(*args):
'''
release depressed keys
accepts as many arguments as you want.
e.g. release('left_arrow', 'a','b').
'''
for i in args:
win32api.keybd_event(VK_CODE[i], 0, win32con.KEYEVENTF_KEYUP, 0)
def QQ_PrintText(str):
print "Send text = " + str.decode('gbk')
QQ_setClipboardText(str)
win32api.keybd_event(win32con.VK_CONTROL, 0, 0, 0);
win32api.keybd_event(ord('V'), 0, 0, 0);
win32api.keybd_event(ord('V'), 0, win32con.KEYEVENTF_KEYUP, 0);
win32api.keybd_event(win32con.VK_CONTROL, 0, win32con.KEYEVENTF_KEYUP, 0);
# AT a name.
def QQ_Enter():
win32api.keybd_event(win32con.VK_CONTROL, 0, 0, 0);
win32api.keybd_event(win32con.VK_RETURN, 0, 0, 0);
win32api.keybd_event(win32con.VK_RETURN, 0, win32con.KEYEVENTF_KEYUP, 0);
win32api.keybd_event(win32con.VK_CONTROL, 0, win32con.KEYEVENTF_KEYUP, 0);
# The interface function to send QQ a message.
def QQ_ToggleMessageRecord():
win32api.keybd_event(win32con.VK_MENU, 0, 0, 0);
win32api.keybd_event(ord('H'), 0, 0, 0);
win32api.keybd_event(ord('H'), 0, win32con.KEYEVENTF_KEYUP, 0);
win32api.keybd_event(win32con.VK_MENU, 0, win32con.KEYEVENTF_KEYUP, 0);
# Copy the last message.
def QQ_CopyText():
win32api.keybd_event(win32con.VK_CONTROL, 0, 0, 0);
win32api.keybd_event(ord('C'), 0, 0, 0);
win32api.keybd_event(ord('C'), 0, win32con.KEYEVENTF_KEYUP, 0);
win32api.keybd_event(win32con.VK_CONTROL, 0, win32con.KEYEVENTF_KEYUP, 0);
# Close the window.
def QQ_PasteFile():
win32api.keybd_event(win32con.VK_CONTROL, 0, 0, 0);
win32api.keybd_event(ord('V'), 0, 0, 0);
win32api.keybd_event(ord('V'), 0, win32con.KEYEVENTF_KEYUP, 0);
win32api.keybd_event(win32con.VK_CONTROL, 0, win32con.KEYEVENTF_KEYUP, 0);
def QQ_SendOffline():
QQ_Enter()
time.sleep(0.2)
for i in range(0, 10):
print "tab = " + str(i)
win32api.keybd_event(win32con.VK_TAB, 0, 0, 0);
win32api.keybd_event(win32con.VK_TAB, 0, win32con.KEYEVENTF_KEYUP, 0);
time.sleep(0.2)
QQ_Enter()
def sendKeyEvent(key, command):
win32api.keybd_event(key, 0, command, 0)
time.sleep(0.2)
def _read_clipboard(self):
for _ in range(15):
try:
win32api.keybd_event(17, 0, 0, 0)
win32api.keybd_event(67, 0, 0, 0)
win32api.keybd_event(67, 0, win32con.KEYEVENTF_KEYUP, 0)
win32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0)
time.sleep(0.2)
return pyperclip.paste()
except Exception as e:
log.error('open clipboard failed: {}, retry...'.format(e))
time.sleep(1)
else:
raise Exception('read clipbord failed')
def click(self):
win32api.keybd_event(VK_CODE['spacebar'],0,0,0)
win32api.keybd_event(VK_CODE['spacebar'],0,win32con.KEYEVENTF_KEYUP,0)
return self.getActivePresentationSlideIndex()
def shortcut_keys(self,list_key=[]):
for x in list_key:
tmp = self.dic_keycode(x)
win32api.keybd_event(tmp,0,0,0)
for x in reversed(list_key):
tmp = self.dic_keycode(x)
win32api.keybd_event(tmp,0,win32con.KEYEVENTF_KEYUP,0)