问题标签 [pythoncom]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 按类/接口名称实例化没有 ProgID 的 COM 对象
pywin32
客户端 COM 的文档显示了这种实例化 COM 对象的基本方法:
我正在尝试使用PersistentZoneIdentifier
类似于操作区域标识符以指定文件从何处下载的工作 - The Old New Thing - MSDN blogs。该类,如注册表HKEY_CLASSES_ROOT\CLSID\{0968e258-16c7-4dba-aa86-462dd61e31a3}
所示,没有对应的ProgID
.
我看到有一个底层pythoncom.CoCreateInstance
函数接受一个CLSID
实例化和一个IID
显然从中查询的函数。
但这很不方便,因为我必须使用难以理解的 GUID 而不是人类可读的名称。
问题是:
- /underlying WinAPI 中是否有一种
pywin32
按名称查找上述 GUID 的常用方法?(不建议手动搜索注册表) - 或者也许有其他方法可以用名称实例化该对象?
我尝试过但失败了:win32com.client.IDispatch(<class/interface name>)
,pythoncom.IID(<class/interface name>)
。当然,还查看了 Net、MSDN 和 PyWin32 文档。
python - pythoncom.CoCreateInstance 无法创建 IZoneIdentifier;尽管在 MSDN 中有记录,但该接口也从注册表中丢失
我正在尝试实现操作区域标识符以指定文件的下载位置——旧的新事物——Python 中的 MSDN 博客。
在CoCreateInstance
:
我收到一个错误:
(没有堆栈跟踪,因为这是一个扩展功能)
如果我用or替换IZoneIdentifier
IID ,它可以工作,但是具有正确 IID 的 a 会失败并出现相同的错误。pythoncom.IID_IUnknown
pythoncom.IID_IPersistFile
QueryInterface
事实上,在 中HKCR\Interface
,我什么都没有IZoneIdentifier
看到,但确实看到了IPersistFile
。
disassembledurlmon.dll
后,我看到它确实实现了接口,但没有在它的DllRegisterServer
. 进一步搜索,我看到它IPersistFile
正在被注册ole32.dll
- 但不是IZoneIdentifier
.
MSDN记录了这个接口从 IE6 开始可用。但它在 IE7 或 IE8 中都不存在。由于这是 XP(并且据称包含所有更新),因此我没有其他可尝试的方法。
同样,该接口存在于urlmon.h
MSDN 文章中提到的文件中的 Windows SDK 7.0 中。
问题是:
- 这个界面是否默默地放弃了,而没有 MSDN 反映这一点或其他什么?或者,这是一个已知问题吗?以后版本的 IE 可以用吗?
- 哪些组件具有哪些功能
ole32.dll
和urlmon.dll
相关(因此我可以尝试(卸载)为它们安装更新)?
windows - cx_Freeze ImportError:没有名为“pythoncom”的模块
问题
尝试运行使用 cx_Freeze 构建的 .exe 时出现以下错误:
ImportError:没有名为“pythoncom”的模块
我该如何解决这个问题?
附加信息
设置:
- Windows 7 企业版 64 位
- WinPython-64bit-3.5.2.3Qt5(Python 3.5.2 64 位)
- cx_Freeze 5.0
设置.py:
GUI.py 中的导入*
*其中一部分
使用“pythoncom”或“pywin”构建输出行:
构建过程中的错误:
没有任何
我还尝试过什么?
- 构建没有
'includes': ['pythoncom']
. 结果是一样的。 - 用
'packages': ['pythoncom']
. 结果是一样的。 - 用
'includes': ['pywin32']
. 将ImportError: No module named 'pywin32'
在构建期间获得。 - 用
'packages': ['pywin32']
. 将ImportError: No module named 'pywin32'
在构建期间获得。
python - win32com.client.DispatchWithEvents 用于同一线程中的多个对象
我正在尝试使用以下代码同时在 2 个单独的收件箱中侦听 OnItemAdd 事件:
pythoncom.PumpMessages() 似乎不起作用。如果我重构代码只收听一个收件箱的项目,它确实有效。
关于如何解决这个问题的任何想法?
python - pythoncom错误调用COM方法excel新表
我一直在研究一些 Python/Excel 应用程序,但是遇到了一个有趣的问题。我已将示例简化到产生错误的程度。
(警告 - 没有中断机制的无限循环)
运行时,它会打开 Excel,添加新工作簿,然后等待应用程序或工作簿对象上的事件。
如果我在 Excel 中执行任何可能的事件,则只有在将新工作表添加到工作簿时才会发生任何事情(因为事件类中没有定义处理程序)。立即产生以下错误:
我知道我可以在 pythoncom.PumpWaitingMessage() 周围放置 try/except 并且我知道这是 pythonic 方式:D 但是我仍然有兴趣知道是什么导致了这个错误......连续 4 次
编辑:尝试/除了泵周围不起作用以避免显示错误
python - 反复按下 alt+tab 时 Python 中的脚本崩溃(pyhook 和 pythoncom)
我正在 Windows 10 上的 Python 3.5.2 中制作一个脚本,该脚本捕获用户按下的键。代码运行良好,除非我按 alt+tab 切换窗口,有时会立即崩溃,有时会在我反复按下时崩溃。
接下来是最基本的代码:
有一个带有问题的视频。
我不想在任何情况下停止脚本。我该如何解决?
谢谢。
python - 我可以使用 pyHook 读取 Unicode 值吗?
我创建了一个简单的键盘记录程序。在键盘上键入的所有内容都会发送到 log.txt 文件。问题是我的代码仅适用于 ASCII 代码。当我输入希腊字符时,它们被视为英文。
我希望我的代码:
- 也接受希腊字符或其他语言(通常是所有类型的字符)
- 记录诸如 Alt、Ctrl 等事件
到目前为止我的代码:
我的程序应该接受 Unicode 吗?
它怎么能这样做?
python - 在 OS X 上针对 Pywin32 的代码?
我正在编写一些旨在在 Windows 机器上运行的代码,我想利用 Windows 特定模块,例如 Pywin32 或 Pythoncom。但是,我目前使用 OS X 作为我的主要开发平台,并且不能仅仅 pip install 这些软件包,因为它们显然是要安装在 Windows 机器上的。有没有办法可以导入这些模块并对其进行编码(类似于我可以使用 ctypes 与 DLL 交互的方式)?
python - Pyhook 出于某种原因给了我奇怪的输出
所以我是 Pyhook 的新手,我想让自己成为一个用于教育目的的键盘记录器。但是,日志给了我奇怪的输入。它要么只是随机符号,总是大写,要么都是好的和正常的。
我正在使用 python 3.4,我在 Windows 上。
这是我的代码:
代码大部分来自互联网,但略有修改。
现在的问题是:如何确保它始终是正常输出?
让我知道是否有任何需要澄清的地方。
python - python COM服务器中的查询接口
我目前从 win32com 包开始。我有 XSL 文件,我在其中使用用 Python 编写的 COM 对象:
XSL 转换使用 MSXML2 XSL 处理器完成,python COM 对象使用addObject方法注入。GetTest方法的实现如下:
obj参数的类型为PyIDispatch。为了使用我的 IXMLDOMNode 节点接口,我必须以某种方式获取它,对吗?但是,未注释的方法失败了
并且评论的方法失败了
有人可以建议做错了什么吗?提前致谢。