在使用這些技巧前,需要下載模塊: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修改器里面直接找到相關內存,右鍵修改內存數據即可。