1

我有一个 shell 脚本,它接受一个文本参数并从中返回一个图像。我想将此作为按钮添加到文字功能区栏,并将所选文本替换为脚本生成的图像(基本上是复制粘贴)。最好的方法是什么?

  1. 创建 c# word 插件并手动将其添加到插件功能区
  2. 创建 vba 插件并创建 word.ribbonui xml
  3. 创建宏和...
  4. 使用 windows com 作为传递消息并创建客户端-服务器系统
  5. 使用activeX
  6. 别的东西
  7. 以上的一些不同组合

此外,如果您有一些教程或伪代码如何在实践中进行操作,那将会很有帮助。我不是在寻找一个完整的答案,只是一些我应该从哪里开始的提示。

脚本是 python,word 是 2010。额外的好处是,如果可以打包分发(一些 GPL 风格的许可证)。

编辑:

我学到的一些东西...

  • ActiveX 属于 COM(组件对象模型)组
  • 你需要visual studio 2010 pro 才能拥有c#/vba office 开发工具
  • 存在使用 win32com 的“excelAddin.py”谷歌,经过一些调整后可以工作
  • 存在 win32con.WM_GETTEXT 和 WM_GETSEL 消息:请参阅如何从活动窗口中检索选定的文本

下一步:把所有东西放在一起,写下答案……

相关资料:

4

1 回答 1

1

这是大纲:

  1. 创建 com 服务
  2. 注册com-service(仅限第一次)
  3. 手动将 com-service 添加到功能区栏

第 1 步 - 创建 com 服务:

class myService:
   def mandatoryInitFunction1(self,arg1,arg2,arg3): 

   def mandatoryKillFunction1(self,arg1,arg2,arg3): 

   def mandatoryXFunction1(self,arg1,arg2,arg3): 

   def mandatoryCallbackFunction(self,arg1,arg2,arg3):     
       selection = wincom.WM_GETTEXT(argX)
       popen(selection, shell=True)

第 2 步 - 注册服务:

  • 见 excelAddin.py

第 3 步 - 添加到功能区栏:

  • word -> 选项/首选项 -> 功能区 -> com-objects -> myService
于 2012-08-27T08:10:11.793 回答