Articles of com

¿Hay una forma mejor (además de COM) para el control remoto de Excel?

Estoy trabajando en una herramienta de prueba de regresión que validará una gran cantidad de hojas de cálculo de Excel. En este momento los controlo a través de COM desde un script de Python usando la última versión del producto pywin32. Desafortunadamente, COM parece tener una serie de inconvenientes molestos: Por ejemplo, el más mínimo […]

Imprimiendo en página doble un documento de Word

Estoy intentando automatizar la tarea de imprimir dos copias en una página doble de ~ 30 documentos de Word (* .doc). Quiero enviar el progtwig convertido a .exe (lo planeo solo para computadoras con Windows) usando py2exe . Sé que puedo verificar manualmente las opciones, pero no podré hacerlo en la computadora de 20 o […]

¿Cuál es la forma correcta de usar win32inet.WinHttpGetProxyForUrl

Estoy tratando de usar una característica de la biblioteca Microsoft WinHttp que ha sido expuesta por los desarrolladores de Win32com. Desafortunadamente, la mayoría de la biblioteca no parece estar documentada y no hay ningún ejemplo de la forma correcta de usar las características de win32inet a través de la biblioteca de win32com. Esto es lo […]

Python win32 com: ¿cómo manejar el parámetro ‘out’?

Necesito acceder a un servidor COM de terceros con la siguiente definición de interfaz (idl): interface IDisplay : IDispatch { HRESULT getFramebuffer ( [in] ULONG aScreenId, [out] IFramebuffer * * aFramebuffer, [out] LONG * aXOrigin, [out] LONG * aYOrigin ); }; Como puede ver, devuelve 3 valores a través de modificadores de parámetros [out]. ¿Cómo […]

Cómo distinguir los diferentes tipos de flotadores de NaN en Python

Estoy escribiendo código Python 2.6 que interactúa con NI TestStand 4.2 a través de COM en Windows. Quiero hacer un valor “NAN” para una variable, pero si lo paso float(‘nan’) , TestStand lo muestra como IND . Al parecer, TestStand distingue entre los valores de coma flotante “IND” y “NAN”. Según TestStand ayuda : IND […]

Obtener el nombre del libro de Excel activo de Python

Estoy intentando escribir una secuencia de comandos de Python que accederá y modificará el libro de Excel activo mediante la interfaz COM de Excel. Sin embargo, estoy teniendo dificultades para que esto funcione cuando hay varias instancias de Excel en ejecución. Por ejemplo, el código import win32com.client xl = win32com.client.Dispatch(“Excel.Application”) print(xl.ActiveWorkbook.FullName) imprime el nombre del […]

implementar la biblioteca de tipo de interfaz COM en Python

Tengo un complemento que estoy tratando de crear como muestra para una aplicación de la empresa para la que trabajo. Estoy tratando de escribir este plugin en Python. La forma en que funciona la architecture del complemento es que el complemento debe implementar una interfaz definida en una biblioteca de tipos COM proporcionada. Por lo […]

Al obtener el objeto Document desde el objeto Word.Application, sus miembros no se llenan desde el caché gencache mientras que VBSEdit puede obtenerlos.

https://mail.python.org/pipermail/python-win32/2004-October/002582.html resume mi problema perfectamente (con pequeñas modificaciones para actualizarlo en mi caso): Me gustaría tener una instancia de documento de Word con todos los métodos y propiedades visibles durante la sesión interactiva. Este es mi currículum: >>> from win32com.client import gencache, Dispatch >>> gencache.EnsureModule(‘{00020905-0000-0000-C000-000000000046}’, 0, 8, 1, bForDemand=True) >>> word = Dispatch(‘Word.Application’) >>> word […]

El interesante “getElementById () toma exactamente 1 argumento (2 dados)”, a veces ocurre. ¿Alguien puede explicarlo?

#-*- coding:utf-8 -*- import win32com.client, pythoncom import time ie = win32com.client.DispatchEx(‘InternetExplorer.Application.1’) ie.Visible = 1 ie.Navigate(‘http://ieeexplore.ieee.org/xpl/periodicals.jsp’) time.sleep( 5 ) ie.Document.getElementById(“browse_keyword”).value =”Computer” ie.Document.getElementsByTagName(“input”)[24].click() import win32com.client, pythoncom import time ie = win32com.client.DispatchEx(‘InternetExplorer.Application’) ie.Visible = 1 ie.Navigate(‘www.baidu.com’) time.sleep(5) print ‘browse_keword’ ie.Document.getElementById(“kw”).value =”Computer” ie.Document.getElementById(“su”).click() print ‘Done!’ Cuando se ejecuta el primer código de sección, se abrirá: ie.Document.getElementById(“browse_keyword”).value =”Computer” TypeError: getElementById() […]

No se puede cerrar Excel completamente usando win32com en Python

Este es mi código, y encontré muchas respuestas para VBA , .NET framework y es bastante extraño. Cuando ejecuto esto, Excel se cierra. from win32com.client import DispatchEx excel = DispatchEx(‘Excel.Application’) wbs = excel.Workbooks wbs.Close() excel.Quit() wbs = None excel = None # <– Excel Closes here Pero cuando hago lo siguiente, no se cierra. excel […]