从下面的URL中,获得了这个Library.
Get paths of selected items in an explorer window

/*http://www.autohotkey.com/board/topic/60985-get-paths-of-selected-items-in-an-explorer-window/Library for getting info from a specific explorer window (if window handle not specified, the currently activewindow will be used).  Requires AHK_L or similar.  Works with the desktop.  Does not currently work with savedialogs and such.  Explorer_GetSelected(hwnd="")   - paths of target window's selected itemsExplorer_GetAll(hwnd="")        - paths of all items in the target window's folderExplorer_GetPath(hwnd="")       - path of target window's folderexample:F1::path := Explorer_GetPath()all := Explorer_GetAll()sel := Explorer_GetSelected()MsgBox % pathMsgBox % allMsgBox % selreturnJoshua A. Kinnison2011-04-27, 16:12
*/
Explorer_GetPath(hwnd="")
{if !(window := Explorer_GetWindow(hwnd))return ErrorLevel := "ERROR"if (window="desktop")return A_Desktoppath := window.LocationURLpath := RegExReplace(path, "ftp://.*@","ftp://")StringReplace, path, path, file:///StringReplace, path, path, /, \, All ; thanks to polyetheneLoopIf RegExMatch(path, "i)(?<=%)[\da-f]{1,2}", hex)StringReplace, path, path, `%%hex%, % Chr("0x" . hex), AllElse Breakreturn path
}Explorer_GetAll(hwnd="")
{return Explorer_Get(hwnd)
}Explorer_GetSelected(hwnd="")
{return Explorer_Get(hwnd,true)
}Explorer_GetWindow(hwnd="")
{; thanks to jethrow for some pointers hereWinGet, process, processName, % "ahk_id" hwnd := hwnd? hwnd:WinExist("A")WinGetClass class, ahk_id %hwnd%if (process!="explorer.exe")returnif (class ~= "(Cabinet|Explore)WClass"){for window in ComObjCreate("Shell.Application").Windowsif (window.hwnd==hwnd)return window}else if (class ~= "Progman|WorkerW") return "desktop" ; desktop found
}Explorer_Get(hwnd="",selection=false)
{if !(window := Explorer_GetWindow(hwnd))return ErrorLevel := "ERROR"if (window="desktop"){ControlGet, hwWindow, HWND,, SysListView321, ahk_class Progmanif !hwWindow ; #D modeControlGet, hwWindow, HWND,, SysListView321, AControlGet, files, List, % ( selection ? "Selected":"") "Col1",,ahk_id %hwWindow%base := SubStr(A_Desktop,0,1)=="\" ? SubStr(A_Desktop,1,-1) : A_DesktopLoop, Parse, files, `n, `r{path := base "\" A_LoopFieldIfExist %path% ; ignore special icons like Computer (at least for now)ret .= path "`n"}}else{if selectioncollection := window.document.SelectedItemselsecollection := window.document.Folder.Itemsfor item in collectionret .= item.path "`n"}return Trim(ret,"`n")
}

转载自:http://wjason.iteye.com/blog/1955712

转载于:https://www.cnblogs.com/easysky/p/7479548.html

从资源管理器中,获取被选择的文件的路径(及文件夹)的API相关推荐

  1. python资源管理器选择文件_Python:在资源管理器中获取选定文件的列表(windows7)...

    我知道现在在这里发布答案有点晚了,但我几个月前尝试过Olav的解决方案,但它没有完全起作用:工作目录是脚本的工作目录,所以我不得不删除if条件才能使其工作,但它选择了所有Windows资源管理器窗口中 ...

  2. “解决方案资源管理器”中不能自动选择正在编辑的文档

    本来正在编辑的文档应该在"解决方案资源管理器"中自动选中的,但是我的VS2005机器好像没有这个功能,后来发现 "工具->选贤"里边的"项目和解 ...

  3. vs的资源管理器中一次性添加整个文件夹

    如何在vs的资源管理器中一次性添加整个文件夹   如何一次添加整个文件夹到vs资源管理器中? 1.将你想要添加的文件夹复制到你想要添加的项目当中 2.打开你所在的项目,点击项目,在菜单中,项目-> ...

  4. 签入在服务器上之后,别人获取了,在解决方案资源管理器中找不到。

    签入在服务器上之后,别人获取了,在解决方案资源管理器中找不到. 这个问题具体原因我也不太清楚,但是我找到了一个解决方案.直接在解决方案上右键,添加,添加现有项.把在解决方案资源管理器上看不见的选中,添 ...

  5. 扩展Visual Studio 2010服务器资源管理器中的SharePoint结点

    Visual Studio 2010最大的卖点就是可扩展性.这样就可以借助.NET社区的力量基于VS构建出许多有用的工具.本文中我们将展示如何扩展VS2010的服务器资源管理器,在其中的SharePo ...

  6. Windows 10 删除资源管理器中7个文件夹

    Windows 10 安装完成之后 ,在资源管理器中会存在 7 个文件夹,他们分别是:图片.视频.下载.音乐.桌面.文档.3D对象. 我们可以通过修改注册表的方式,隐藏这7个文件夹.相关注册表内容如下 ...

  7. elementui如何在input 框中搜索_在 Windows 10 中的文件资源管理器中删除搜索历史记录...

    Windows 资源管理器带有搜索功能,用户可以通过该功能找到特定的文件或文件夹.默认情况下,您在搜索框中进行的所有搜索都会保存到其历史记录中.下次您在搜索框中输入内容时,它将在下拉对话框中显示最近输 ...

  8. 调整Win7资源管理器中导航栏和计算机的位置

    原文:http://blog.163.com/roc_sp/blog/static/39012041201141111280971/ 在默认情况下,Win7资源管理器中的计算机是排在库下面的,本文的目 ...

  9. 在Windows 7或Vista资源管理器中禁用缩略图预览

    If you want to speed up browsing around in explorer, you might think about disabling thumbnail previ ...

  10. [转]在资源管理器中使鼠标右键增加一个命令,运行cmd,同时使得当前路径为资源管理器当前的目录...

    [转]在资源管理器中使鼠标右键增加一个命令,运行cmd,同时使得当前路径为资源管理器当前的目录 http://www.cnblogs.com/skywind/archive/2009/05/22/14 ...

最新文章

  1. 居然又要出一部关于程序员的剧!你会追么?
  2. java 坐标系转换_入门-Python-GIS坐标转换
  3. java工程师的一生_百看不厌之一张图诠释程序员的一生
  4. C++语言基础 —— 控制结构
  5. Ubuntu 16.04安装录屏软件SimpleScreenRecorder
  6. css 根据宽度适应
  7. e5cc温控仪通讯参数设定_应用 | 如何实现S7300与S7200smart通讯?
  8. 全触摸模式,让你尽享ipad 开发出的精品
  9. 何凯明:Single Image Haze Removal Using Dark Channel Prior[CVPR 2009]
  10. 微信小程序实现定位功能
  11. Redis:哈希表HSET、HSETNX、HGET、HEXISTS、HMSET、HMGET、HKEYS、HVALS、HGETALL、HDEL命令介绍
  12. Edge安装插件错误(download interrupted)解决办法
  13. java web 甘特图_基于Web开发的甘特图控件,支持Java、.Net
  14. 数据分析--企业的贤内助 附下载地址
  15. 海豚湾,变态的日本银
  16. 五级自动驾驶分级_关于确保自动驾驶汽车安全的五件事
  17. MySQL删除行之后空间没有被释放
  18. java数据库验证用户名,java新手:注册时验证用户名是否在数据库里已存在
  19. english - word - 20110129
  20. 通俗易懂详解机器学习中的最大似然估计

热门文章

  1. BZOJ 1020 安全的航线flight
  2. Centos7安装 Redis 实践
  3. MySql 你知道事务隔离是怎么回事吗?
  4. Flutter 之 StatefulWidget和StatelessWidget
  5. JavaScript 中 Number
  6. 二级指针做输入_第2种内存模型
  7. Redis学习(6)-常用命令
  8. Atitit.vod 视频播放系统 影吧系统的架构图 架构体系 解决方案
  9. BZOJ3833 : [Poi2014]Solar lamps
  10. jQuery的内容选择器和属性