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

OneNote 的这个骚操作是用哪个 Windows API 实现的?

  •  4
     
  •   szzhiyang · 2018-10-27 23:36:17 +08:00 · 6180 次点击
    这是一个创建于 2222 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Win32 版本的 OneNote 有个 停靠到桌面 的功能,可以把桌面图标和其他应用程序的窗口通通 排挤到 OneNote 窗口的周围,做起笔记来方便极了!


    我非常喜欢这个功能,我也想给我自己写的应用程序加上这个功能,可是我却找不到这个功能对应的 Windows API,望大家能帮忙指点迷津,感谢!


    1


    2

    32 条回复    2018-10-29 09:45:17 +08:00
    szzhiyang
        1
    szzhiyang  
    OP
       2018-10-27 23:38:00 +08:00
    @geelaw 我很希望能得到您的专业解答,非常感谢!
    youthcould
        2
    youthcould  
       2018-10-27 23:51:38 +08:00
    请问右下角的飞机图标是啥软件啊?
    szzhiyang
        3
    szzhiyang  
    OP
       2018-10-27 23:52:06 +08:00
    我也问了身边的好几个熟悉 Windows 开发的朋友,他们都不知道这个功能是怎么实现的。

    希望同样不知道如何实现这个功能的 V 友们能帮顶一下这个帖子,也许这样我们可以更快地获知答案。
    Raymon111111
        4
    Raymon111111  
       2018-10-27 23:56:08 +08:00
    微软没有开发者论坛吗
    szzhiyang
        5
    szzhiyang  
    OP
       2018-10-28 00:02:13 +08:00   ❤️ 2
    @youthcould

    右下角的应用程序从左至右依次是:

    我自己写的 Microsoft Flight Simulator X 插件
    TIM
    微信
    f.lux
    ShareX (最强的截图软件)
    Elan 触控板驱动
    Power Keys (最强的键盘流效率工具,https://PowerKeys.GitHub.io
    OneDrive
    Laynooor
        6
    Laynooor  
       2018-10-28 00:13:54 +08:00 via Android
    记得微软有个数百美刀的服务,买了这个服务有 3 次还是 5 次提问的机会,会有专家一对一解决你的疑惑?
    dhssingle
        7
    dhssingle  
       2018-10-28 00:32:39 +08:00   ❤️ 1
    不懂,帮顶一下吧
    szzhiyang
        8
    szzhiyang  
    OP
       2018-10-28 00:37:51 +08:00
    @Laynooor 我这个问题值上百美刀?😂
    szzhiyang
        9
    szzhiyang  
    OP
       2018-10-28 00:38:11 +08:00
    @dhssingle 太感谢您了!
    dangyuluo
        10
    dangyuluo  
       2018-10-28 00:41:49 +08:00
    @szzhiyang 我不是 Windows 开发者所以回答不了问题。但是我有个小经验,那就是自己发出的感谢一定要克制,不能随便一个路人说了句无用的话就以很强烈的语气去感谢。

    感谢也是会通货膨胀的。
    ysc3839
        11
    ysc3839  
       2018-10-28 00:43:45 +08:00
    我猜测是 SystemParametersInfo SPI_SETWORKAREA。具体 OneNote 怎么做的也许得逆向看看了。
    iwtbauh
        12
    iwtbauh  
       2018-10-28 01:07:09 +08:00
    如果是 Linux 或者 Unix 我倒是可以告诉你

    文档在 https://specifications.freedesktop.org/wm-spec/1.3/ar01s05.html
    使用 _NET_WM_STRUT 和 _NET_WM_STRUT_PARTIAL 这两个 Atom 即可
    yejinmo
        13
    yejinmo  
       2018-10-28 01:14:44 +08:00
    是否可以考虑使用 spy++ 抓取 OneNote 的消息
    oott123
        14
    oott123  
       2018-10-28 01:30:06 +08:00 via Android
    歪楼,我觉得 Snipaste 才是最强截图软件,并且还是最强贴图软件(顶锅盖逃
    dandycheung
        15
    dandycheung  
       2018-10-28 01:40:29 +08:00 via Android   ❤️ 1
    难道不是失传已久的桌面工具栏?
    mason961125
        16
    mason961125  
       2018-10-28 01:43:12 +08:00 via iPhone
    你有没有想过,可能 Onenote 真的只是移动了图标,然后窗口还原的时候再移回去?
    vmebeh
        17
    vmebeh  
       2018-10-28 01:52:10 +08:00 via iPhone   ❤️ 1
    icekingcy
        18
    icekingcy  
       2018-10-28 02:01:52 +08:00 via iPhone
    歪楼问下 还有桌面 Wideget 插件实现的方式么
    storypanda
        19
    storypanda  
       2018-10-28 02:07:37 +08:00 via Android
    surface go 可以做到一并开 5 个窗口吗? win10 家庭版
    orzfly
        20
    orzfly  
       2018-10-28 02:14:42 +08:00   ❤️ 1
    我记得 Windows 上,古时候有个…… AppBar 的概念。

    http://www.thescarms.com/VBasic/appbar.aspx
    geelaw
        22
    geelaw  
       2018-10-28 03:06:11 +08:00 via iPhone   ❤️ 5
    Application Toolbar

    Raymond 遇到过 https://blogs.msdn.microsoft.com/oldnewthing/20170504-00/?p=96106

    我的例子 https://github.com/GeeLaw/PowerShellThingies/tree/master/modules/Dock-PS

    同时抗议不付费的技术支持服务,以及 MSDN forums 更适合问针对 Win32 的问题。

    最后,任务栏也是这么实现的。
    geelaw
        23
    geelaw  
       2018-10-28 09:52:00 +08:00   ❤️ 1
    其实这个内容我似乎在 V2EX 上 po 过 https://www.v2ex.com/t/359583
    szzhiyang
        24
    szzhiyang  
    OP
       2018-10-28 10:03:50 +08:00
    @geelaw

    非常感谢您的热心解答!

    您的那篇帖子发布之时我还没有开始逛 V 站,所以我很难注意到那篇帖子。

    看来 V 站了解 Windows 开发的人并不多,我以后会多去 MSDN 论坛逛逛。
    szzhiyang
        25
    szzhiyang  
    OP
       2018-10-28 10:15:27 +08:00
    @dangyuluo

    在他帮顶之前,有 200 多个 V 站会员浏览了我的这个帖子,但是他们都没有吭声。

    他作为第一个愿意帮顶我帖子的 V 友,我为什么不能感谢他?

    虽然他的回复没有直接回答问题,但是他的这个回复却能间接帮助这个帖子更快找到解决方法,怎么就没有意义?
    lance6716
        26
    lance6716  
       2018-10-28 10:18:28 +08:00 via Android
    @szzhiyang 有的大佬看到你感谢他跟感谢别人一样就会不高兴(真是奇怪
    szzhiyang
        27
    szzhiyang  
    OP
       2018-10-28 10:24:44 +08:00   ❤️ 1
    @lance6716 经验告诉我,真大佬的心胸是不会那样狭窄的。
    mmdsun
        28
    mmdsun  
       2018-10-28 12:02:00 +08:00 via Android
    帮顶。我也没见到过这个 api
    daigouspy
        29
    daigouspy  
       2018-10-28 13:01:32 +08:00 via Android
    @szzhiyang 找一下 Windows shell 编程新加的内容,应该就在那里。
    openbsd
        30
    openbsd  
       2018-10-28 21:36:54 +08:00
    @Laynooor #6
    不用数百刀 RMB150 不过要求涉及的微软产品均是来自微软 零售的正版 之前遇到个 “底层?” 问题专门咨询过,门槛太高遂放弃了
    wohenyingyu02
        31
    wohenyingyu02  
       2018-10-28 23:56:40 +08:00
    隐约记得 win8 时代的大方块是可以这样设置的,那时候还叫 metro 应用……
    cuzfinal
        32
    cuzfinal  
       2018-10-29 09:45:17 +08:00
    Windows10 有分屏功能,和这个很像。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1324 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 18:09 · PVG 02:09 · LAX 10:09 · JFK 13:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.