和VBA一起给登记处写信???
我正在尝试通过VBA编写注册表的路径。此代码在VBScript中运行良好,但我想将其合并到我的VBA模块中(如果可能的话)
如果有人知道如何使以下代码在VBA中运行,我将非常感激。
或者,如果这是编写注册表支持路径(通过VBA)的替代方法,我真的很想知道方法
谢谢
Mark
**** Hidden Message *****
当然,
使用Api调用……
这是我使用的类,乍一看有点复杂,编码和解码都不起作用
我有在注册表中编码隐私敏感数据和序列号的习惯。出于显而易见的原因,我不会在网上发布该部分。
是的,我可以理解Dn.
就像有些事情更好一样,有些东西最好不要发布
,我会看看你发布的文件。
希望它不是太复杂; 这些大坝过敏让我今天头晕目眩
谢谢你
马克
先生 我不是先生!
Jackasses比我进化一步...LOL
,我会欢呼任何“奇迹骆驼”我知道(内部笑话)。
如果你不能弄清楚,就问吧。如果你不想谷歌“VB注册表API”来查找其他例子。
我发布的课程是基于Keith或Kerry在Cadvault的一个例子......如果记忆不和我玩把戏。
嘿,可能还有更大的混蛋被英国女王封为爵士,他们被称为“先生”LOL。保罗·麦卡特尼“不是”其中之一;话说回来,我从未见过他,但他“是”一个音乐天才。
你说得很有道理,我本可以先谷歌一下,但除了得到我们自己的答案之外,发帖还有一件好事;那就是其他人也可以从这些知识中受益
我不确定我是否认识克里,但如果基思帮助开发了它,我完全相信它的功能。
那家伙真的很棒!
马克
哇
我刚刚看了一下;向注册表写入几个路径似乎是一件很麻烦的事情。
知道什么可能是更好的主意吗?我确信这是可以做到的,尽管我不能马上确定如何做到。
我知道在API中有大约3个路径我找不到,但它们当然在注册表中。
因此,我可以使用VBSCript(见上文)写入注册表,然后从VBA执行它,您认为如何?
现在,您知道如何通过VBA执行脚本(vbs)吗?谢谢你马克 嗨,Mark,
我在VBScript中尝试的线程中发布的代码**LINK**是我在VBA中使用的示例。只需确保转到工具>引用并添加对“Windows脚本主机对象模型”的引用
,然后就可以了:
Sub SheetSetTemplatePath_WORKING()
Dim WshShell As New WshShell
Dim curver, locale, cprofile
Dim vname'= Value Name
Dim vdata'= Value Data
'Set WshShell = WScript.CreateObject("WScript.Shell")
'Set WshNetwork = WScript.CreateObject("WScript.Network")
vname = "SheetSetTemplatePath"
'This reads the currently installed and last accesed version of AutoCAD
curver = WshShell.RegRead("HKCU\Software\Autodesk\AutoCAD\curver")
'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
locale = WshShell.RegRead("HKCU\Software\Autodesk\AutoCAD\" & curver & "\curver")
'This Key holds only the current profile
cprofile = WshShell.RegRead("HKCU\Software\Autodesk\AutoCAD\" & curver & "\" & locale & "\Profiles\")
'New Path Goes Here
vdata = "I:\Path\Template"
'Write The VName and VData (Support Path)
WshShell.RegWrite "HKCU\Software\Autodesk\AutoCAD\" & curver & "\" & locale & "\Profiles\" & _
cprofile & "\General\" & vname, vdata
'Return the results:
'MsgBox "The Path for " & vname & vbCrLf & vdata & vbCrLf & "has been written to" & vbCrLf & _
'"AutoCAD - " & curver & "," & vbCrLf & "Profile - " & cprofile
End Sub
就用这个类....
根据您的需要调整默认路径和键(我已将其用于Web注册)
BTW: Keith = Keith Brown
认真考虑一下Jeff Mischlers的建议(在我的列表中,他仅次于R. the wonder llama...顺便问一下,淹死的猫怎么样了?)
我发布的类是一个通用的东西。它速度很快,能够写入注册表中的任何章节。
如前所述,API看起来很难,但它们通常只是具有速度优势的函数。
我个人不会深入VB-script,因为我预见VB.NET/ASP.NET将是VBA和VB-script的后续。但是我因为犯错而出名。
杰夫,
我以前肯定没注意到。
废话!那太有道理了;这就是我错过它的原因
所以,只要我打开那个类型库,我应该没问题
你的代码做得很好,但是我发布的代码将获取ACAD的最后访问和安装版本以及当前配置文件。
因此,如果您尝试我发布的代码,您将不需要对下面的信息进行硬编码,它会自动获得。
R16.2\ACAD-4008:409\Profiles\Profile Name
我希望在不久的将来将它扩展到同时写入所有配置文件,而不仅仅是当前的一个,或者至少可以选择这样做。
非常感谢您!标记 不客气,马克。是的,我用了和你相似的东西。第一段代码只是为了展示如何使用它而拼凑起来的。我也测试了你的。它工作得如此之好,以至于我忘记保存我现有的路径,现在它读取你的代码放在那里,幸运的是你没有实现设置所有的配置文件一次
另一件事要注意:
因为我在一个旧的绘图(R2002)工作,这是我测试VBA代码。然而,我早些时候一直在使用C3D2008,并关闭了它。您的代码对C3D2008概要文件进行了更改,我想这是可以的,除非您想要更改当前打开/正在使用的概要文件。
页:
[1]
2