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

“打开方式”的“打开方式”

  •  1
     
  •   geelaw ·
    GeeLaw · 2019-03-13 14:18:13 +08:00 · 4252 次点击
    这是一个创建于 2068 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本文缘起于我需要在 Windows 10 中注册 Windows 照片查看器和 JPG\PNG\ICO 等的文件关联,于是翻阅标准文档,写了一个 Windows 10 时代下正确注册文件关联——不要去抢默认关联,并正确利用 Windows 的机制引导用户发现你的 app ——的例子。

    我知道网上流行一种把 JPG/PNG 等和 Windows 照片查看器 TIFF 文件类型关联的方法,但是那样是道理上不正确的,例如会得到不正确的文件类型名。

    文章看点

    • 如何按照 Windows 的文档注册文件关联,并和 Windows 10 的文件关联体验保持一致。
    • 如何正确解除文件关联(当你的程序卸载的时候发生)。
    • 如何使用 ShellExecuteEx 来引导用户选择你的程序为默认的文件关联。

    打歪的看点

    • 有一张“打开方式”对话框的截图,它可以根据用户当前的 Windows 主题变化,显示当前主题下的这个对话框的样子;非 IE/Edge、非 Windows 平台则总是显示普通 Windows 主题下的样式;这一切当然都是静态实现的,没有 JS,没有服务器逻辑。
    • 快速导航的目录可以根据宽度选择是否把平行的主题分栏显示。

    查看《“打开方式”的“打开方式”》↗

    另外,我最近决定 fix Microsoft Edge 总是不能正确读取动态磁贴信息的问题,现在把 blog 主页固定到“开始”屏幕,可以看到 Live Tile 轮播最近 5 篇博文的介绍(之前该功能只在 Windows [Phone] 8.1 上有效,现在在 Windows [Phone] 8.1/10 上都有效);固定博文页面则显示这一篇的信息(这仍然是动态的,可以用来追踪一篇博文的更新)。

    动态磁贴 文章

    动态磁贴(大图) / 文章(大图)

    21 条回复    2019-04-04 16:54:08 +08:00
    bumz
        1
    bumz  
       2019-03-13 16:35:05 +08:00
    连打开对话框的 logo 都是 css 做的,为精神赞一个
    bumz
        2
    bumz  
       2019-03-13 16:40:47 +08:00
    不过似乎不能根据系统 tint color 来改变颜色呢
    bumz
        3
    bumz  
       2019-03-13 16:41:23 +08:00
    orangeade
        4
    orangeade  
       2019-03-13 16:46:03 +08:00
    Windows 上还好,macOS 简直智障,Finder 那个始终打开就是假的,得到显示选项里改,太恶心了
    jasonyang9
        5
    jasonyang9  
       2019-03-13 16:59:56 +08:00
    一个闭源系统的文件关联问题需要这样折腾,呵呵
    geelaw
        6
    geelaw  
    OP
       2019-03-13 17:06:24 +08:00 via iPhone
    @bumz #2 因为 accent color 不能被 CSS 看到。随着主题变化的功能需要开高对比度。以及细心的读者已经发现了 fi 的连写没有表现出来,因为要实现连写似乎只能用特别细的字。
    geelaw
        7
    geelaw  
    OP
       2019-03-13 17:09:18 +08:00 via iPhone
    @jasonyang9 #5 困难的不是事情本身,而是记得通过文档获取方法并严格执行——太多程序员喜欢注册表里东看西看并臆想一个实现方式。
    bumz
        8
    bumz  
       2019-03-13 17:48:06 +08:00
    @geelaw #6 好奇 windows 用的是什么字体,感觉其它笔画也略有不同

    font-feature-settings: "liga" 1; 似乎不管用
    geelaw
        9
    geelaw  
    OP
       2019-03-13 18:14:42 +08:00
    @bumz #8 Segoe UI Semilight,但我不知道怎么在 CSS 里面同时做到不要那么细又选中有连笔的。
    bakabie
        10
    bakabie  
       2019-03-13 18:39:18 +08:00
    文章十分的不错,就是不能用鼠标滚轮来 scroll 查看文章很蛋疼,不知道是我的问题还是啥,,
    hguandl
        11
    hguandl  
       2019-03-13 18:46:49 +08:00
    @orangeade Finder 那个是针对当前文件始终用某软件打开,显示简介里的那个是这个类型的全部文件。虽然不知道时会很坑,不过习惯了觉得还是有点用的
    nfroot
        12
    nfroot  
       2019-03-13 23:16:05 +08:00
    @jasonyang9 能介绍几个开源的操作系统吗?开放性&易用性&向前兼容向后兼容性比 Windows 好的。
    nfroot
        13
    nfroot  
       2019-03-13 23:16:31 +08:00
    对了,还有性能&生态。
    azh7138m
        14
    azh7138m  
       2019-03-14 00:24:26 +08:00 via Android   ❤️ 1
    @nfroot 兼容就不说了。。。64 位系统无痛运行 16 位程序的似乎就 win 一个?
    mmdsun
        15
    mmdsun  
       2019-03-14 00:33:54 +08:00 via Android
    @nfroot 兼容性 win 肯定是第一毋容置疑
    geelaw
        16
    geelaw  
    OP
       2019-03-14 00:45:28 +08:00 via iPhone
    @azh7138m #14 64 位 Windows 不能运行任何 16 位代码,但是可以运行一些特别的 16 位安装器——原因似乎是有些 32 位软件的安装器是 16 位的。做法是 Windows 识别出来之后用自带的安装器解析器完成安装。
    geelaw
        17
    geelaw  
    OP
       2019-03-14 00:46:53 +08:00 via iPhone
    @bakabie #10 横向滚动的方式是用修饰键+滚轮,不同浏览器不同。或者可以改变窗口的宽度,不用分栏模式。
    azh7138m
        18
    azh7138m  
       2019-03-14 01:12:50 +08:00
    @geelaw NTVDM 已经很酷炫了,https://github.com/leecher1337/ntvdmx64 这个就更骚了
    lizhuoli
        19
    lizhuoli  
       2019-03-14 12:49:09 +08:00 via iPhone
    @orangeade 需求不一样,我就需要某一个文件夹下的 Xcode Project 使用 Beta 版本的 App 打开,其他使用默认的 Release 版,告诉我不用这个功能该怎么做
    orangeade
        20
    orangeade  
       2019-03-14 14:14:20 +08:00
    @lizhuoli #19 右键选择打开方式不就行了,对我来说一种文件格式只喜欢一个默认的打开方式
    yzlnew
        21
    yzlnew  
       2019-04-04 16:54:08 +08:00
    @orangeade 试试 duti
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2718 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 00:17 · PVG 08:17 · LAX 16:17 · JFK 19:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.