如何返回已选中的文件的文件名?(含完整路径)
查看了AU3的帮助文档,没能找到相关的帮助,只能来这里求救了。设想是这样的:
鼠标点击文件,单击而非打开文件,然后结合使用键盘的快捷键,调用相应的程序打开文件。
例如:鼠标点选文件 test (无文件后缀名),然后按字母O键调用系统中的WORK。EXE打开这个文件。
应使用哪个函数,如何写呢?
[ 本帖最后由 linmi 于 2009-1-13 09:47 编辑 ] 不知LZ的意思到底是如何?
如果这个WORK.EXE是相对固定的要这样运行,可以在注册表中设置下 是这样的,因为被用WORD. exe打开的文件不单是没有后缀名的文件,还包括其他后缀名的文件,如TXT,DAT,等,如修改注册表的话则会相应的修改了文件原来的打开方式,且要修改的数量比较多。
我要的只是看文件的内容(纯文本格式)而已。
当一个文件获得焦点的时,使用一个命令,使其能返回一个路径值,然后用RUN命令调用WORD来打开。原理就是这样的。
目前就是找不一个方法能返回一个已获得焦点的文件的路径值。
Run ( "文件名" [, "工作目录" [, 显示标志[, 可选标志]]] )
[ 本帖最后由 linmi 于 2009-1-2 20:56 编辑 ] 不知这样做有什么作用? 是这样的,因为被用WORD. exe打开的文件不单是没有后缀名的文件,还包括其他后缀名的文件,如TXT,DAT,等,如修改注册表的话则会相应的修改了文件原来的打开方式,且要修改的数量比较多。
我要的只是看文件的内容(纯文本格式)而已。
当一个文件获得焦点的时,使用一个命令,使其能返回一个路径值,然后用RUN命令调用WORD来打开。原理就是这样的。
目前就是找不一个方法能返回一个已获得焦点的文件的路径值。
Run ( "文件名" [, "工作目录" [, 显示标志[, 可选标志]]] )
那用修改好多!!只要在注册表那的*项增加一个命令项就行了,知道兔子和优化大师等那些增加‘用记事本打开’吗? 楼主这样做好像没什么实际义意 至于有什么意义,这先暂且放至一边,就是不知道AUTOIT可否实现这样的功能。
谢谢! 可以实现,代码如下:
$File_Name = FileOpenDialog("请选择软件", @ProgramFilesDir & "\", "程序(*.exe)|所有文件(*.*)")
msgbox(0,"软件名称: ",$File_Name) 谢谢楼上的。
其实我就是不想通过选择文件对话框的形式的。
其实,我的意图有点类似在WINDOWS系统中,鼠标点击一个文件后,可以使用的SHIFT+DEL键就能删除该文件。
我就是想知道他是怎么返回此个文件的路径的。
不知道AUTOIT有没有这样的函数可以实现这样的功能而已。 明白楼主的意思 只是我不知道怎么解决 呵呵
楼主就是 要选中一个文件以后 用不同的快捷键调用不同的程序来打开当前选择的文件
卡在了 如何取得 当前选中的文件的 完整路径上
我用到的方面 一般都是取 资源管理器的 Edit1 来取当前选择的路径文件名没有取过 原帖由 sxd 于 2009-1-8 00:19 发表 http://autoitx.com/images/common/back.gif
楼主就是 要选中一个文件以后 用不同的快捷键调用不同的程序来打开当前选择的文件
卡在了 如何取得 当前选中的文件的 完整路径上
谢谢楼上的,你说的很正确。 设置一个hotkeyo
在热键函数里,查找当前窗口的lisview32的选中项目,通过判断选中项目的属性,可以得到目录名或文件名
这样应该能达到你的目的了。
我现在这没装AUTOIT,也没足够时间帮你写例程了。
udf 里有控制listview32的相关函数 谢谢楼上的各位。
自己看了半天的帮助文档,还是弄不出个所以然。
能否给个例子讲解一下啊。
谢谢各位了。
回复 9# linmi 的帖子
汗,MS自己的东西做起来当然容易。你把Windows的源代码给我我也可以做出来。。。 唉 我太笨了在udf里转了一大圈 终于写出来了发现......原来不用这么麻烦 唉PS:先设置成地址栏显示完整路径
HotKeySet("o", "GetFocusedFullPath")
Func GetFocusedFullPath()
$ListViewHWnd = ControlGetHandle("", "", "SysListView321")
$ItemSelectedId = ControlListView("", "", $ListViewHWnd, "GetSelected")
$ItemText = ControlListView("", "", $ListViewHWnd, "GetText", $ItemSelectedId)
$Path = ControlGetText("", "", "Edit1")
MsgBox(0, "", $Path & $ItemText)
EndFunc ;==>GetFocusedFullPath
While 1
Sleep(1000)
WEnd
页:
[1]
2