如何隐藏从Python分发的COM对象

2 投票
1 回答
5632 浏览
提问于 2025-04-16 08:31

我在用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

撰写回答