问题标签 [comtypes]

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.

0 投票
3 回答
3061 浏览

python - 问题通过 Python 使用 ADO 将数据插入 MS Access 数据库

[编辑2:下面的答案中的更多信息和调试...]

我正在编写一个 python 脚本来将 MS Access 数据库导出到一系列文本文件中,以实现更有意义的版本控制(我知道 - 为什么是 Access?为什么我不使用现有的解决方案?假设限制不是技术性质)。

我已经通过 comtypes 库使用 ADO 和 ADOX 成功导出了数据库的全部内容和结构,但是我在重新导入数据时遇到了问题。

我将每个表的内容导出到一个文本文件中,每行都有一个列表,如下所示:

以及导入所述文件的以下功能:

除了数值(双精度和整数)被插入为零外,一切正常。关于问题出在我的代码、eval、comtypes 还是 ADO 的任何想法?

编辑:我已经解决了插入数字的问题 - 将它们转换为字符串(!)似乎解决了双精度和整数字段的问题。

但是,我现在有一个不同的问题,以前被上述内容所掩盖:每行中的第一个字段被设置为 0,无论数据类型如何......有什么想法吗?

0 投票
2 回答
2480 浏览

python - 使用 Python comtypes 库向 Excel 添加查询表时出现问题

我正在尝试使用 Python comtypes 库在 excel 电子表格中创建一个 QueryTable,但得到一个相当无信息的错误......

在 vba 中(在工作簿中的模块中),以下代码可以正常工作:

但是下面的 Python 代码:

抛出无用的错误消息:

关于这里发生了什么的任何想法?

谢谢!

0 投票
2 回答
663 浏览

runtime - #if !USING_NET11 using System.Runtime.InteropServices.ComTypes 是什么意思?#endif 是什么意思?

以下代码是什么意思,它有什么作用?真的需要吗?

在我的项目文件中,我使用 dshownet 包装器实现了网络摄像头捕获。上面的代码在 Form1.cs 文件中。

0 投票
3 回答
4371 浏览

python - 为什么我不能在 Python 的新线程中创建 COM 对象?

我正在尝试从 Python 的新线程中的 dll 创建一个 COM 对象 - 所以我可以在该线程中运行消息泵:

这是我得到的错误跟踪:

有任何想法吗?

0 投票
3 回答
10677 浏览

python - 无法导入 comtypes.gen

我在 Python 2.6 上安装了 comtypes 0.6.2。如果我试试这个:

我得到:

但是,其他导入,例如import comtypesand import comtypes.client,可以正常工作。

我究竟做错了什么?

从名字看来comtypes.gen是生成的代码?如果是这样,在导入之前我是否需要某些准备步骤?我没有以管理员身份登录。这会导致代码生成失败吗?

编辑: 上述问题通过 a 解决reload(comtypes.gen)(不过我不明白如何)。但是,现在from comtypes.gen import IWshRuntimeLibrary无法正常工作。该符号应该是生成代码的一部分。那么如何生成此代码呢?

0 投票
1 回答
1124 浏览

python - Python、ArcObjects 和 .AppRef:如何从 IAppROT 到 IMxDocument?

我正在编写一个外部 Python/comtypes 脚本(在 PythonWin 中),它需要获取对当前 ArcGIS 10.0 ArcMap 会话的引用(通过 ArcObjects COM)。因为脚本在应用程序边界之外,所以我通过 AppROT(运行对象表)获取应用程序引用。下面的第一个代码片段是主要的 Python 驱动程序模块。其中有一个 GetApp() 函数,用于从 AppROT 中获取应用程序引用。此代码工作正常,并在单例 AppRef 对象上返回 IApplication。有道理,这就是 ArcObjects 参考似乎表明的。现在,我的主要目标是获得一个 IMxDocument。在主循环中,我成功获得了一个 IDocument 并可以打印标题。但是,下一行查询接口会引发错误 - NameError: name 'esriArcMapUI' is not defined。即使在关闭 PythonWin 并重新打开之后(您总是想在断定您有问题之前尝试),该错误也会持续发生。[顺便说一句,第二个代码片段是 QI 的 CType() 函数,在 SignHelpers.py 模块中定义和导入。] 所以,这是我的问题:

(1) IDocument 在什么 COM 对象上?
(2) 如何从我的 IDocument 获取到预期的 IMxDocument?我需要先创建一个新的 MxDocument 对象吗?[对不起。那里有两个问题。]
(3) 如果我不必创建新对象,那么我该如何做 QI?

几年前,我在 VB6 中做了很多 ArcObjects 工作,所以现在明确的 QI 和命名空间正在给我带来麻烦。一旦我可以访问 IMxDocument,我就可以自由回家了。我将不胜感激任何人都可以为此提供帮助。

