V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
geelaw

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

  •  1
     
  •   geelaw ·
    GeeLaw · Mar 13, 2019 · 4855 views
    This topic created in 2604 days ago, the information mentioned may be changed or developed.

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

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