问个简单的问题。如何获得选中的文件或文件夹的路径?100分送上!

biku 2008-09-17 08:21:32
问题:当我鼠标点击(选择)桌面或资源管理器(注意不是自己编的程序中)中的任意文件或文件夹的时候,如何得到我选中的这文件(文件夹)的路径?
比如:桌面有个QQ的快捷方式,我鼠标选中它,这时我如何能知道它的路径("C:\Program Files\Tencent\QQ")呢?

高手们最好用DELPHI或VB来回答我。呵呵因为DELPHI板块人气不够啊。所以跑这边来了。
...全文
215 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
bob008 2008-09-20
  • 打赏
  • 举报
回复
果然是什么希奇古怪的要求都有啊...
alan001 2008-09-20
  • 打赏
  • 举报
回复
UP

学习之
biku 2008-09-19
  • 打赏
  • 举报
回复
Option Explicit

Private Sub Form_Load()
If Len(Command$) <> 0 Then
MsgBox Command '此处返回的就是你的文件或文件夹的名字
'End
End If
End Sub



好像翻译成DELPHI不是这么容易吧?
biku 2008-09-19
  • 打赏
  • 举报
回复

to: chenjl1031
我说过了。我XP系统里面。鼠标指向文件(文件夹)的提示文本(黄色方框内的文本)是简单的文字说明或文件属性简单说明,并没有出现什么路径啊??

另外我想,fvflove 应该已经解决了我的问题了。



to:fvflove

太谢谢你的代码了。翻译成DELPHI中!!!
zzyong00 2008-09-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 jameshooo 的回复:]
就是Shell扩展嘛,实现IContextMenu和IShellExtInit接口,在注册表里面加上关联菜单扩展的信息即可。
[/Quote]

你找找这本书:vbshellhook
Forrest23 2008-09-19
  • 打赏
  • 举报
回复
帮顶
fvflove 2008-09-19
  • 打赏
  • 举报
回复
1. 打开注册表

2.找到 HKEY_CLASSES_ROOT\*

3.在下面建立项目

shell\复制该文件路径\command

4.在此项目下的默认值改为:

C:\工程.exe %1 '改为你的程序全名+ 参数 %1

'''****************以上是文件的.

1. 打开注册表

2.找到 HKEY_CLASSES_ROOT\AllFilesystemObjects

3.在下面建立项目

shell\复制该文件夹路径\command

4.在此项目下的默认值改为:

C:\工程.exe %1 '改为你的程序全名+ 参数 %1

'''****************以上是文件夹的.

'当然以上是操作注册表的,你可以手动更改,也可以用VB更改

'''''''''''''''''''''''''''''

'******************以下是你的程序中的代码

Option Explicit

Private Sub Form_Load()
If Len(Command$) <> 0 Then
MsgBox Command '此处返回的就是你的文件或文件夹的名字
'End
End If
End Sub

东方之珠 2008-09-19
  • 打赏
  • 举报
回复
VB鼠标取词,参见这里:
http://topic.csdn.net/u/20080306/09/3f76afd3-8a7b-4957-92c8-b0aab026d335.html?969511685
东方之珠 2008-09-19
  • 打赏
  • 举报
回复
可以用鼠标抓取提示文本(黄色方框内的文本),恰好路径也在里面,这叫鼠标取词
jia_xiaoxin 2008-09-19
  • 打赏
  • 举报
回复
感觉还得用shell扩展编程
biku 2008-09-18
  • 打赏
  • 举报
回复
9楼的答案很强大!可能是要特别定制的系统才有。我这WINXP实现不了。

10楼的,我的鼠标停在快捷方式是有个TIPS,但不是显示该快捷方式的路径,而是一个简单的说明。


8楼的提供的思路我再百度百度,有问题再继续问。


另外,希望能有哪位高手,能给我更好的答案。谢谢
FireBirdCN 2008-09-18
  • 打赏
  • 举报
回复
鼠标停在快捷方式上 会由一个TIPS 显示该快捷方式的路径
想想怎么获得这个 路径啊~~^_^
fengtie886 2008-09-18
  • 打赏
  • 举报
回复
你好
请你 按住CTRI+v 就可以了
jameshooo 2008-09-17
  • 打赏
  • 举报
回复
就是Shell扩展嘛,实现IContextMenu和IShellExtInit接口,在注册表里面加上关联菜单扩展的信息即可。
biku 2008-09-17
  • 打赏
  • 举报
回复
我想给系统的右键菜单上多加一个“复制该文件(夹)路径”的功能。
jameshooo 2008-09-17
  • 打赏
  • 举报
回复
资源管理器里也是ListCtrl。不过我劝你不要做这种事,感觉做起来没有什么意义,不知道你到底想干什么。
biku 2008-09-17
  • 打赏
  • 举报
回复
to:jameshooo

有没有实现的具体代码或相关代码?资源管理器中也和你说的“桌面”一样吗?
rollrock1987 2008-09-17
  • 打赏
  • 举报
回复
学习
jameshooo 2008-09-17
  • 打赏
  • 举报
回复
记住桌面窗口实际上是一个ListCtrl,只要找到这个窗口,剩下的事情就是向它发消息获取该项目的显示名称。桌面上的每个图标代表一个快捷方式的文件(或者是真文件),文件可以在桌面文件夹(用SHGetSpecialFolderPath获取桌面文件夹路径)中扫描到,匹配到对应显示名称的文件,如果这个文件是快捷方式,你需要用IShellLink来读取原始文件的路径。
biku 2008-09-17
  • 打赏
  • 举报
回复
需要SHELL吗?有没有什么现成的API函数可以用?
加载更多回复(1)

1,485

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