gpt4 book ai didi

python - 使用 python/COM 的 Windows 应用程序自动化

转载 作者:行者123 更新时间:2023-12-01 01:44:45 24 4
gpt4 key购买 nike

我正在尝试在后台为用户自动化 ChemDraw,最好避免使用 SendKeys(),因为我认为这需要一个 ChemDraw 实例可见才能工作。我需要做的是以某种方式单击“编辑”->“复制为”->“InChI”,然后从 Windows 剪贴板中检索结果。

enter image description here

我们目前正在使用 Python 和 COM 脚本来尝试此操作。这是我们当前的代码:

    # Opens ChemDraw and loads the file, while keeping the window hidden.
ChemDraw = w32.DispatchEx('ChemDraw.Application') # ChemDraw Application Object
ChemDraw.Visible = False # Makes Invisible
Compound= ChemDraw.Documents.Open(cdx_filepath) # ChemDraw File Object (Can be seen with ChemDraw.Activate())

# Selects the whole molecule.
Compound.Objects.Select()

# Here is where we need to figure out how to do CopyAs and Save off clipboard content.

# Saves the file and Quits afterwards.
Compound.SaveAs(jpg_filepath)
ChemDraw.Quit()

我想我有两个问题:我们如何访问工具栏中的“编辑”以及其中的结果值?如何获取由“ChemDraw = w32.DispatchEx('ChemDraw.Application')”等行生成的结果对象并确定可以用它做什么?部分问题在于我们似乎无法内省(introspection)生成的 DispatchEx 对象,因此我们很难回答自己的问题。

最佳答案

关于如何访问“编辑”菜单内容的第一个问题将特定于 ChemDraw 本身,如果没有这个问题,我无法立即给出解决方案。

但是,也许有了第二个问题的答案就可以让您自己回答第一个问题,所以,这里是:假设 ChemDraw COM 对象允许,您可以使用 win32com.client.gencache.EnsureDispatch代替DispatchEx为了自动生成对象的Python类;这使您可以更详细地检查对象。而不是使用 EnsureDispatch ,您还可以直接访问底层代码生成功能,这可能更适合您的工作流程。请参阅this questionthis guide了解更多详情。

关于python - 使用 python/COM 的 Windows 应用程序自动化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51502558/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com