V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
codehz
V2EX  ›  Windows

Windows 11 小组件完全魔改指南(insider 版)

  •  6
     
  •   codehz · 2021-07-15 01:44:06 +08:00 · 7796 次点击
    这是一个创建于 1256 天前的主题,其中的信息可能已经有所发展或是发生改变。

    首先说明,这里介绍的方法不一定能在正式版中使用,微软可能会采取行动封堵这个操作。

    这里先不评价 Win11 的小组件实用性在哪里。。就给那些希望深度定制内容的人一个操作指南吧。

    本文只面向有一定基础知识的玩家,魔改有风险,注意常备份


    我们知道,win10 的新闻和兴趣功能使用的是 windows.msn.com/shell (中国为 windows.msn.cn/shell ),所以以此类推,win11 的小组件用的就是 https://windows.msn.com/newsandinterests 了(

    因此如果想要深度定制内容,就可以从劫持这几个网址入手

    虽然理论上只要第一个就够了 劫持内容可以通过 hosts 来做到(使用代理的朋友请自行解决),直接在 hosts 文件写入

    127.11.45.14 windows.msn.com
    127.11.45.14 windows.msn.cn
    127.11.45.14 localhost.windows.msn.com
    

    (注意 127.0.0.0/8 整个都是本地回环,为了避免与 127.0.0.1 上的其他服务冲突,可以选择一个独特的地址)

    然后考虑到目标页面是 https 页面,我们可以通过自签名证书+安装根证书的方法绕过,这里采用 mkcert 的方案

    mkcert --install
    mkcert windows.msn.com windows.msn.cn localhost.windows.msn.com
    

    得到证书和私钥文件后就可以放到自己喜爱的 http 服务器里部署了

    然后再打开 widgets 就可以拿到自己定制的页面了

    什么,你说还是原来的?那就是因为缓存的关系,不能及时刷新(还有 service worker ),可以通过删除 %LocalAppData%\Packages\MicrosoftWindows.Client.WebExperience_cw5n1h2txyewy\LocalState\EBWebView 目录来强行移除缓存(操作前终止小组件相关进程)


    然后再来说说这玩意有啥实用性:全局呼出( win+w,触屏用户可以侧滑呼出 ),几乎在所有界面可用(除了某些独占显示的游戏),定制后可用作第二个开始菜单 /启动器

    7 条回复    2021-10-05 20:29:46 +08:00
    ysc3839
        1
    ysc3839  
       2021-07-15 02:29:44 +08:00 via Android
    看上去这里用的是 Edge WebView2,可能想办法打开开发者模式的可玩性更高。
    oott123
        2
    oott123  
       2021-07-15 11:17:32 +08:00   ❤️ 1
    @ysc3839 研究了一下,注册表这么设置一下,设置完了之后杀掉 widgets.exe ,再打开小组件界面,按 F12,就有 devtools 了。

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Dsh]
    "EnableDevTools"=dword:00000001
    Scirocco
        3
    Scirocco  
       2021-07-15 12:10:07 +08:00
    @oott123 #2 感谢,非常有帮助

    然后现在发现这个网址好像改成了 https://windows.msn.com/windowsnewsplus/
    ikas
        4
    ikas  
       2021-07-15 18:04:41 +08:00
    相反的,你也可以把他的 webcontent 拷贝出来,然后随便起个 http server,启动一个禁止跨域检测的 edge,就可以完整跑他的了...看他的项目结构,以后应该是可以添加组件的...
    thetbw
        5
    thetbw  
       2021-07-16 11:50:08 +08:00
    最简单的方法就是直接把微软的小组件干掉,自己整个 webview 开发个出来也用不了多久,或者现成的应该有的吧
    codehz
        6
    codehz  
    OP
       2021-07-16 15:12:21 +08:00
    @thetbw 这样说也没错,但是问题在于这玩意是内置的,而且可能还会随着后期优化而改善体验和修复 bug,而且现在来看至少调试体验还不错。。就解决一个证书和 hosts 的问题就可以和一般的网页 app 一样用了
    (然后这个模糊效果确实不错,electron 用的那个模糊 api 性能就一团浆糊,还不支持圆角)
    huhuime
        7
    huhuime  
       2021-10-05 20:29:46 +08:00
    @codehz electron user32 那个本来就是系统 api 实现,微软的问题一直不修,现在更糟糕了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2647 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 06:59 · PVG 14:59 · LAX 22:59 · JFK 01:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.