乐筑天下

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

VBScripting我去注册表的路

[复制链接]

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2007-5-22 17:16:00 | 显示全部楼层 |阅读模式
好的,我不熟悉VBScripting,并且(试图)写入注册表,所以请温和一点
我写了一些这样的代码:
  1.   Dim WshShell
  2. Dim KeyName, ValueName, ValueData As String
  3.         
  4. Set WshShell = WScript.CreateObject("WScript.Shell")
  5.    
  6.   KeyName = "HKEY_USERS\S-1-5-21-1749436377-938699083-1307212239-11542\Software\Autodesk\AutoCAD\R16.2\ACAD-4008:409\Profiles\Test\General"
  7.   ValueName = "SheetSetTemplatePath"
  8.   ValueData = "I:\Path\Test"        
  9.             
  10.    
  11.     WshShell.RegWrite KeyName & ValueName & ValueData"
  12.     WshShell = Nothing

我确信代码中有一些错误,因为它在我身上出错了。我有点惊讶,我不确定创建WScript时为什么会出错。外壳对象,但这就是它似乎所在的位置
如果有人能帮我指引正确的方向,我将不胜感激
另外,我想知道是否可以访问WScript。AutoCAD VBA中的Shell对象
谢谢你,马克
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2007-5-22 18:10:34 | 显示全部楼层
如果这有帮助的话,这在VBA中有效:
  1. Sub testme()
  2. Dim scrpt As New WshShell
  3. Dim DataVal As String
  4. Dim regKey As String
  5. regKey = "HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R17.1\ACAD-6000:409\Profiles\Civil3D\General\SheetSetTemplatePath"
  6. DataVal = scrpt.RegRead(regKey)
  7. scrpt.RegWrite regKey, DataVal & "\subFolder"
  8. Debug.Print scrpt.RegRead(regKey)
  9. scrpt.RegWrite regKey, DataVal ''return it to it's origianl state
  10. End Sub
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2007-5-23 10:06:47 | 显示全部楼层

杰夫'似乎不起作用,我得到了一个用户定义的类型没有定义
你确定VBA中有一个名为New WshShell的对象吗
标记
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2007-5-23 16:24:12 | 显示全部楼层
那么,您必须添加对WindowsScriptingHost的引用,然后它就会工作。很抱歉没有提及这一部分。。。。。
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2007-5-24 00:21:53 | 显示全部楼层

你是说我设置的参考应该是这样的:
设置scrpt=CreateObject(“New WshShell”)
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2007-5-24 06:15:20 | 显示全部楼层
不,在VBA中,您可以在VBA编辑器中添加对类型库的引用。这使代码知道如何构建特定的对象模型。我不知道VB脚本是否有相同的引用
但如果没有#039;不要寻找通过API调用编辑注册表的代码,这种方式你不'我不需要推荐人
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2007-5-24 08:16:04 | 显示全部楼层
此外,在你在你的注册表中翻找之前,一定要确保你对它进行了备份。你可以在那里快速安装电脑!!!!
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2007-5-24 09:23:24 | 显示全部楼层

是的,
我确实备份了注册表,我确实意识到它正在泥泞的水中行走
在某些情况下,VBA可以访问与VBSCript相同的一些对象
例如,我相信您可以通过VBA访问FileSystemObject,但我不&35;039;我不相信这一点,就像WSCript一样。Shell对象
据我看,没有'通过VBA写入注册表似乎是一种简单的方法
这有点让我生气:realmad:AutoDesk将允许通过VBA API设置大多数路径,但由于一些奇怪的原因,其他一些路径无法访问
那么,你如何通过编程设置路径而不直接进入注册表呢
任何人都知道一个;有限“;如何通过VBA实现这一点
谢谢Mark
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2007-5-24 10:19:30 | 显示全部楼层
标记-
尝试将下面的代码放入.vbs文件中:
  1. Dim WshShell
  2. Dim KeyName
  3. Dim ValueData
  4.         
  5. Set WshShell = WScript.CreateObject("WScript.Shell")
  6.    
  7.   KeyName = "HKEY_USERS\S-1-5-21-1749436377-938699083-1307212239-11542\Software\Autodesk\AutoCAD\R16.2\ACAD-4008:409\Profiles\Test\General\SheetSetTemplatePath"
  8.   
  9.    ValueData = "I:\Path\Test"        
  10.             
  11.    
  12.     WshShell.RegWrite KeyName, ValueData
  13.     Set WshShell = Nothing
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2007-5-24 15:15:31 | 显示全部楼层
嘿,戴夫,谢谢
以下代码有效!它将路径写入注册表
  1. Dim WshShell
  2. Dim KeyName
  3. Dim ValueData
  4.         
  5. Set WshShell = WScript.CreateObject("WScript.Shell")
  6.    
  7. KeyName = "HKEY_USERS\S-1-5-21-1749436377-938699083-1307212239-11542\Software\Autodesk\AutoCAD\R16.2\ACAD-4008:409\Profiles\Test\General\SheetSetTemplatePath"
  8.   
  9.    ValueData = "I:\Path\Test"        
  10.             
  11.    
  12.     WshShell.RegWrite KeyName, ValueData
  13.     Set WshShell = Nothing
在VBA中,它通过删除Wscript并简单地说:
  1. Dim WshShell
  2. Dim KeyName as String
  3. Dim ValueData as String
  4.         
  5. [b]Set WshShell = CreateObject("WScript.Shell")[/b]
  6. KeyName = "HKEY_USERS\S-1-5-21-1749436377-938699083-1307212239-11542\Software\Autodesk\AutoCAD\R16.2\ACAD-4008:409\Profiles\Test\General\SheetSetTemplatePath"
  7.   
  8. ValueData = "I:\Path\Test"        
  9.             
  10.    
  11. WshShell.RegWrite KeyName, ValueData
  12. Set WshShell = Nothing
然而,他们都没有更新我的ACAD配置文件中的路径,这是我需要的最终结果
知道为什么CAD中没有更新吗
谢谢Mark
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-7 18:10 , Processed in 0.985414 second(s), 73 queries .

© 2020-2025 乐筑天下

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