乐筑天下

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

和VBA一起给登记处写信???

[复制链接]

6

主题

94

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2007-6-12 18:29:50 | 显示全部楼层 |阅读模式
我正在尝试通过VBA编写注册表的路径。
此代码在VBScript中运行良好,但我想将其合并到我的VBA模块中(如果可能的话)
如果有人知道如何使以下代码在VBA中运行,我将非常感激。
或者,如果这是编写注册表支持路径(通过VBA)的替代方法,我真的很想知道方法
谢谢
Mark
[0]

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

6

主题

94

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2007-6-13 03:41:41 | 显示全部楼层

当然,
使用Api调用……
这是我使用的类,乍一看有点复杂,编码和解码都不起作用
我有在注册表中编码隐私敏感数据和序列号的习惯。出于显而易见的原因,我不会在网上发布该部分。
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2007-6-13 12:48:02 | 显示全部楼层

是的,我可以理解Dn.
就像有些事情更好一样,有些东西最好不要发布
,我会看看你发布的文件。
希望它不是太复杂; 这些大坝过敏让我今天头晕目眩
谢谢你
马克
先生
回复

使用道具 举报

6

主题

94

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2007-6-13 16:07:43 | 显示全部楼层
我不是先生!
Jackasses比我进化一步...LOL
,我会欢呼任何“奇迹骆驼”我知道(内部笑话)。
如果你不能弄清楚,就问吧。如果你不想谷歌“VB注册表API”来查找其他例子。
我发布的课程是基于Keith或Kerry在Cadvault的一个例子......如果记忆不和我玩把戏。
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2007-6-13 16:15:53 | 显示全部楼层

嘿,可能还有更大的混蛋被英国女王封为爵士,他们被称为“先生”LOL。保罗·麦卡特尼“不是”其中之一;话说回来,我从未见过他,但他“是”一个音乐天才。
你说得很有道理,我本可以先谷歌一下,但除了得到我们自己的答案之外,发帖还有一件好事;那就是其他人也可以从这些知识中受益
我不确定我是否认识克里,但如果基思帮助开发了它,我完全相信它的功能。
那家伙真的很棒!
马克
回复

使用道具 举报

12

主题

150

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
198
发表于 2007-6-13 16:22:41 | 显示全部楼层


我刚刚看了一下;向注册表写入几个路径似乎是一件很麻烦的事情。
知道什么可能是更好的主意吗?我确信这是可以做到的,尽管我不能马上确定如何做到。
我知道在API中有大约3个路径我找不到,但它们当然在注册表中。
因此,我可以使用VBSCript(见上文)写入注册表,然后从VBA执行它,您认为如何?
现在,您知道如何通过VBA执行脚本(vbs)吗?谢谢你马克
回复

使用道具 举报

12

主题

150

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
198
发表于 2007-6-13 16:42:47 | 显示全部楼层
嗨,Mark,
我在VBScript中尝试的线程中发布的代码**LINK**是我在VBA中使用的示例。只需确保转到工具>引用并添加对“Windows脚本主机对象模型”的引用
,然后就可以了:
  1. Sub SheetSetTemplatePath_WORKING()
  2. Dim WshShell As New WshShell
  3. Dim curver, locale, cprofile
  4. Dim vname  '= Value Name
  5. Dim vdata  '= Value Data
  6. 'Set WshShell = WScript.CreateObject("WScript.Shell")
  7. 'Set WshNetwork = WScript.CreateObject("WScript.Network")
  8. vname = "SheetSetTemplatePath"
  9. 'This reads the currently installed and last accesed version of AutoCAD
  10. curver = WshShell.RegRead("HKCU\Software\Autodesk\AutoCAD\curver")
  11. 'There is an additional value under that registry key, it is unique and must be grabbed from here, or else you won't know the location of the profile
  12. locale = WshShell.RegRead("HKCU\Software\Autodesk\AutoCAD" & curver & "\curver")
  13. 'This Key holds only the current profile
  14. cprofile = WshShell.RegRead("HKCU\Software\Autodesk\AutoCAD" & curver & "" & locale & "\Profiles")
  15. 'New Path Goes Here
  16. vdata = "I:\Path\Template"
  17. 'Write The VName and VData (Support Path)
  18. WshShell.RegWrite "HKCU\Software\Autodesk\AutoCAD" & curver & "" & locale & "\Profiles" & _
  19. cprofile & "\General" & vname, vdata
  20. 'Return the results:
  21. 'MsgBox "The Path for " & vname & vbCrLf & vdata & vbCrLf & "has been written to" & vbCrLf & _
  22. '"AutoCAD - " & curver & "," & vbCrLf & "Profile - " & cprofile
  23. End Sub

回复

使用道具 举报

6

主题

94

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2007-6-13 16:45:45 | 显示全部楼层
就用这个类....
根据您的需要调整默认路径和键(我已将其用于Web注册)
BTW: Keith = Keith Brown
认真考虑一下Jeff Mischlers的建议(在我的列表中,他仅次于R. the wonder llama...顺便问一下,淹死的猫怎么样了?)
我发布的类是一个通用的东西。它速度很快,能够写入注册表中的任何章节。
如前所述,API看起来很难,但它们通常只是具有速度优势的函数。
我个人不会深入VB-script,因为我预见VB.NET/ASP.NET将是VBA和VB-script的后续。但是我因为犯错而出名。
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2007-6-13 16:58:22 | 显示全部楼层
杰夫,
我以前肯定没注意到。
废话!那太有道理了;这就是我错过它的原因
所以,只要我打开那个类型库,我应该没问题
你的代码做得很好,但是我发布的代码将获取ACAD的最后访问和安装版本以及当前配置文件。
因此,如果您尝试我发布的代码,您将不需要对下面的信息进行硬编码,它会自动获得。
  1. R16.2\ACAD-4008:409\Profiles\Profile Name

我希望在不久的将来将它扩展到同时写入所有配置文件,而不仅仅是当前的一个,或者至少可以选择这样做。
非常感谢您!标记
回复

使用道具 举报

6

主题

94

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2007-6-13 17:33:31 | 显示全部楼层
不客气,马克。是的,我用了和你相似的东西。第一段代码只是为了展示如何使用它而拼凑起来的。我也测试了你的。它工作得如此之好,以至于我忘记保存我现有的路径,现在它读取你的代码放在那里,幸运的是你没有实现设置所有的配置文件一次
另一件事要注意:
因为我在一个旧的绘图(R2002)工作,这是我测试VBA代码。然而,我早些时候一直在使用C3D2008,并关闭了它。您的代码对C3D2008概要文件进行了更改,我想这是可以的,除非您想要更改当前打开/正在使用的概要文件。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-6 19:00 , Processed in 1.590040 second(s), 74 queries .

© 2020-2025 乐筑天下

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