[windows端的hook] 找不到类似mac端的给文件创建一个唯一URL的软件
- mac端可以通过 hook , devonthink等软件 给每个文件,文件夹 提供一个唯一的URL id, 通过 URL Schemer link ,唤起这个软件从而快速找到该文件
- 这个URL Schemer 在windows也是支持的, 但是就是找不到这样的软件提供这个功能…
(另外 极端情况下 要考虑 多个windows电脑通过 云盘同步文件后, 不同的绝对路径 (毕竟网盘的安装位置很难保证一致), 也能使用同一个 URL link唤起)
场景
用于插入这个文件的url 到 笔记软件, 代办软件, 项目管理软件里, 这样以后翻阅时直接一键就能跳转到文件所在位置
dawn
(Xiaolove0019)
3
我都是放dropbox里,然后用dropbox的链接
1 Like
可以使用 Zotero ,但没有mac上 hook、devonthink 好用
1 Like
mta
(mta)
5
Everything 提供了一个支持URL协议,需要设置里勾选开启。
URL格式是es:文件名
1 Like
file://C:/Windows/Media/ding.wav
1 Like
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 才行。
2 Likes
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,然后就是正常的判断,视频就进入视频处理的逻辑,文件就进入文件处理的逻辑
1 Like
ilcpm
14
其实类似的还可以给pdf增加这样的逻辑,比如pdf?file=xxx&page=xxx
然后看PDF的软件打开对应页面的参数是什么样的,自己配置一下就可以了
ilcpm
15
缺点也很明显,因为所有的文件都是通过路径写死的,一旦生成uri,那这个文件就不能移动位置和重命名什么的了,否则就失效……
没有办法用一个惟一的id对应这个文件并进行跟踪
lilyhcn1
(lilyhcn1)
16
原理和你一样,不过我用不同的软件写过。
ahk:必须安装软件,后期ahk的代码维护太蛋痛。
vbs:无需安装软件,定义协议即可。
vbs+python:必须安装python,好处是我后期维护方便,可以用python写代码来实现不同的功能。
1 Like
L11
(Ibulis1864)
17
windows和类unix系统不一样,不存在一个根目录,所以跨磁盘移动文件原来的uri一定会失效
建议的方法:所有被使用到的资源在同一磁盘固定目录下建立硬链接,为这个硬链接创建uri并使用。如果是跨区移动或引用,在各个分区下设置相应的目录并同步
ilcpm
18
其实跨盘移动都不是问题,手动改一下路径里的盘符就好了
真正的问题是后面整个路径都不能再变化,比如工作/XX项目/XX文件夹/xx文件
所有的这一串文件夹包括文件本身,不能再有一个路径变化,这才是最难的
可能写完了就变成了XX-日期
了
感觉这个方式可以结合下 everything 的 es urls 的功能
中间用 es 去检索对应的文件名,默认选取第一个结果作为路径,然后再进行下一步,这样应该无所谓目录了
我现在考虑 用 时间戳 + quicker + everything搜索, 实现快速查找