如何隐藏从Python分发的COM对象
我在用Python操作COM对象,想让这个对象在后台运行,也就是不显示出来。对于Excel,我可以这样做:
Import win32com.client
Excel=win32com.client.Dispatch("Excel.Application")
Excel.Visible=1
但是我的应用程序没有.Visible
这个属性,那有没有其他方法可以让它隐藏呢?或者说有没有什么特别的参数可以用在Dispatch里?
提前谢谢你们!
1 个回答
4
如果你知道你的应用程序的标题或类名,你可以通过 ShowWindow 来隐藏它:
import win32com.client
import win32con
import win32gui
import time
print "Start"
excel = win32com.client.Dispatch("Excel.Application")
excel.Visible = 1 # Visible via automation
time.sleep(2)
hwnd = win32gui.FindWindow(None, "Microsoft Excel") # Class or title
print "Hide"
win32gui.ShowWindow(hwnd, win32con.SW_HIDE) # Hide via Win32Api
time.sleep(2)
print "Show"
win32gui.ShowWindow(hwnd, win32con.SW_SHOW) # Show via Win32Api
time.sleep(2)
###
希望这对你有帮助,
Pablo