Python迴圈修改植物大戰殭屍記憶體值

2021-10-01 08:01:47 字數 1120 閱讀 9531

"""

需求:每當陽光值低於300時,修改為500

"""import win32process # 程序

import win32con # 系統定義

import win32api # 呼叫系統模組

import ctypes # c語言型別

import win32gui # 介面

import time

process_all_access = (0x000f0000 | 0x00100000 | 0xfff) # |位運算 標示最高許可權開啟乙個程序

window = win32gui.findwindow('mainwindow', '植物大戰殭屍中文版') # 參1:類名,參2:標題

hid, pid = win32process.getwindowthreadprocessid(window) # 根據窗體獲取程序編號

phand = win32api.openprocess(process_all_access, false, pid) # 用最高許可權開啟乙個程序,phand:開啟的程序編號

data = ctypes.c_long() # c語言整數型別,讀取資料

mydll = ctypes.windll.loadlibrary('c:\\windows\\system32\\kernel32.dll') # 載入核心模組

while true:

mydll.readprocessmemory(int(phand), 0x1a860510, ctypes.byref(data), 4, none) # 0x1a84f228要修改的記憶體位址,4:位元組,none:不顧一切

print(data.value) # 成功讀取到的記憶體值!

# 當陽光值小於300時,修改至500

if data.value < 300:

# 修改記憶體值

new_data = ctypes.c_long(500) # 設定修改的資料

mydll.writeprocessmemory(int(phand), 0x1a860510, ctypes.byref(new_data), 4, none)

time.sleep(1)

bzoj1565 NOI2009 植物大戰殭屍

傳送門 這道題吃到某個植物a可能需要先吃掉別的植物b 在他的右邊或者保護著他 那麼我們把a連向b。發現這是最大權閉合子圖。顯然是可以通過網路流水過的。閉合子圖 v中頂點的所有出邊均指向v內部頂點 那麼按照最大權閉合圖的建圖方法 1.s向正權點連流量為權值的邊 2.負權點向t連流量為權值的絕對值的邊 ...

BZOJ1565 NOI2009 植物大戰殭屍

好久沒寫部落格了 題目在這裡 沒什麼好說的 應該很容易看出是最大閉合子圖吧?不過要注意一下的是,這題可能有植物是不可能被擊潰的,所以要先跑一遍拓撲排序把這些點排除掉 include include include include include include include include usi...

BZOJ1565 NOI2009 植物大戰殭屍

problem plants vs.zombies pvz 是最近十分風靡的一款小遊戲。plants 植物 和zombies 殭屍 是遊戲的主角,其中plants防守,而zombies進攻。該款遊戲包含多種不同的挑戰系列,比如protect your brain bowling等等。其中最為經典的,...