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

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

  •  1
     
  •   geelaw · 44 天前 · 2694 次点击
    这是一个创建于 44 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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