乐筑天下

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

通过快捷方式查找文件的绝对路径。

[复制链接]

10

主题

34

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
74
发表于 2008-9-22 07:56:38 | 显示全部楼层 |阅读模式
在AutoCAD绘图仪管理器中,可以将快捷方式拖放到包含附加pc3、CTB等的网络驱动器上的文件夹中。然后,AutoCAD会忽略文件不是直接位于绘图仪管理器文件夹中的事实,并像处理文件一样处理它们。我有一个小工具,我已经成功地用于提取与pc3等相关的信息,但它一直在我的独立设置中使用,我的文件直接在文件夹中,而不是通过一个快捷方式,这一切都很好地工作,因为我需要一个pc3文件的绝对路径,我的工具才能工作。现在,如果我通过我的对话框(使用GetPlotDeviceNames填充的列表)选择一个pc3,那么它会给我实际的pc3名称,而不是绝对路径,因为它会被假定为直接在绘图仪文件夹中。这意味着如果不重新映射支持文件夹,我就不能将任何文件放入网络文件夹。我知道很多办公室更喜欢在绘图仪管理器中添加快捷方式,而不是在其他地方重新映射支持目录,所以如果可能的话,我不想重新映射任何东西。相反,我想知道是否有任何方法可以通过快捷方式获得pc3或ctb文件的绝对路径?
有人能提供解决方案或在正确的方向上推一把吗?

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

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

使用道具 举报

10

主题

34

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
74
发表于 2008-9-22 10:42:29 | 显示全部楼层
我使用了指向本地计算机上的网络驱动器的快捷方式。
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2008-9-22 10:49:23 | 显示全部楼层
不知道您在这里告诉我什么
我想我现在可能已经成功地破解了它,方法是从。绘图仪文件夹中的lnk。这些数据足以让我知道网络pc3的绝对路径。
回复

使用道具 举报

10

主题

34

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
74
发表于 2008-9-22 10:56:55 | 显示全部楼层
精神食粮(如果我的思路正确的话)...
  1. Sub Test(path As String)
  2.     Dim shellObj  As Shell32.Shell, _
  3.         folderObj As Shell32.Folder, _
  4.         itemObj   As Shell32.FolderItem, _
  5.         linkObj   As Shell32.ShellLinkObject
  6.    
  7.     Set shellObj = New Shell32.Shell
  8.     Set folderObj = shellObj.NameSpace(path)
  9.    
  10.     For Each itemObj In folderObj.Items
  11.         If itemObj.IsFolder Then
  12.             Call Test(itemObj.path)
  13.         ElseIf itemObj.IsLink Then
  14.             Set linkObj = itemObj.GetLink
  15.             Debug.Print itemObj.path & vbCrLf
  16.             With linkObj
  17.                 Debug.Print _
  18.                     vbTab & "Arguments        =" & .Arguments & vbCrLf & _
  19.                     vbTab & "Description      =" & .Description & vbCrLf & _
  20.                     vbTab & "Hotkey           =" & .Hotkey & vbCrLf & _
  21.                     vbTab & "Path             =" & .path & vbCrLf & _
  22.                     vbTab & "ShowCommand      =" & .ShowCommand & vbCrLf & _
  23.                     vbTab & "WorkingDirectory =" & .WorkingDirectory & vbCrLf
  24.             End With
  25.         End If
  26.         
  27.     Next
  28. End Sub
  29. Sub Main( )
  30.     Call Test("C:\Program Files\AutoCAD 2008")
  31. End Sub

