我知道 MS Paint 中打开文件、调整大小然后保存的按键顺序。我想知道如何编写一个程序来对特定目录中的所有文件重复执行此操作。我知道 VBA、PHP 和其他程序。我考虑过编写一个批处理文件,但从我读到的内容来看,一旦打开 Paint,我就无法从 cmd 窗口向 MS Paint 发送按键命令。有人能给我指点一下吗?我相信这不太难,我只是不知道从哪里开始。
答案1
简短版本:
VBA 本身不支持发信息,发帖,或者其他需要的API。
长版本:
您可以按照相当复杂的顺序围绕这些函数构建一个 vb.net 包装器,然后通过您构建的包装器从 VBA 脚本内部调用它们。
即使如此,使用发信息API 将会变得复杂,因为您需要一堆来自其他的参数。
- 找到正确的窗口 HWND
- 哎呀,菜单是 #1 的子项
- 查找所有子对象,确定哪一个是菜单
- 文件、编辑、视图等是 #3 的子项
- Open 是 File 的子项,File 是 menu 的子项
- 哎呀,以这种方式调用打开命令会打开一个新窗口,您必须遍历它。
- 即使你使用 SendMessage 调用控制键为了打开,您仍然必须找到并询问该窗口。
- 毕竟你必须为文件名的每个字母发送 WM_KEYPRESS 消息
- 然后,一旦您确定哪些子窗口是 Ok、Open 或 Save,就调用发送消息 WM_CLICK 来触发保存。
这是一个巨大而复杂的混乱局面,请用其他方法来实现。
答案2
编程语言中可能存在可以执行此操作的库。但是,你最好使用类似图像魔术师完成大部分工作。它专为批量图像处理而设计。它可以通过命令行或编程语言和脚本使用。
答案3
或者
由于您熟悉 VBA,您可以在 MS Office(PowerPoint、Excel、Word)中打开图片并使用 VBA 调整图片大小。