另外,对于下面代码的格式,我深表歉意。我不知道如何让 Python 代码正确格式化。缩进不起作用,一些 Python 代码被解释为格式化字符。

0 投票
3 回答
1071 浏览

python - Python 2.5 和 2.7 能否与 wxPython、py2exe 和 comtypes 共存(尝试解决 MSVCP90.dll 问题)?

我正在编写一个使用 wxPython 和 comtypes 的代码。我的机器(Windows)上安装了 python 2.7 以及 wxPython、comtypes 和 py2exe。在尝试构建它时,我收到以下错误:

错误:MSVCP90.dll:没有这样的文件或目录

因此,我进行了研究,发现了两种解决方案:

1.将 Microsoft.VC90.CRT.manifest 和 msvcp90.dll 复制到您的计算机并准备您的设置,如下所示:

from distutils.core import setup import py2exe from glob import glob data_files=[("Microsoft.VC90.CRT", glob(r'c:\shared_dlls*.*'))] setup(data_files=data_files, console=['main .pyw'])

2.使用 Python 2.5 以及 wxPython、comtypes 和 py2exe

现在,我有以下问题:

在第一种情况下 :我是否需要拥有 Visual Studio 许可证才能使用这些文件?或者可以放心使用。湾。如果我使用上述方法编译它会怎样?它是否仍然需要用户机器上的 MSVC90.dll 才能执行?我认为 - 不。如果我错了,请纠正我。我想删除任何依赖项并为用户提供一个用户可以直接执行而无需任何依赖项的 exe。

在第二种情况下: 因为我在我的机器上安装了 Python_2.7 以及上述模块。我想知道我可以在同一台机器上安装 Python 2.5 吗?它们可以共存吗?如果是,我是否需要为此安装另一个 wxPython、comtypes 和 py2exe 副本。

请建议我什么是最好的解决方案。我应该如何进行?这有点阻止我。提前致谢!

0 投票
1 回答
1958 浏览

python - Python 2.7 + wxPython 2.8.11 的问题?我应该切换回 Python 2.6.5 + wx.Python 2.8.10.1 吗?

我目前在我的 Windows 机器上使用 Python 2.7 + wxPython 2.8.11。在尝试构建一个小项目(它也使用 comtypes 并且可以说任何 activex,例如 flashwindow)时,我收到以下错误:

我通过将 .dll 和 .manifest 文件复制到目录来修复它。它构建良好。但是在执行时再次出现错误,例如“CreateActCtx”失败,错误为 0x0000007b,然后是

所以,我将我的 wxPython 升级到了 2.9*(Python 2.7),它失败了,无法找到 PROCESS_START。所以,我不得不恢复到 2.8.11(使用 Python 2.7)现在,它失败了(在将 MSVC*90.dll 复制到本地目录并构建成单个可执行文件之后):

似乎这里提到的 myole4ax* 存在问题(http://comments.gmane.org/gmane.comp.python.wxpython.devel/3114):

我该如何解决问题,还是需要切换回旧版本?我被困住了。在这方面的任何帮助将不胜感激。

谢谢。

0 投票
1 回答
1510 浏览

python - Python、comtypes 和 ArcObjects:创建 AppROT 对象时出错

comtypes正在 Python 2.6.5 和 ArcGIS 10 SP1 下试验 ArcObjects。我正在使用纯 Python 方法来包装此答案comtypes.CoCreateInstance中描述的 ArcObjects OLB,但在该方法中出现错误。

这是我正在运行的代码:

这是脚本的输出:

感谢您提供的任何见解!

0 投票
1 回答
105 浏览

com - COM 通信非常慢(comtypes 和 MSAA 问题!)

我正在尝试编写一个工具来自动安装二进制文件。基本上,我使用 comtypes 和 MSAA 界面与安装窗口交互并驱动安装过程。当弹出一个窗口时,我递归枚举这个窗口上的所有元素,选择最合适的元素(通常是一个按钮)进行交互,等等。该工具有时可以正常工作。但有时,枚举元素可能需要很长时间(对于不是很复杂的窗口可能长达 1.5 分钟)。这个问题似乎与时间有关。它并不总是快乐。我在这个问题上坚持了一周。有人可以帮忙吗?请!!!

我能想到的一种可能性是:当我枚举一个窗口时,这个窗口被目标应用程序破坏,然后 COM 被 mssed 并且无法进行进一步的导航。这可能是一个潜在的原因吗?我无法说服自己,因为最终枚举了窗口。如果枚举过程中窗口消失了,那么遍历窗口元素树应该会失败吧?