乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 444|回复: 10

确定程序ID

[复制链接]

71

主题

483

帖子

7

银币

中流砥柱

Rank: 25

铜币
765
发表于 2018-2-23 08:56:46 | 显示全部楼层 |阅读模式
是否可以通过了解库we#039;是否已从VBAIDE访问
I'我试图学习一些VBA代码,更精确地将它们翻译成lisp代码
问题是:案例1假设您在excel应用程序内访问VBAIDE,但如何发现他使用的应用程序的程序id是“1”;擅长应用程序
那么下次在其他应用程序中使用VBA时,你会知道吗
例如,使用Word中的VBA操作Excel,反之亦然
因为在一些代码I和039中;我试着理解,这家伙只是从:
[代码这让我很困惑,因为VBA代码缺少CreateObject函数,在LISP中是(vlax create object progid):
  1. CreateObject("progid")

I和#039;我猜他访问了Acrobat应用程序,我不知道;我不知道程序id,我依靠运气找到合适的对象,使用M.Puckett#039;s _FindProjIDs subfo.

回复

使用道具 举报

61

主题

792

帖子

35

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1015
发表于 2018-2-23 09:31:57 | 显示全部楼层

对象.程序IDhttps://msdn.microsoft.com/en-us/library/aa263181(v=vs.60)。aspx,但为了帮助您回答更大的问题:
您有几个选项来;访问(&lt);stuff&gt&QUOTE;。您可以使用;COM对象“;或;“自动化”;(注意:'Automation'是'COM&35;039;light。)您可能想了解一下'Automation&35e039
在快速的谷歌搜索之后,我发现了这个,它应该可以帮助你形象化你如何访问东西;在VBA中http://access.mvps.org/access/modules/mdl0006.htm
回复

使用道具 举报

61

主题

792

帖子

35

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1015
发表于 2018-2-23 10:25:35 | 显示全部楼层
经过进一步的搜索(决定在维基百科上为你找到一些东西)https://en.wikipedia.org/wiki/OLE_Automation还有,这里有一个链接,我已经为你收集信息的主题添加了书签https://support.microsoft.com/en-us/help/196776/office-automation-using-visual-c
回复

使用道具 举报

71

主题

483

帖子

7

银币

中流砥柱

Rank: 25

铜币
765
发表于 2018-2-23 12:10:51 | 显示全部楼层
谢谢你,约翰本人'我会花些时间阅读你第二篇文章中的链接
然而,出现了一个问题,关于你的第一篇文章。ProgID来自参考文献:;返回由VBControl对象表示的控件的ProgID(编程ID)&引用
执行了一项测试:子测试#40)
E-Tools-References-Acrobat,它将提供额外的答案,而不需要ghostscript或任何其他东西(如果已经安装了Acrobat)
那可能是你的FBI工作人员发的邮件 
回复

使用道具 举报

61

主题

792

帖子

35

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1015
发表于 2018-2-23 13:39:38 | 显示全部楼层
你'再次欢迎Grrr。有趣的链接(和网站)。如果我没有't空气中有100个不同的针脚I#039;我很想把它折叠起来(正如我的同事所说)。回复:FBI:
回复

使用道具 举报

71

主题

483

帖子

7

银币

中流砥柱

Rank: 25

铜币
765
发表于 2018-2-23 14:56:08 | 显示全部楼层

现在想知道;我的球拍里有一些工具;是其中之一&nbsp
顺便说一句,我似乎需要这两个:
  1. (setq AcroApp (vlax-get-or-create-object "AcroExch.App"))
  2. (setq PartDocs (vlax-get-or-create-object "AcroExch.PDDoc"))

I和#039;我对VBA代码的翻译非常接近(当然不是百分之百的翻译,因为我不理解他是如何将PartDocs视为一个集合的,而它不是一个集合)
回复

使用道具 举报

71

主题

483

帖子

7

银币

中流砥柱

Rank: 25

铜币
765
发表于 2018-2-23 15:04:09 | 显示全部楼层
提示僧侣。
回复

使用道具 举报

71

主题

483

帖子

7

银币

中流砥柱

Rank: 25

铜币
765
发表于 2018-2-23 15:29:55 | 显示全部楼层

链接代码中的PartDocs是一个数组,其中每个元素都是CAcroPDDoc对象
粗略浏览后,代码基本上接受要合并的以逗号分隔的PDF文件名字符串,将该字符串解析为一个数组,并将该数组的大小调整为与a相同的大小。然后,对于a中的每个文件名,如果文件存在,则将PDF文档对象添加到PartDocs数组
For循环中的If i部分测试i是否大于零(因为VBA中的0=false),如果是,则将索引处的PDF文档与索引处的PDF文档合并
回复

使用道具 举报

71

主题

483

帖子

7

银币

中流砥柱

Rank: 25

铜币
765
发表于 2018-2-24 17:13:28 | 显示全部楼层

应'我把它定义为偏头痛:
  1. ;|
  2. (Merge ; Creates a file, but it contains only the first PDF file (I was testing on single-paged PDFs)
  3.   (strcat (getenv "userprofile") "\\Desktop\\Hale 515\\PDFs") ; in
  4.   (strcat (getenv "userprofile") "\\Desktop\" "MergedPDFS.pdf") ; out
  5. )
  6. |;
  7. ; in - folder that contains .pdf files
  8. ; out - path\\filename.pdf
  9. (defun Merge ( in out / *error* L n PartDocs ni n r )
  10.   
  11.   (defun *error* ( m )
  12.     (and PartDocs (vl-catch-all-apply 'vlax-invoke-method (list PartDocs 'Close)))
  13.     (and AcroApp (vl-catch-all-apply 'vlax-invoke-method (list AcroApp 'CloseAllDocs)))
  14.     (and AcroApp (vl-catch-all-apply 'vlax-invoke-method (list AcroApp 'Exit)))
  15.     (foreach x (list AcroApp AcroPDDoc) (and (eq 'VLA-OBJECT (type x)) (vl-catch-all-apply 'vlax-release-object (list x))))
  16.     (gc) (gc) (and m (princ m)) (princ)
  17.   ); defun *error*
  18.   
  19.   (setq AcroApp (vlax-get-or-create-object "AcroExch.App"))
  20.   (setq L ((lambda (pat) (mapcar '(lambda (x) (strcat pat "\" x)) (vl-directory-files pat "*.pdf" 1))) in))
  21.   
  22.   ; Not Sure how to adjust 'n'
  23.   (setq n (length L))
  24.   ; (setq n 0)
  25.   
  26.   (foreach x L ; The issue is within this loop
  27.     (setq PartDocs (vlax-get-or-create-object "AcroExch.PDDoc"))
  28.    
  29.     (eq :vlax-true (vlax-invoke-method PartDocs 'Open x))
  30.     (setq ni (vlax-invoke-method PartDocs 'GetNumPages))
  31.     ; Function InsertPages(nInsertPageAfter As Long, iPDDocSource As Object, lStartPage As Long, lNumPages As Long, lInsertFlags As Long) As Boolean
  32.     (if (eq :vlax-true (vlax-invoke-method PartDocs 'InsertPages (1- n) PartDocs 0 ni :vlax-true)) ;
  33.       (progn
  34.         (setq n (+ n ni))
  35.         
  36.       ); progn
  37.       (progn
  38.         (setq n (+ 1 (vlax-invoke-method PartDocs 'GetNumPages)))
  39.         
  40.       ); progn
  41.     ); if
  42.     ; (vlax-invoke-method PartDocs 'Close)
  43.     ; (vlax-release-object PartDocs)
  44.   ); foreach
  45.   (setq r
  46.     (eq :vlax-true
  47.       (vlax-invoke-method PartDocs 'Save
  48.         1 ; PDSaveFull
  49.         out
  50.       ); vlax-invoke-method
  51.     ); eq
  52.   ); setq r
  53.   (*error* nil) r
  54. ); defun Merge
顺便说一句,谢谢李的意见,但我'我明天读。因为这就像喝伏特加。
回复

使用道具 举报

61

主题

792

帖子

35

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1015
发表于 2018-2-26 17:18:00 | 显示全部楼层

http://youtu.be/5qHNQxZGZKU
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-13 06:48 , Processed in 1.020539 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表