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:\Windows\System32\kernel32') #加載內核模塊
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:\Windows\System32\kernel32')
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修改器里面直接找到相關內存,右鍵修改內存數據即可。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM