假设你的游戏名字叫 MyGame,那么当你当前窗口是 MyGame 的时候,该脚本会像按键精灵一样,帮你自动按 1-5 数字键,那么你可以把 1-5 设置成你想要的技能快捷键来自动打怪了~~
#-*- coding: gbk -*-
import os,sys
import time
import ctypes
import win32gui
import win32api
import win32con
# pywin32-214.win32-py2.6.exe
MapVirtualKey = ctypes.windll.user32.MapVirtualKeyA
keymap = { '1':49, '2':50, '3':51, '4':52, '5':53, '6':54, '7':55, '8':56, '9':57, '0':48 }
def GetForegroundWindowName():
HWND = win32gui.GetForegroundWindow()
return win32gui.GetWindowText(HWND)
if __name__ == '__main__':
ks = ['1', '2', '3', '4', '5']
ks_p = [(keymap[k], MapVirtualKey(keymap[k],0)) for k in ks]
#ks_p= [(49, 2), (50, 3), (51, 4), (52, 5), (53, 6)]
print '*** If you get Game window in your top window, this script will get to run!!'
i = 0
while True:
print 'I waiting top window...'
fg = GetForegroundWindowName()
if fg != 'MyGame':
time.sleep(0.5)
continue
print 'Do actions...'
vkey, scan = ks_p
win32api.keybd_event(vkey, scan, 0, 0)
time.sleep(0.5)
win32api.keybd_event(vkey, scan, win32con.KEYEVENTF_KEYUP, 0)
i += 1
if i == len(ks):
i = 0
复制代码
# 在Windows编程中我们时刻接触到一个称为句柄(HANDLE)的东西。可以这样去理解句柄,Windows程序中产生的任何资源(要占用某一块或大或小的内存),如图标,光标,窗口,应用程序的实例(已加载到内存运行中的程序)。操作系统每产生一个这样的资源时,都要将它们放入相应的内存,并为这些内存指定一个唯一的标识号,这个标识号即该资源的句柄。操作系统要管理和操作这些资源,都是通过句柄来找到对应的资源的。按资源的类型,又可将句柄细分成图标句柄(HICON),光标句柄(HCURSOR),窗口句柄(HWND),应用程序实例句柄(HINSTANCE),等等各种类型的句柄。操作系统给每一个窗口指定的一个唯一的标识号即窗口句柄。
本文源自:/