python1.2-----pywin32模块/语音合成,窗口闪烁以及修改游戏数据的技巧

在使用这些技巧前,需要下载模块:pywin32 ,可以在cmd窗口输入:pip install pywin32进行下载

语音合成:
import win32com.client   #系统的客户端模块,win32com.client 模块在pywin32下载后就可以引入了。
dehua=win32com.client.Dispatch('SAPI.SPVOICE')
dehua.Speak('翻译成语音的文本')

窗口闪烁:

#窗口闪烁的前提是会操纵窗口,操纵窗口的软件可以下载my spy.exe,进入myspy.exe,将右边的图标拖到窗口的位置获取窗口的信息。只需要找到标题和类即可.

#操纵窗口

import win32con
import win32gui    #在安装pywin32后即可使用这两个模块
#找到窗口
QQWin=win32gui.FindWindow('窗口的类名','窗口的标题名')
#隐藏窗口
win32gui.ShowWindow(QQWin,win32con.SW_HIDE)
#显示窗体
win32gui.ShowWindow(QQWin,win32con.SW_SHOW)


#一个使打开的窗体持续闪烁的程序:(在打开一个窗口前,执行该程序,当打开一个窗口后,窗口会持续闪烁)
import win32con
import win32gui
import time
while 1:
  QQWin=win32gui.FindWindow('窗口的类名','窗口的标题名')   #QQWin就是操纵的窗口
  win32gui.ShowWindow(QQWin,win32con.SW_HIDE)   #令窗口隐藏
  time.sleep(1)    #隐藏1秒
  win32gui.ShowWindow(QQWin,win32con.SW_SHOW)#令槽口出现
  time.sleep(1)     #现身一秒


2.控制窗体的位置和大小
#参数1:控制的窗体
#参数2:大致方位,HWND_TOPMOST上方
#参数3:位置x
#参数4:位置y
#参数5:窗体的长度
#参数6:窗体的宽度

控制窗口随机移动:
while 1: 
  x=random.randrange(900)
  y=random.randrange(600)
  win32gui.SetWindowPos('窗体名',win32con.HWND_TOPMOST,x,y,300,300,win32con.SWP_SHOWWINDOW)

 


游戏数据修改:

在修改游戏数据前需要下载CE修改器之类的内存修改器
#进程模块
import win32process : #进程模块
import win32con
import win32gui #窗口
import win32api
import ctypes #做一些c语言的类型转换

 

#最高权限:
PROCESS_ALL_ACCESS=(0x00F00000|0x00100000|0xFFF)
#找窗体:
win=win32gui.FindWindow('窗口的类名','窗口的标题名')
#根据窗体找进程号:
hid,pid=win32process.GetWindowThreadProcessId(win)
#以最高权限打开进程:
p=win32api.OpenProcess(PROCESS_ALL_ACCESS,False,pid)#p为打开的进程

md=ctypes.windll.LoadLibrary(r'C:WindowsSystem32kernel32') #加载内核模块
data=ctypes.c_long()
#读取内存
md.ReadProcessMemory(int(p),0x用内存软件找到的相应的内存地址,ctypes.byref(data),4,None) #把内存里面的值拿出到data里面

newData=cytpes.c_long(10000)#新值
md.WriteProcessMemory(int(p),用内存软件找到的相应的内存地址,ctypes.byref(newData),4,None) #修改,4表示写4个字节。

例如:#本人用此方法修改植物大战僵尸的能量值,直接改成666
import win32process
import win32con
import win32api
import win32gui
import ctypes
PROCESS_ALL_ACCESS=(0x000F0000|0x00100000|0xFFF)
win=win32gui.FindWindow('MainWindow','Plants vs. Zombies')
hid,pid=win32process.GetWindowThreadProcessId(win)
p=win32api.OpenProcess(PROCESS_ALL_ACCESS,False,pid)
md=ctypes.windll.LoadLibrary(r'C:WindowsSystem32kernel32')
data=ctypes.c_long()
md.ReadProcessMemory(int(p),0x14E2C268,ctypes.byref(data),4,None)
newData=ctypes.c_long(666)#新值
md.WriteProcessMemory(int(p),0x14E2C268,ctypes.byref(newData),4,None)

修改游戏数据更简便的方法:在ce修改器里面直接找到相关内存,右键修改内存数据即可。

 

原文地址:https://www.cnblogs.com/yulianggo/p/9207689.html