[windows端的hook] 找不到类似mac端的给文件创建一个唯一URL的软件
- mac端可以通过 hook , devonthink等软件 给每个文件,文件夹 提供一个唯一的URL id, 通过 URL Schemer link ,唤起这个软件从而快速找到该文件
- 这个URL Schemer 在windows也是支持的, 但是就是找不到这样的软件提供这个功能…
(另外 极端情况下 要考虑 多个windows电脑通过 云盘同步文件后, 不同的绝对路径 (毕竟网盘的安装位置很难保证一致), 也能使用同一个 URL link唤起)
场景
用于插入这个文件的url 到 笔记软件, 代办软件, 项目管理软件里, 这样以后翻阅时直接一键就能跳转到文件所在位置
dawn
(Xiaolove0019)
3
我都是放dropbox里,然后用dropbox的链接
可以使用 Zotero ,但没有mac上 hook、devonthink 好用
mta
(mta)
5
Everything 提供了一个支持URL协议,需要设置里勾选开启。
URL格式是es:文件名
file://C:/Windows/Media/ding.wav
windows 还是找不到一个这样的app。。。
哎, 希望有大佬开发一下, 为了越来越难整理的文件系统
问题在于改名或者移动位置, 换个电脑
或者 百度网盘的同步盘改了路径, 这个就不可用了
明确的说没有,记得之前用hook的时候,好像看到官方说这用到了苹果的独有特性,甚至是与苹果上广泛存在的自动化相挂钩。
一些不支持果子自带自动化的软件,比如 magin note ,其实也搞不到它的双链——尽管这些软件管理的文件也有其双链。
放到 win 上,首先是那个苹果的一些特性,按你说的 URL Schemer Link 在 win 上也有,那么是有可能的(我映象里是没听说过)。
但自动化又会卡死:win 上很多软件开发不规范,你用过 Power Automate 就知道了,很多软件都拿不到软件 UI 部件的那个码的,你去选只有一个大框,这就没法脚本化,Power Automate 的解决方案是 OCR 并点击……
这种粗糙的解决方案只是自动化工具用用还行,像双链这种后台应用肯定是不行的,更别说 Win 随着缩放、分辨率,OCR 也没那么靠谱。
果子还能用开发工具救救场,win 就真的只能摆了。
所以就算能搞,最多也就文件管理器中引一条链接,指向这个文件,不可能像 Hook 配合 Skim 那样,还能给你精确到某个 PDF 的某页的。——前提是 win 上也有这种文件更改、移动、重命名、上传云端再下载后还能定义到这个文件的独有 API 才行。
ilcpm
13
我自己用quicker造了一个很简单的轮子,但是功能很简单,只能自己用的样子,分享出来其他人根本不会用的那种,大概步骤是这样:
对于你说的多台电脑的问题,我也考虑到了,可以通过环境变量来控制,比如我给学习视频的文件夹建了一个%学习%的环境变量,生成URI的时候匹配一下路径,把文件路径写成%学习%/微分方程/01-XXX.mp4这样的方式
或者也可以在quicker的动作里定义一个列表来管理
我也想过分享出来,但是自己水平有限,用的也少,没有办法开发的很完善,上面环境变量的处理那个部分写的很烂,对学习视频的处理是直接写死的,根本没做匹配啥的
其实有能力的话完全可以自己开发一个程序,允许用户通过powershell命令来处理uri里面的参数逻辑就好了,然后用户想调用什么程序都可以
没有录制gif的软件,我截图展示一下吧
这是选中文件之后运行A动作得到的文件的uri,生成的是Markdown超链接格式,ilcpm后面的file表示这是个文件,按文件处理,?后的file参数是文件路径,经过了urlencode编码
[C:\Users\Ruossipha\Desktop\微分方程数值解.pptx](ilcpm:file?file=C%3A%5CUsers%5CRuossipha%5CDesktop%5C%E5%BE%AE%E5%88%86%E6%96%B9%E7%A8%8B%E6%95%B0%E5%80%BC%E8%A7%A3.pptx)
这是在potplayer里运行B动作的结果,ilcpm后面的video表示这是个视频,走视频处理的逻辑,调用potplayer打开file参数的视频跳转到time参数对应的时间,后面的路径为了可读性在这里我手动转换了一下,至于为什么罗马假日在%学习%\复变函数\这个奇怪的路径对吧,这是动作里写死的,每次要我手动配置……
[Roman.Holiday.1953.UHD.Blu-ray.2160p.10bit.HDR.2Audio.TrueHD.2.0.x265-beAst.mkv 00:35:16](ilcpm:video?file=%学习%\复变函数\Roman.Holiday.1953.UHD.Blu-ray.2160p.10bit.HDR.2Audio.TrueHD.2.0.x265-beAst.mkv&time=00:35:16)
这是点击uri之后处理uri的动作,先判断协议名称(与上面原理介绍的部分有些出入)是不是ilcpm,就是说只处理我自己定义的uri,然后就是正常的判断,视频就进入视频处理的逻辑,文件就进入文件处理的逻辑
ilcpm
14
其实类似的还可以给pdf增加这样的逻辑,比如pdf?file=xxx&page=xxx
然后看PDF的软件打开对应页面的参数是什么样的,自己配置一下就可以了
ilcpm
15
缺点也很明显,因为所有的文件都是通过路径写死的,一旦生成uri,那这个文件就不能移动位置和重命名什么的了,否则就失效……
没有办法用一个惟一的id对应这个文件并进行跟踪
lilyhcn1
(lilyhcn1)
16
原理和你一样,不过我用不同的软件写过。
ahk:必须安装软件,后期ahk的代码维护太蛋痛。
vbs:无需安装软件,定义协议即可。
vbs+python:必须安装python,好处是我后期维护方便,可以用python写代码来实现不同的功能。
L11
(漢故征西將軍曺侯)
17
windows和类unix系统不一样,不存在一个根目录,所以跨磁盘移动文件原来的uri一定会失效
建议的方法:所有被使用到的资源在同一磁盘固定目录下建立硬链接,为这个硬链接创建uri并使用。如果是跨区移动或引用,在各个分区下设置相应的目录并同步
ilcpm
18
其实跨盘移动都不是问题,手动改一下路径里的盘符就好了
真正的问题是后面整个路径都不能再变化,比如工作/XX项目/XX文件夹/xx文件
所有的这一串文件夹包括文件本身,不能再有一个路径变化,这才是最难的
可能写完了就变成了XX-日期了
感觉这个方式可以结合下 everything 的 es urls 的功能
中间用 es 去检索对应的文件名,默认选取第一个结果作为路径,然后再进行下一步,这样应该无所谓目录了
我现在考虑 用 时间戳 + quicker + everything搜索, 实现快速查找