Chinaunix首页 | 论坛 | 博客
  • 博客访问: 315824
  • 博文数量: 240
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 50
  • 用 户 组: 普通用户
  • 注册时间: 2016-08-04 18:14
文章分类

全部博文(240)

文章存档

2017年(8)

2014年(4)

2013年(15)

2012年(4)

2011年(14)

2010年(55)

2009年(140)

我的朋友

分类: Python/Ruby

2010-04-10 00:10:49

    假设你的游戏名字叫 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[i]
        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),等等各种类型的句柄。操作系统给每一个窗口指定的一个唯一的标识号即窗口句柄。 

阅读(1520) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~