1
我無法在IDE中使用兩次腳本,我猜這是因爲內存未被釋放。我試圖做一些事情,但我真的不知道該如何釋放它。如何在python中釋放內存wx.MemoryDC
import wx
import win32gui
from ctypes import windll
hwnd = win32gui.FindWindow(None, 'Steam')
# Window_FromHWND appears in wxPython 2.6.2.1+
def getScreenshot():
window = wx.Window_FromHWND(None, hwnd)
src_dc = wx.WindowDC(window)
width, height = window.GetSize()
mem_dc = wx.MemoryDC()
bitmap = wx.EmptyBitmap(width, height)
mem_dc.SelectObject(bitmap)
windll.user32.PrintWindow(hwnd, mem_dc.GetHDC() , 0)
mem_dc.SelectObject(wx.NullBitmap)
mem_dc.Clear()
src_dc.Clear()
window.Destroy()
mem_dc.Destroy()
src_dc.Destroy()
return bitmap.ConvertToImage()
app = wx.App(redirect=False)
image = getScreenshot()
filename = "testsnap.png"
image.SaveFile(filename, wx.BITMAP_TYPE_PNG)
image.Destroy()
app.MainLoop()
你真的不應該需要在Python中進行內存管理。我認爲你所有的clear()和destroy()調用都是多餘的(也可能是危險的)。 –
實際上它可能是因爲你的文件在某個地方打開了...是什麼讓你認爲這個問題與內存有關? –
您正在啓動應用程序主循環並且永不退出它! –