2010-12-14 130 views
1

J'utilise COM en Python et je veux que l'objet s'exécute en arrière-plan - caché. Avec Excel je fais:Comment masquer l'objet COM Distribué à partir de Python

Import win32com.client 
Excel=win32com.client.Dispatch("Excel.Application") 
Excel.Visible=1 

mais ma demande n'ont pas la propriété .Visible - est-il une autre façon de le cacher? Peut-être un paramètre spécial à Dispatch?

Merci à l'avance R

Répondre

2

Si vous connaissez le titre de votre application ou classe, vous pouvez le cacher via 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) 

### 

HTH, Pablo