咨询一个 windows 开发的技术问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
brokensword2018
V2EX    Windows

咨询一个 windows 开发的技术问题

  •  
  •   brokensword2018 2024-12-03 18:23:13 +08:00 2093 次点击
    这是一个创建于 379 天前主题,其中的信息可能已经有所发展或是发生改变。

    2.gif

    在 windows 中使用 win + v 激活自带的 windows 自带的剪切板管理软件,并不会影响当前软件的激活状态。而且剪切板管理软件可以获得键盘焦点。这个是怎么实现的。第三方应用可以实现吗。

    24 条回复    2024-12-09 09:07:45 +08:00
    iOCZS
        1
    iOCZS  
       2024-12-03 18:38:36 +08:00
    会不会是障眼法,最外面的其实没必要聚焦。。。。
    xujinkai
        2
    xujinkai  
       2024-12-03 18:46:19 +08:00 via Android
    这个问题我也想知道。。。看有没有大佬答疑
    mainjzb
        3
    mainjzb  
       2024-12-03 19:04:59 +08:00
    powerTorys 里的高级剪贴板并没有这样的效果,我怀疑不是公开 api
    mumbler
        4
    mumbler  
       2024-12-03 19:09:33 +08:00
    接管 win + v ,自己启动 windows 自带软件,然后完成自己的操作
    ibinary
        5
    ibinary  
       2024-12-03 19:35:26 +08:00
    有意思的技术.可以逆向一波了.
    shintendo
        6
    shintendo  
       2024-12-03 19:37:05 +08:00
    类似输入法?
    brokensword2018
        7
    brokensword2018  
    OP
       2024-12-03 19:40:53 +08:00
    @iOCZS 不是外面的窗口确实是激活状态且保持为前台进程。
    brokensword2018
        8
    brokensword2018  
    OP
       2024-12-03 19:45:19 +08:00
    @shintendo 不是很清楚,在这个软件里是可以用输入法的
    hingle
        9
    hingle  
       2024-12-03 20:09:12 +08:00
    你看图中的搜狗输入法,在打字的时候,文本编辑器、剪切板和输入法,三个焦点同时存在。
    dandycheung
        10
    dandycheung  
       2024-12-03 20:13:01 +08:00 via Android
    系统的窗口风格,有一个是 WS_EX_NOACTIVATE ,你查查文档看。
    ysc3839
        11
    ysc3839  
       2024-12-03 20:35:09 +08:00 via Android
    应该就是 WS_EX_NOACTIVATE ,可以找找屏幕键盘、输入法之类的代码看看
    brokensword2018
        12
    brokensword2018  
    OP
       2024-12-03 21:13:28 +08:00
    @dandycheung 这个不激活但是同时也没有键盘焦点。
    xujinkai
        13
    xujinkai  
       2024-12-04 00:13:37 +08:00 via Android
    突然想到,可以在不激活的同时,用 low level 键盘钩子获取全局键盘事件,假装有个焦点。
    brokensword2018
        14
    brokensword2018  
    OP
       2024-12-04 09:57:00 +08:00
    @xujinkai #13 可能是个解决办法。输入法这样工作好像有问题。
    byasm32
        15
    byasm32  
       2024-12-04 10:50:40 +08:00
    应该用 IMM 输入法接口实现的
    brokensword2018
        16
    brokensword2018  
    OP
       2024-12-04 14:06:52 +08:00
    有可能,我研究一下。
    jayasme
        17
    jayasme  
       2024-12-04 18:22:18 +08:00
    我猜应该跟输入法一样是将自己的进程注入到目标进程,当你按下 win+v 其实只是激活了当前应用程序的粘贴板模块
    brokensword2018
        18
    brokensword2018  
    OP
       2024-12-04 19:38:57 +08:00
    @jayasme 大佬,应用程序的粘贴板模块是指什么。
    jayasme
        19
    jayasme  
       2024-12-04 19:42:23 +08:00
    @brokensword2018 就是粘贴板将自己作为子进程注入进主进程,对于主进程来说就是一个模块了
    xgdgsc
        20
    xgdgsc  
       2024-12-04 21:23:03 +08:00
    借道问一个华硕电脑偷焦点的相关问题 https://tieba.baidu.com/p/9281417953
    byasm32
        21
    byasm32  
       2024-12-04 22:39:22 +08:00
    @jayasme #19 注入了也实现不了双焦点;应该就只有输入法框架。
    ns09005264
        22
    ns09005264  
       2024-12-04 22:50:49 +08:00
    mark 一下,我刚好这两天也想到是否有这样的技术可以在屏幕临时展示一些信息,但不影响正在使用的程序的焦点。
    brokensword2018
        23
    brokensword2018  
    OP
       2024-12-05 10:15:16 +08:00
    @ns09005264 WS_EX_NOACTIVATE 只展示信息的话不需要输入的话,WS_EX_NOACTIVATE 就够了。
    ayangweb
        24
    ayangweb  
       2024-12-09 09:07:45 +08:00
    哈哈,同问!这个问题我已经在 macOS 上实现了,但在 Windows 上一直被卡住,困扰了我很久!
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     922 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 39ms UTC 22:05 PVG 06:05 LAX 14:05 JFK 17:05
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86