Python 编程。访问 Windows 右键菜单选项

2024-03-22

我希望能够自动化工作中的一些任务。其中之一是将 Power Point 文件合并并转换为 PDF。我是个新手(我刚刚读完 Magus Heitland 的 Beginning Python),所以我不太确定我具体要问什么。

在 Windows 上,可以选择多个文件,右键单击,然后选择合并为 adobe PDF。我已经弄清楚了我想要转换的文件的“分组”(我遍历目录并根据文件名称将文件嵌套在列表中),但我不确定如何进行下一步(右键单击/合并命令)。

通过谷歌搜索,我找到了 win32api、pywinauto 和 ctypes 等内容。但当我阅读他们所做的事情时,我的新手让我不知道哪个是我需要的工具。

有人可以建议一些好的资源或技巧吗?


这个问题没有简单的答案。在 Windows 中,上下文菜单条目是由上下文菜单 shell 扩展创建的,上下文菜单 shell 扩展是一种 shell 扩展,是在 Windows 资源管理器中注册的 COM 组件。要调用一组文件上的任意上下文菜单条目,必须执行以下操作:

  1. 获得一个IShell文件夹 http://msdn.microsoft.com/en-us/library/bb775075%28VS.85%29.aspx包含文件的 shell 文件夹的界面。
  2. Use IShellFolder::GetUIObjectOf http://msdn.microsoft.com/en-us/library/bb775073%28v=VS.85%29.aspx获取该 shell 文件夹的上下文菜单处理程序对象。向其传递一个 ITEMIDLIST,其中包含所选文件的列表,并且riid = IContextMenu.
  3. Call IContextMenu::InvokeCommand http://msdn.microsoft.com/en-us/library/bb776096%28v=VS.85%29.aspx对文件组执行所需的命令。

所有这些都可以在Python中实现(通过ctypes or win32com),但我认为最好从直接支持 COM 的语言(例如 C++)开始,并在它工作后转换为 Python...或者使用不同的方法。