可能会打印出来-
  1. C:\Program Files\AutoCAD 2008\Data Links\Where are my Data Files.lnk
  2.     Arguments        =C:\Program Files\AutoCAD 2008\Help\acad171.chm::/move_datalinks.htm
  3.     Description      =Where are my Data Files
  4.     Hotkey           =0
  5.     Path             =C:\WINDOWS\hh.exe
  6.     ShowCommand      =1
  7.     WorkingDirectory =C:\Program Files\AutoCAD 2008\Help\
  8. C:\Program Files\AutoCAD 2008\Drv\Where are my PMP files.lnk
  9.     Arguments        =C:\Program Files\AutoCAD 2008\Help\acad171.chm::/move_pmp.htm
  10.     Description      =Where are my PMP Files
  11.     Hotkey           =0
  12.     Path             =C:\WINDOWS\hh.exe
  13.     ShowCommand      =1
  14.     WorkingDirectory =C:\Program Files\AutoCAD 2008\Help\
  15. C:\Program Files\AutoCAD 2008\Plot Styles\Where are my Plot Styles.lnk
  16.     Arguments        =C:\Program Files\AutoCAD 2008\Help\acad171.chm::/move_plotstyles.htm
  17.     Description      =Where are my Plot Styles
  18.     Hotkey           =0
  19.     Path             =C:\WINDOWS\hh.exe
  20.     ShowCommand      =1
  21.     WorkingDirectory =C:\Program Files\AutoCAD 2008\Help\
  22. C:\Program Files\AutoCAD 2008\Plotters\Where are my Plot Configurations.lnk
  23.     Arguments        =C:\Program Files\AutoCAD 2008\Help\acad171.chm::/move_plotters.htm
  24.     Description      =Where are my Plot Configurations
  25.     Hotkey           =0
  26.     Path             =C:\WINDOWS\hh.exe
  27.     ShowCommand      =1
  28.     WorkingDirectory =C:\Program Files\AutoCAD 2008\Help\
  29. C:\Program Files\AutoCAD 2008\Support\Where are my Support Files.lnk
  30.     Arguments        =C:\Program Files\AutoCAD 2008\Help\acad171.chm::/move_support.htm
  31.     Description      =Where are my Support Files
  32.     Hotkey           =0
  33.     Path             =C:\WINDOWS\hh.exe
  34.     ShowCommand      =1
  35.     WorkingDirectory =C:\Program Files\AutoCAD 2008\Help\
  36. C:\Program Files\AutoCAD 2008\Template\Where are my Template Files.lnk
  37.     Arguments        =C:\Program Files\AutoCAD 2008\Help\acad171.chm::/move_template.htm
  38.     Description      =Where are my Template Files
  39.     Hotkey           =0
  40.     Path             =C:\WINDOWS\hh.exe
  41.     ShowCommand      =1
  42.     WorkingDirectory =C:\Program Files\AutoCAD 2008\Help\
  43. C:\Program Files\AutoCAD 2008\Textures\Where are my Textures Files.lnk
  44.     Arguments        =C:\Program Files\AutoCAD 2008\Help\acad171.chm::/move_textures.htm
  45.     Description      =Where are my Textures Files
  46.     Hotkey           =0
  47.     Path             =C:\WINDOWS\hh.exe
  48.     ShowCommand      =1
  49.     WorkingDirectory =C:\Program Files\AutoCAD 2008\Help\

回复

使用道具 举报

10

主题

34

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
74
发表于 2008-9-22 10:57:13 | 显示全部楼层
Sub GetPrintfile()
将首选项标注为acad Preferences
Set Preferences = this drawing。Application . Preferences
Dim sprint file As String

sprint file = Preferences . files . print file

'如果字符串是一个点,您需要计算出完整路径
' sprint file = " C:\ Documents and Settings \ yadayada \ Application Data \ Autodesk \ AutoCAD Mechanical 2008 \ r 17.1 \ enu \ ploters "
Dim Fs,folder,file
' http://www . tutorialized . com/view/tutorial/Extract-the-target-targetlnk/18349
Dim wsh shell As Object,oShellLink As Object
Dim Shortcut As String,star get As String
Set wsh shell = CreateObject(" WScript。shell ")
Set Fs = CreateObject(" Scripting。FileSystemObject")
设置folder = Fs。get folder(sprint file)
For folder . files
If file。Type = "Shortcut "然后
Shortcut = file。Path
Set oShellLink = wshShell。CreateShortcut(快捷方式)。目标路径调试。如果下一个结束Sub,则打印sTarget结束
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2008-9-22 11:20:17 | 显示全部楼层

我已经拼凑了一个解决方案,但Bryco的GetPrintFile是一个更整洁的解决方案,可以让我获得相同的信息,所以谢谢你。
回复

使用道具 举报

10

主题

34

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
74
发表于 2008-9-22 12:43:49 | 显示全部楼层
我想在回答之前我应该先喝杯咖啡。我误解了你想要的。Bryco和MP肯定会让你去
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-4 01:22 , Processed in 1.165240 second(s), 66 queries .

© 2020-2025 乐筑天下

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