多灾多难的Win32ClipBoard API

摆烂~

这里的多灾多难是动词

我已经有一段时间没更新文章了,自从新年过后我一直忙于自己的学业与项目之中(还有每天晚上的两个小时Steam Deck游戏时光。虽然我很不愿意承认,但这台掌机躺着玩是真的很锻炼臂力与握力!)

枪下游魂3的汉化遇到了很大的技术难题,起码在找到大佬来解决这个问题之前,我是不会点开D盘那个名为PS2的文件夹了。除非我哪天脑子抽风将自己仅存的几根头发换成了脑子里的C++知识,或者有其他大佬帮我根据decode写出来了encode。

所以“找大佬”这段时间的空档期我便无事可做(虽然枪下游魂1的汉化BUG还没修,而且马上要到汉化发布一周年了)但我绝对是那种闲不下来的人(指一闲下来就会开个永远不会填上的新坑或者去整理整理旧坑)在给自己的Steam账户合卡合到36级后,我决定写个跨平台剪切板同步工具。

给Windows写程序是灾难,起码现在是

这个项目比以往都靠谱的一点是:它在技术理论上的确可行,而且经过短暂的实验也证明了这一点。虽然实际使用情况未知,效率未知,血压未知。

跨平台当然要分别写出三大金刚系统的代码,剪切板这种系统软件层的东西当然要利用系统的API。Apple的Mac OS提供的Appkit API体验非常顺滑。虽然垃圾pycharm不知道为什么装了pyobjc后仍然导入不进去NSPasteboard模块。但幸好有个第三方pip模块解决了这个问题,帮我自动导入了NSPasteboard。

在动工之前我以为烫手山芋是Linux平台,毕竟Linux抛出了“桌面环境”这个概念根本没有剪切板这东西。而各大Linux发行版使用的桌面环境核心程序并不统一,但还好在我查阅了相当多的资料后。大部分著名的桌面环境(例如KDE Plasma和Gnome,Xfce)都选用了最新的Wayland作为核心代替X11。

而且Wayland下有个极佳的开源剪切板工具可以直接拿来用,甚至都不需要访问系统API!就可以实现与调用AppleKit和win32api同等的功能。

解决了最不熟悉平台的技术问题后,没想到整个项目先创死我的是Windows。

Windows 11烂,Windows API更烂!

各个设备之间即使同步剪切板,无非就是三种数据类型:文本,文件,图片(兄啊没有人会把Windows Pen触摸板数据尝试传输到iPad 妙控笔上)

即使是在操作系统之间数据声明类型和储存方式不一样的情况下,经过简单的转换macos和linux wayland也是可以轻松接受并读取数据的。

然而win32clipboard api拥有三大平台最糟糕的剪切板编程体验。同样是印度来的程序员,你苹果的NSPasteboard怎么就像德芙一样丝滑,win32clipboard怎么就用起来像屎一样!

评论

  1. 头像
    艾力克斯
    1 年前
    2023-2-17 16:37:03

    如果不想填坑的話願不願意教我如何漢化生化危机導演剪輯版呢

    • WinterMuted 冬寂
      博主
      艾力克斯
      1 年前
      2023-2-22 10:35:00

      你先学会如何给PS显存字库扩容
      学完后RE的汉化资料都可以开源给你

  2. 头像
    lastice
    1 年前
    2023-4-12 8:44:32

    加油,man

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