EDIT如果您完全控制执行环境,那么模拟用户输入(键盘和鼠标)可能就足够了。用Python 做起来要容易得多。您只需要一个系统函数:发送输入 http://msdn.microsoft.com/en-us/library/ms646310%28VS.85%29.aspx。快速谷歌搜索揭示了通过以下方式使用 SendInput 的示例ctypes here http://kvance.livejournal.com/985732.html.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 编程。访问 Windows 右键菜单选项 的相关文章

  • 使用 PIP 从 Github 安装 Python 包

    我已经看到文档表明您可以通过以下方式使用 pip 安装托管 Python 包的 Github sudo pip install e git git github com myuser myproject git egg myproject
  • Django:ImageField 需要文件路径还是实际的图像对象?

    Running Windows 7 Python 3 3 Django 1 6 我对如何将图像存储为 Django 数据库中表的一部分感到困惑 有一个领域叫做ImageField 这是Docs https docs djangoprojec
  • 在Python中读取PDF属性/元数据

    如何使用 Python 读取 PDF 文件中存储的属性 元数据 例如标题 作者 主题和关键字 Try pdfminer https github com euske pdfminer from pdfminer pdfparser impo
  • 我是否必须覆盖子类中的所有数学运算符?

    我想在 Python 3 7 程序中创建一个简单的 Point2d 类 仅实现一些功能 我在一个 SO 答案中看到 我现在找不到 创建 Point 类的一种方法是重写complex所以我写了这个 import math class Poin
  • OpenCV Python 和 SIFT 功能

    我知道有很多关于Python and OpenCV但我没有找到有关这个特殊主题的帮助 我想提取SIFT关键点来自 python OpenCV 中的图像 我最近安装了 OpenCV 2 3 可以访问 SURF 和 MSER 但不能访问 SIF
  • 加速 Numpy 数组上的循环

    在我的代码中 我有一个 for 循环 它对多维 numpy 数组进行索引 并使用每次迭代时获得的子数组进行一些操作 看起来像这样 for sub in Arr do stuff using sub 现在使用完成的东西sub是完全矢量化的 所
  • 从日志文件 python 创建 csv 标题

    我的日志文件每行都包含一些信息 如下所示 Info1 NewOrder key 123 Info3 10 Info5 abc Info3 10 Info1 OldOrder key 456 Info6 xyz Info1 NewOrder
  • 使用 pybind11 修改 std::array 的默认值

    我的目标是修改在中声明的数组C struct并赋予默认值 我读过了this https pybind11 readthedocs io en stable advanced cast stl html making opaque types
  • QFileDialog 作为 TableView 的编辑器:如何获取结果?

    我正在使用一个QFileDialog作为某些专栏的编辑QTableView 这基本上有效 对一些焦点问题取模 请参阅here https stackoverflow com questions 22854242 qfiledialog as
  • 如何在 pygame 中水平翻转图像?

    这是在 pygame 如何翻转图像 假设一个图像 猪向右看 时向左看 我按向左箭头键 然后保持这样 即使我不按任何键或者按向上和向下箭头键 那么 当我按向右箭头键时 如何再次将其切换回向右看 并使其保持这种状态 即使我不按任何键或按向上和向
  • 如何使用 Anaconda Python 执行 .py 文件?

    我刚刚在我的 Windows 计算机上下载并安装了 Anaconda 但是 我在使用命令提示符执行 py 文件时遇到问题 如何让我的计算机了解 python exe 应用程序位于 Anaconda 文件夹中 以便它可以执行我的 py 文件
  • 将误差线添加到 3D 绘图

    我找不到在 matplotlib 的 3D 散点图中绘制误差条的方法 基本上 对于以下代码段 from mpl toolkits mplot3d import axes3d import matplotlib pyplot as plt f
  • 在Python中寻找坐标系中某些点之间的最短路径

    我编写了一个代码 可以在坐标系中的特定宽度和长度范围内生成所需数量的点 它计算并列出我使用欧几里德方法生成的这些点的距离矩阵 我的代码在这里 import pandas as pd from scipy spatial import dis
  • 在此异步设置中,我在哪里捕获 KeyboardInterrupt 异常

    我正在开发一个使用ccxt异步库 它要求通过显式调用该类的资源来释放某个类使用的所有资源 close 协程 我想退出程序ctrl c并等待异常中的关闭协程 然而 它永远不会被等待 该应用程序由模块组成harvesters strategie
  • 使用 South 更改 Django 模型列默认值

    我在 Django 项目中使用 South 和 Postgresql DB 我想更改一个模型字段的默认值以供继续使用 我不需要以前的记录 刚刚新记录 我是否需要为此进行迁移 或者只是更改模型 旧场详细信息 background style
  • Python,socket.error:[Errno 10049]

    在开发一个简单的聊天客户端的基础上 遇到以下错误 socket error Errno 10049 The requested address is not valid in its context 代码是 from socket impo
  • 如何在seaborn displot上绘制正态曲线

    distplot 已被弃用 取而代之的是 displot 之前的函数可以选择绘制正态曲线 import seaborn as sns import matplotlib pyplot as plt from scipy import sta
  • Pandas - 过滤器和正则表达式搜索 DataFrame 的索引

    我有一个 DataFrame 其中列是 MultiIndex 索引是名称列表 即index Andrew Bob Calvin 我想创建一个函数来返回数据帧中使用名称 Bob 或以字母 A 开头或以小写字母开头的所有行 如何才能做到这一点
  • Python 和 Visual Studio Code - 如何在编辑器中运行特定文件?

    我正在使用 Visual Studio Code 和 Python 编写一个小型应用程序 我的应用程序有两个文件 Main py and MyCustomClass py Main py是应用程序的入口点 MyCustomClass py包
  • 为什么 Pytest 对夹具参数执行嵌套循环

    使用 Pytest 我想编写一个测试函数 该函数接受多个装置作为参数 每个灯具都有几个参数 例如 test demo py 中是一个函数test squared is less than 10需要固定装置 negative integer

