V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
xupefei
V2EX  ›  分享创造

QuickLook: Windows 上的空格预览

  •  9
     
  •   xupefei ·
    xupefei · 2017-05-02 05:22:27 +08:00 · 21281 次点击
    这是一个创建于 2765 天前的主题,其中的信息可能已经有所发展或是发生改变。

    preview

    GitHub 链接: https://github.com/xupefei/QuickLook

    GitHub Release: https://github.com/xupefei/QuickLook/releases


    OS X 有个挺好的功能就是空格预览文件而无需打开相关的程序。我把这个功能复制到了 Windows 上。 搞这个项目之前我也调查过现有的解决方案 WinQuickLookSeer,但是对两者都不太满意。本着轮子不嫌多的鲸神,自己动手丰衣足食。

    主要特点

    • 界面美观(个人观点)
    • 完美的高分辨率支持

    目前( 2017 年 5 月 1 日)支持的格式:

    • 图片:.png, .jpg, .bmp, .gif 等等
    • 各种压缩文件
    • PDF 文档
    • 文本文件(通过文件内容判断,并非扩展名)
    • 微软 Word/Excel/PowerPoint 文件(需要安装 Office ; Word 预览速度可以接受,后两者略慢)
    • 文件夹和其它未识别文件会在小窗口中显示信息。

    扩展开发

    QuickLook 提供高度自由化的扩展支持。每个扩展实现一个 UserControl,完成载入后把它传回给主程序即可。详情参见 README.md@GitHub

    目前开发状态

    • Windows 10 能用,7/8/8.1 不清楚
    • 功能略为简陋,缺乏显示 EXIF 和计算哈希值之类的功能
    • 没中文(反正没几个字)
    • 可能会有抛异常,比如在预览格式诡异的压缩文件时
    • 想退出只能干掉进程

    近期开发计划

    • Windows 7/8/8.1 兼容性
    • 音视频预览
    • 多语言(没人用的话就不需要了)

    远期开发计划

    • 支持 Common Dialog 中(例如打开 /保存文件对话框)空格触发预览(难度很高……)

    要说的就这么多,欢迎试用 :)

    第 1 条附言  ·  2017-05-08 16:02:18 +08:00
    V2EX 上只能追加内容,无法及时更新进度。
    最新的更新请参照 https://github.com/xupefei/QuickLook/ 的说明文件和 Release notes。
    第 2 条附言  ·  2017-06-12 02:58:42 +08:00

    2017年6月11日 v0.2.0更新:支持打开 / 保存文件对话框中调用预览:

    https://www.v2ex.com/i/C9OffBZ6.png

    第 3 条附言  ·  2017-07-22 01:20:16 +08:00

    2017-07-21:QuickLook 已登陆 Windows 商店:https://www.microsoft.com/store/apps/9nv4bs3l1h4s

    78 条回复    2020-08-18 19:03:43 +08:00
    18600491593
        1
    18600491593  
       2017-05-02 06:19:39 +08:00
    不错 支持
    cchange
        2
    cchange  
       2017-05-02 07:52:57 +08:00 via iPhone
    支持 希望继续开发下去 pdf 貌似用了 sumatrapdf
    谢谢开源!
    codehz
        3
    codehz  
       2017-05-02 08:24:25 +08:00 via Android
    我记得 windows 本来是自带文件预览功能的。。。只是逻辑和 mac 不一样而已。。。顶上的菜单里找找,应该能找到预览窗格的。。。
    congeec
        4
    congeec  
       2017-05-02 08:25:23 +08:00
    Windows 自带的 Alt + P 预览和 Seer: http://1218.io/ 都不大满意
    支持下楼主,感谢开源
    zhou00
        5
    zhou00  
       2017-05-02 08:38:04 +08:00
    支持下楼主 希望尽早完成 win7 的兼容
    Tink
        6
    Tink  
       2017-05-02 08:48:16 +08:00
    6666666
    zhujinliang
        7
    zhujinliang  
       2017-05-02 09:45:33 +08:00 via iPhone
    赞,看了下 C#可写插件
    amaranthf
        8
    amaranthf  
       2017-05-02 09:54:02 +08:00   ❤️ 1
    几个问题:
    1 预览窗口有点卡,包括拖动和文字选取、滚动等
    2 目前已经发现的关闭预览窗口方法,有点击关闭以及按空格,除此之外窗口总在最前,体验很不好,建议加入设置点击窗口之外的区域直接关闭以及总在最前的开关,同时不要使用全局的空格钩子,我切窗口打个字都能给我响应空格,有点囧
    3 预览窗口无法获得焦点,导致文本无法复制等
    4 每个文件不管大小都要 loading 一下,是调用插件的延时?建议改进逻辑,比如先对扩展名进行一次判定
    几点建议
    1 窗口字体有点丑,建议提供更换
    2 双击 exe 之后没有提示,这个应该是新
    3 分区预览有专门的 api 获取空间占用
    4 建议加入对 total commander 的支持,它有插件 sdk
    levie
        9
    levie  
       2017-05-02 09:59:26 +08:00
    Total Commander +1
    isb
        10
    isb  
       2017-05-02 10:12:54 +08:00 via iPhone
    支持一下~之前就想 win 上能有一个这样的功能就好了
    wensonsmith
        11
    wensonsmith  
       2017-05-02 10:22:22 +08:00
    厉害了!
    Ryans233
        12
    Ryans233  
       2017-05-02 10:34:56 +08:00   ❤️ 1
    相当好用,支持 LZ。能支持 Markdown 就更好了。
    xupefei
        13
    xupefei  
    OP
       2017-05-02 14:56:08 +08:00
    @cchange 其实是用了 MuPDF,我只是从 Sumatra PDF 里复制了一个 DLL 过来 :)
    @codehz 自带的预览功能只能看看图片和文本,其他都不行
    xupefei
        14
    xupefei  
    OP
       2017-05-02 15:04:13 +08:00
    @amaranthf
    1 不知道是不是 DWM 的锅,自绘的 frameless 窗口总是比原生的卡(比如 VS 的窗口在调大小和拖动的时候)。滚动的时候应该不是卡,而是我没做平滑滚动……
    2 这个建议好,下面会改成只有在 explorer 里空格才会关窗口
    3 这个也会改。无法获得焦点这个是跟水果系统学的,那边甚至不能选文本
    4 现在有 0.5 秒的淡出动画,改 0.2 秒估计就会觉得快了
    建议 1 我英文系统看不出来,给个图?
    建议 2 这个以后会做
    建议 3 这个还没想到过特殊处理,蛤蛤
    建议 4 有空了看看怎么搞……


    @Ryans233 这个以后也会搞 :)
    solobat
        15
    solobat  
       2017-05-02 17:57:13 +08:00
    用过 seer,确实感觉差点儿意思,试试楼主这个。
    amaranthf
        16
    amaranthf  
       2017-05-02 19:44:52 +08:00
    @xupefei 我觉得应该给一个设置选项:按下空格之后,开新窗口,获得焦点,然后在失去焦点的时候自动关闭,因为有时候我只想按一次空格,然后就靠鼠标操作了。
    同时如果加入触屏支持的话,弹出之后再点一下别处就自动关闭也是一个很好的体验。当然触屏情况下怎么弹出也是个需要考虑的问题。
    我是觉得没有必要的时候就不用显示那个 Loading 图了,比如在 0.5s 之内完成加载的话就直接显示,超过的话再显示 loading 图。
    字体好像主要是因为小,低分辨率下中文显示不清楚……支持了高分屏结果把低分屏给扔了么……
    ashfinal
        17
    ashfinal  
       2017-05-02 20:21:57 +08:00
    loading 图特难看
    另外 psd、ai、eps 等等一堆格式的预览,个人觉得很难做好
    mengyaoss77
        18
    mengyaoss77  
       2017-05-02 20:35:13 +08:00 via Android
    弱弱的说一句 还要点叉叉关闭窗口感觉和打开应用没什么两样啊。。。。
    geelaw
        19
    geelaw  
       2017-05-02 20:40:05 +08:00
    @congeec #4 Alt+P 的预览窗格可以写 shell extension,只有三个问题:

    - Windows 上很多开发者很懒;
    - UWP 暂时不能提供预览器;
    - 不懒的开发者不愿意用现有的 infrastructure,喜欢再造轮子。
    akwIX
        20
    akwIX  
       2017-05-02 20:44:33 +08:00
    @mengyaoss77 #18 再按一下空格就能关
    xupefei
        21
    xupefei  
    OP
       2017-05-02 21:26:51 +08:00
    @amaranthf 只有 loading 结束才会知道需要多久,要不要显示图标是先有鸡还是先有蛋的问题……
    字体问题等我调一下找人试试

    @ashfinal loading 图给个建议,好看点儿的? psd ai eps 的预览好不好得看插件咯,我觉得 eps 不会好到哪儿去就是了
    codehz
        22
    codehz  
       2017-05-02 22:04:03 +08:00
    @xupefei 可以支持 Office 系列的文档,而且好多专业软件在安装后也可以在资源管理器中显示预览——说白了,这玩意是可以扩展的。。。。。如果从这个角度着手,比如可以为一些不支持的文件类型编写生成预览的扩展。。。我觉得这条路才是正路。。
    xupefei
        23
    xupefei  
    OP
       2017-05-02 22:35:49 +08:00 via Android
    @codehz 倒是可以写个扩展来支持从 preview handler 中读取预览。问题是不知道这个扩展到底有多少软件在用…说不定到最后还是自己写不需要安装相关程序的扩展比较实用…
    ifaii
        24
    ifaii  
       2017-05-02 23:19:43 +08:00
    不能启动,报错了,未能加载文件或程序集
    xupefei
        25
    xupefei  
    OP
       2017-05-02 23:30:28 +08:00
    lkytal
        26
    lkytal  
       2017-05-03 11:49:00 +08:00
    Interesting
    amaranthf
        27
    amaranthf  
       2017-05-04 23:04:48 +08:00
    @xupefei 反正……你可以装下 total cmd,然后看下它对任何一个文件 /文件夹按 F3 的显示速度……
    xupefei
        28
    xupefei  
    OP
       2017-05-07 04:21:48 +08:00
    @amaranthf 刚修改了空格键的响应和文本的复制问题。现在只有在资源管理器中再空格一次才会关闭当前窗口。
    @codehz windows 那个 office 预览其实也是调用了 COM,和我的做法一样。不过因为打包的错误,Office 的插件被漏掉了……
    codehz
        29
    codehz  
       2017-05-07 10:52:40 +08:00 via Android   ❤️ 1
    @xupefei com 肯定是 com 啊,但是并不是说你(仅仅)注册了 com 就会自动调用的,肯定有一个关于预览的注册表信息在里边,如果直接读取这个注册表,就可以直接实现很多文件的预览了,而扩展,从开放的角度,可以直接使用它的注册表来实现,自己发明轮子的意义不大啊(毕竟市面上还是直接支持 explorer 预览的多)
    xupefei
        30
    xupefei  
    OP
       2017-05-07 17:34:40 +08:00
    @codehz 感谢回复。
    IPreviewHandler 的实现上有个关键的地方是,它直接传了一个窗口过去。这样的话,在其他程序中难以控制这个窗口的样式。例如,如果安装了 Adobe Reader, 那么预览窗口顶上就有一个黑条,而且无法自定义。
    Office 的预览也有些问题。比如 Excel 格式:任何文件都需要等三十多秒才能操作。Word 和 Powerpoint 倒是可以。
    其他的格式支持也有点儿简陋,比如图片只能看不能缩放。
    我最终的看法是,IPreviewHandler 功能无法保证,而且容易让整个程序挂掉(比如在等待 Excel 的时候,整个 explorer 都死了)。能用 lib 就不用 IPreviewHandler。某些质量好的 IPreviewHandler 可以使用一下。
    laycher
        31
    laycher  
       2017-05-11 18:04:17 +08:00   ❤️ 1
    文件不存在的时候报错,比如资源管理器中最近的文件,我预览就报错,自动退出了
    xupefei
        32
    xupefei  
    OP
       2017-05-11 19:34:26 +08:00
    @laycher 妹想到还有这种情况…我本以为文件一定存在的
    laycher
        33
    laycher  
       2017-05-12 10:21:10 +08:00   ❤️ 1
    @xupefei [偷笑 ing],我不小心测试到了。提几个建议。
    1、Markdown 的格式能否直接转成 html 那种展示。
    2、字体能否做调整。
    3、我最初的想法是通过 everything 和 listary 中用空格预览,但未生效。
    xupefei
        34
    xupefei  
    OP
       2017-05-12 16:05:10 +08:00
    @laycher 感谢建议。
    1 )这个很简单,写个 Plugin 就行了
    2 )关于这个,我的想法是在搞多语言的时候顺便做了,但目前来看没有多语言的需求……
    3 )目前只支持 explorer 中按空格。最近会加入命令行预览的支持,例如 quicklook.exe c:\path\to\file.txt。everything 我不是很清楚,但是 listary 是可以热键调用其他程序的。
    Vizogood
        35
    Vizogood  
       2017-05-12 18:48:33 +08:00 via iPhone
    cool
    Vizogood
        36
    Vizogood  
       2017-05-12 19:12:23 +08:00
    后期会添加 Markdown 格式的预览支持吗? 非常棒
    Vizogood
        37
    Vizogood  
       2017-05-12 19:14:20 +08:00
    另外 ,感谢开源,十分感谢.
    xupefei
        38
    xupefei  
    OP
       2017-05-13 05:31:54 +08:00   ❤️ 1
    @levie @laycher @Vizogood
    刚刚加入了命令行预览的支持,语法是 QuickLook.exe C:\path\to\file.txt。第一次调用时显示预览,再次调用时退出,与后台的守护进程相互独立(空格键只对后台的守护进程有效,对命令行调用无效)。Total Commander 里把 F3 快捷键修改一下就能用了:按 F3 预览,再按 F3 关闭。

    明天再写个 Markdown 插件,写完再发新版下载。
    Khlieb
        39
    Khlieb  
       2017-05-13 16:16:06 +08:00 via Android
    是否调用 Windows 自带文件预览功能载入缩略图?
    Khlieb
        40
    Khlieb  
       2017-05-13 16:19:57 +08:00 via Android
    @codehz 这等插件可以用 Autoruns 查出来
    Khlieb
        41
    Khlieb  
       2017-05-13 16:23:41 +08:00 via Android
    @codehz 另外有些软件的安装包有一个选项让你安装时候给系统注册插件来实现文件预览,如 SumatraPDF、LibreOffice 等
    xupefei
        42
    xupefei  
    OP
       2017-05-14 07:23:10 +08:00
    @Khlieb “载入缩略图”:是,但仅限缩略图。
    xy19009188
        43
    xy19009188  
       2017-05-14 21:20:58 +08:00
    楼主知不知道 seer
    xy19009188
        44
    xy19009188  
       2017-05-14 21:27:29 +08:00
    这个很漂亮,是最新的 fluent design 嘛。就是速度有点慢
    Khlieb
        45
    Khlieb  
       2017-05-14 23:53:43 +08:00 via Android
    @xupefei 那样也不错,因为有些软件会给文件资源管理器提供插件来预览特定文件的内容,能得到这些插件的支持可以省去一部分负担,另外提个想法,就是在系统服务中注册一个,然后就能用控制面板或任务管理器的服务里面关掉。
    xupefei
        46
    xupefei  
    OP
       2017-05-15 16:19:59 +08:00
    @xy19009188 怎么个慢法?我这边启动开预览窗口都是瞬间来着……

    @Khlieb 参照上面给别人的回复,这种插件质量无法保证(而且大部分都不怎么样)。
    xy19009188
        47
    xy19009188  
       2017-05-15 17:15:44 +08:00
    @xupefei 就是每次预览都会出现那三个点,UI 比 Seer 好看太多,尤其多页文件浏览,简直就是 macOS 哈哈
    xupefei
        48
    xupefei  
    OP
       2017-05-15 18:17:54 +08:00 via Android
    @xy19009188 PDF 阅读器我就是跟着水果系统山寨过来的😀
    xupefei
        49
    xupefei  
    OP
       2017-05-15 18:19:50 +08:00 via Android
    @xy19009188 你看错了吧,我这个启动时没有三个点,只有个箭头在转圈
    xy19009188
        50
    xy19009188  
       2017-05-15 18:22:57 +08:00
    @xupefei 那就是你的箭头转,seer 三个点了 。。。
    VinKing
        51
    VinKing  
       2017-05-16 14:35:10 +08:00
    支持楼主!另外,有同类产品 seer。
    xupefei
        52
    xupefei  
    OP
       2017-05-19 04:22:24 +08:00
    @zhou00 0.1.9 版本在 win7 下应该已经有半透明效果了。
    @xy19009188 找了个老机器试了试,然后优化了一下,0.1.9 版本中预览窗口应该能瞬间开启了。
    xy19009188
        53
    xy19009188  
       2017-05-19 19:50:39 +08:00 via Android
    @xupefei 回去赶紧更新一下
    xy19009188
        54
    xy19009188  
       2017-05-19 21:22:00 +08:00
    @xupefei 托盘图标变成彩色了?
    xupefei
        55
    xupefei  
    OP
       2017-05-20 15:52:47 +08:00 via Android
    @xy19009188 嗯。单色图标在标准分辨率下不好看,我又懒的去画新的。彩色的凑合用…
    leafof
        56
    leafof  
       2017-05-22 11:31:24 +08:00
    内含函数的 excel 表格打不开,一直转圈,不能关闭,只能结束进程!!
    xupefei
        57
    xupefei  
    OP
       2017-05-22 15:22:47 +08:00
    @leafof 这不是我的错,Excel 的 COM 写得太垃圾,假死、UI 锁死什么毛病都有。
    昨天我改了一下,Excel 用 Preview Handler 显示内容,你可以试试效果怎么样(还没发布,你可以等一两天或自己编译)。
    mewkeisa
        58
    mewkeisa  
       2017-05-25 11:05:44 +08:00
    补一句,提示要升级 .net 框架: https://www.microsoft.com/net/framework/versions/net462?source=dotnet
    感恩楼主~
    liygfg
        59
    liygfg  
       2017-06-04 16:12:44 +08:00
    好顶支持
    boboliu
        60
    boboliu  
       2017-07-31 09:09:16 +08:00
    竟然有 MD 支持!好顶赞!
    xupefei
        61
    xupefei  
    OP
       2017-07-31 17:26:28 +08:00
    Seer 作者和我邮件沟通了。他表示因为代码中使用了一些属于公司的代码,所以无法开源。我表示无能为力。
    邮件里说的“以前”指的是几年以前我曾经帮助他修复了文本框的识别问题。当时 Seer 好像还是免费软件来着: https://www.zhihu.com/question/19650866/answer/67751920。

    xupefei
        62
    xupefei  
    OP
       2017-07-31 17:26:43 +08:00
    @xupefei 哦,发错地方了。
    xupefei
        63
    xupefei  
    OP
       2017-07-31 17:29:08 +08:00
    @xupefei @Livid 上面的发错地方了,求删。
    Jface
        64
    Jface  
       2017-08-18 14:14:29 +08:00
    支持一波~
    anym0us
        65
    anym0us  
       2018-01-27 14:55:03 +08:00
    突然想到这个功能,万能的 V 友果然有,感谢
    sunnymiao
        66
    sunnymiao  
       2018-02-03 10:51:43 +08:00 via Android
    @xupefei 腾讯桌面整理软件打开时 在桌面上不能预览呀 求解决 https://guanjia.qq.com/product/zmzl/
    xupefei
        67
    xupefei  
    OP
       2018-02-03 16:40:48 +08:00
    @sunnymiao #66 这个无法解决。疼讯这个软件太极端了,硬生生造了一个和桌面一样外观的窗口给你看。Windows 自带的 Shell API 在它这里完全失效了。
    你可以试试 Fences,这个软件的做法比疼讯温柔的多。
    sunnymiao
        68
    sunnymiao  
       2018-02-05 09:21:53 +08:00 via Android
    @xupefei 好吧 明白了 谢谢
    orangutan92
        69
    orangutan92  
       2018-08-24 16:01:13 +08:00
    反馈几个问题:
    1、空格打开的 loading 时间有点长,看起来有些慢,大概要 2s 吧。
    2、如果图片的文件名较长,那么标题是显示不完整的,这样我就看不到后面的尺寸了。
    3、希望添加左下角或右下角尺寸显示图片尺寸功能,而不是点击右上角的感叹号。
    4、希望加入软件设置菜单,比方说开关默认下方图片尺寸显示的功能。
    superlaomao
        70
    superlaomao  
       2018-09-15 14:54:10 +08:00
    您好,非常感谢开发了这么优秀的工具,有一点我不太清除,QuickLook everything 这两个怎么联用啊?能不能在文档里面做个说明?谢谢!
    xupefei
        71
    xupefei  
    OP
       2018-09-15 21:04:15 +08:00
    @superlaomao #70 在 Everything 里选中文件按空格。因为太简单了,没啥需要说明的。
    HeyWeGo
        72
    HeyWeGo  
       2018-12-21 09:38:36 +08:00
    @xupefei #71 能增加一个修改快捷键的地方么?
    HarveyJ
        73
    HarveyJ  
       2019-04-04 08:27:14 +08:00
    提个建议,能否考虑在上传附件时候选择附件的文件浏览器窗口加入预览支持,这样可以像 MAC 一样快速准确选定需要上传的附件。
    xupefei
        74
    xupefei  
    OP
       2019-04-04 14:44:57 +08:00 via iPhone
    @HarveyJ 用安装版。这个功能商店版不支持。
    tsukiikekaoru
        75
    tsukiikekaoru  
       2019-04-16 16:40:37 +08:00
    你好,我安装了 office2010 和 WPS2016,用那个 V1 小的 office 查看插件预览 office 文件就会出现画面几乎全白,只能若隐若现的看到一些内容,就跟在上面撒了一层面粉那样,但是用 V3 那个 officeview without office 插件就可以正常预览。试了下,商店版和 msi 版都是这样。系统 win10 1809 build 17763.437
    xupefei
        76
    xupefei  
    OP
       2019-04-16 16:57:23 +08:00
    @tsukiikekaoru #75 Intel HD 3000 显卡?
    hippy
        77
    hippy  
       2019-05-03 13:18:52 +08:00
    软件很好用,也很美观。但是感觉速度有点慢,不知道楼主有没有 用过 total commander , 这个预览真的超快的,基本秒开各种 office 文档。
    Samaritan
        78
    Samaritan  
       2020-08-18 19:03:43 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4648 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 09:58 · PVG 17:58 · LAX 01:58 · JFK 04:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.