随机推荐

  • 使用 ObjectInputStream 读取文件时出现 EOFException [重复]

    这个问题在这里已经有答案了 我基本上有一个类似的问题 如此处所述 Java中读取objectinputstream时出现EOF异常 https stackoverflow com q 2308128 1065197 但我找不到干净代码的答案
  • jQuery 1.4.1 中缺少 JSON stringify?

    显然 jQuery 能够将给定的对象或字符串解码为 JSON 对象 但是 我有一个 JS 对象 需要将其 POST 回服务器 并且我在 jQuery 中找不到包装 JSON stringify 函数的实用程序 Chrome Safari 4
  • 在运行时改变对象的行为

    如何在运行时更改对象的行为 使用C 我举一个简单的例子 我有课Operator包含一个方法operate 让我们假设它看起来像这样 double operate double a double b return 0 0 用户将给出一些输入值
  • ASP.NET MVC 模型与表单元素名称中的破折号绑定

    我一直在互联网上搜索 试图找到一种方法 将表单元素中的破折号容纳到 MVC 2 3 甚至 4 中 ASP NET 控制器的默认模型绑定行为中 作为一名前端开发人员 我更喜欢 CSS 中的破折号 而不是驼峰命名法或下划线 在我的标记中 我想要
  • 客户无需离开您的网站即可使用 Paypal 进行付款

    我的客户给我这个链接https www paypal com webapps mpp compare business products https www paypal com webapps mpp compare business p
  • 使用任务时出现意外的线程中止异常。为什么?

    我有一个在应用程序域中运行的控制台应用程序 应用程序域由自定义 Windows 服务启动 该应用程序使用父任务来启动多个有效的子任务 当计时器寻找新工作时 在任何给定时间都可能有许多父任务和子任务一起运行 所有父任务的句柄位于任务列表中 s
  • 我必须实现哪些方法才能重新排列 UITableView 行?

    对于使用名为 rows 的字符串 NSMutableArray 的简单示例 我必须在表控制器中实现什么才能移动 tableView 行并将更改反映在我的数组中 我们在这里做繁重的工作 void tableView UITableView t
  • Flutter中JSON序列化和反序列化为对象

    由于 Flutter 从其 SDK 中删除了 dart 镜像 因此不再可能使用 dartson 等库进行 JSON 对象序列化 反序列化 不过 我读到built value 是实现类似目的的另一种方法 我找不到任何关于如何实现它的好例子 因
  • 所有小部件上的 Flutter 工具提示

    有没有办法设置tooltip on a Text widget new Text Some content tooltip Displays a message to you 这是行不通的 然而它确实有效 因为这里提到 https docs
  • 使用 GNU Make 将多行变量输出到文件

    我很难编写在文件中输出多行变量的 makefile 规则 这是我的代码 define VAR1 dev d 755 endef define VAR2 test d 777 test2 d 777 endef VARS VAR1 VARS
  • 组件的 Angular 2 指令会覆盖 ng-content?

    我有一个名为 ButtonComponent 的组件 import Component from angular2 core Component selector btn template div class btn div
  • 将 subprocess.Popen (shell=True) 与 Windows 文件夹一起使用

    我目前正在看Popen自动压缩和存储文档 对于压缩部分 我想到了以下Python行 subprocess Popen WinRAR exe a r c 03 Notes AllTexts txt shell True 我不断收到错误消息 因
  • Linkedin API - 按关键字搜索帖子

    我尝试通过 Linkedin API for PHP 将我的 Web 应用程序与 Linkedin 连接 有什么方法可以使用这个通过关键字搜索人们的出版物吗 如果可以的话 我还没有找到方法 我认为他们没有这种本机 所以他们可以避免报废 您可
  • 使用 Angular、node.js 和身份提供商进行 SAML 身份验证

    我想使用 SAML2 实现 SSO 但我不知道如何让它与分布式系统一起工作 其中每个实例都在自己的服务器上独立运行 该环境由三个实例组成 实例 1 有角度的前端 实例 2 node js 后端 使用express js Passport 实
  • Rails:如何安装 keywords.js?

    我想在我的应用程序上实现此功能 但我不知道如何安装它 您能否发布一步一步的信息 以便我了解要放置哪些文件 因为我尝试按照 github 页面上的说明进行操作 但没有成功 http vincentgarreau com articles js
  • 调用 Task.Result 时出现 ThreadAbortException

    我有以下代码 我尝试使用以下命令向远程端点发出请求HttpClient using var client new HttpClient client BaseAddress serviceBaseAddress Task
  • WCF - 网络成本

    我在 IIS 上部署了一个 wcf 服务 使用 basicHttpBinding 和 aspNetCompatibilityEnabled true 我还有一个测试客户端 它同时调用多个服务功能 为了检查客户端和服务器上服务调用的性能 我计
  • Angular 如何使用 rxjs 管道过滤可观察的数据

    我在服务文件中调用了一个名为 getWorkOrders 的方法 该方法又调用服务器来获取记录 这是我的服务 我正在使用新的 HttpClient export class BackendServices private BASE URL
  • 如何自定义 json 格式的 TestNG 报告结果

    我正在使用 TestNG 和 selenium webdriver java 我想制作一个json格式的输出报告 testng可以制作一个json格式的报告吗 请给我一个关于这个问题的例子 您可以编写自己的报告程序 以您需要的任何格式生成测
  • Python 编程。访问 Windows 右键菜单选项

    我希望能够自动化工作中的一些任务 其中之一是将 Power Point 文件合并并转换为 PDF 我是个新手 我刚刚读完 Magus Heitland 的 Beginning Python 所以我不太确定我具体要问什么 在 Windows