作者HZYSoft (PCMan)
看板EZsoft
标题[情报] 新酷音输入法可能支援 Win 8 app 模式
时间Thu Sep 12 18:27:38 2013
blog 原文:
http://pcmanx.blogspot.tw/2013/09/windows-windows-8-64-bit.html
转贴内文如下:
------------------------------------------------------------------------
虽然先前本来只打算支援 Windows 8 的 desktop mode,但是经过持续研究,
以及寄信请教 TSF aware blog 作者 Eric Brown,参考日文输入法 corvus-skk,
加上对岸强大的开发者,小小输入法的周永 (dgod) 指点,终於知道怎麽做了。
目前新酷音输入法,初步可以部分支援 Windows 8 modern UI,
我在 Windows 8 试用版里面测试,已经可在 metro app 里面使用了!
值得一提的是,对岸高手周永 (dgod),就是我认识的那位 dgod
之前我们还一起开发过 Linux 桌面 LXDE 专案,实在也太巧,
我居然不知道他会写 TSF 输入法!! (我猜他应该也不知道我有在写 XD)
先前从文件上看来,Windows 8 app 模式不能使用许多旧有功能,
很多输入法必要的 API 竟都被标注为 desktop mode only,
所以我一直想不出来怎麽做。原来,在输入法是特例,
虽然 dll 是载入到 app container 内,但是 desktop SDK 的 API 是允许使用的。
终於找到一份文件证实这点:
http://msdn.microsoft.com/en-us/library/windows/desktop/hh848069(v=vs.85).as
px
Quote:
When an IME is loaded into a Windows Store app, it is subject to the same
app container restrictions as the app itself. This behavior ensures that
IMEs are not able to violate Windows Store app security contracts, despite
having access to the desktop SDK (because they are not distributed or
certified by the Windows Store)
所以,输入法虽然跑在 app 内,原 Win32 API 是允许的,但是存取的限制,
仍然受到 app container 安全规范,实地测试发现,可以使用 Registry 的 API
但是在 app 内尝试读写系统登录,都会造成错误。读写 app
以外的档案也会权限不足。
故这些 API 虽然可以调用,但是只要存取到 app 不准许存取的资源,就会发生错误。
总结来说,目前已经可支援 Windows 8 store app,但还有许多限制没有克服
使用者偏好设定,各个 app
内各自独立,不能互相读取,也不能读取系统登录,也不能存取 app 自己 package
以外的档案,所以无法读取设定档,不能和 desktop mode
共用设定。微软官方建议的方式是,建立一个 web service 来储存这些设定。
app 内储存设定有自己的方式,新的 API 不相容旧版
Windows,所以可能还是需要额外帮 Windows 8 开发自己的版本
使用者辞库无法在 app 内使用,因为 app
内读不到外界的档案,只有少数几个许可的位置可读取,很多更是无法写入,但是各个
app 随不同的 capability
又会不同。此问题目前无解。微软官方建议的方式是,这些资料应该放在云端。但是没
网路的时候就不能用了,Windows 8 的这种设计哲学在网路连不上的情况会很难实现。
app mode 和 desktop mode
之间互相沟通预设不被允许,除非经过复杂的安全性设定,但是找不到如何设定的文件
或范例。目前比较确定能用的,是透过 web
service,只不过,为了交换少数资料,而需要架设 web server...真是杀鸡焉用牛刀!
Windows store app mode 下没有语言列,无法显示状态,或存取其他功能。
也许,在 app 模式下关闭使用者辞库功能是个可行的解法,
但是这仍然没有解决 app 内和 desktop mode 设定要如何共用的问题。
该不会真的需要写专用的 web server 吧....
TSF 和 32/64 位元支援都完成了,支援 Windows 8 metro app
有谱了,但还有很长的路要走。
※ 编辑: HZYSoft 来自: 203.64.247.2 (09/12 18:31)
1F:推 Kreen:推!! 09/12 19:04
2F:→ y3k:做到这样太有爱了.. 09/12 20:55
3F:推 chancewen:(≧▽≦)b 09/12 22:38
4F:推 kuro:推中国高手指点一二! 09/12 22:41
5F:推 wumins:只能说HZYSoft真牛 09/12 22:45
6F:推 alicelee1218:推! 09/12 23:01
7F:推 WFXX:加油˙!!!! 09/12 23:41
8F:推 rockmanx52:<_ _> 09/13 01:24
9F:推 saxontai:用无虾米的路过…加油~ 09/13 10:34
10F:推 weltschmerz:真心觉得metro 跟 desktop两个资料不互通真的很智障 09/13 13:34
11F:推 Naniko:听起来是只能真的开service处理了,怕就算找到其他方法也偏 09/13 14:40
12F:→ Naniko:脏,长久来看不是解决之策 09/13 14:40
13F:推 neosnow:没关系 只要win7 可以用就好了哈哈哈!!! 09/13 20:37
14F:推 n810516:win7再战十年 09/14 01:10
15F:推 JFCC:metro & desktop 不互通这哪招 09/14 20:13
16F:推 rockmanx52:因为Desktop在Win8底下只是一个内建app 地位比较低 09/15 03:45
17F:→ rockmanx52:所以开发思维要"反过来" 以Modern UI为主 再去"支援" 09/15 03:46
18F:→ rockmanx52:Desktop mode才比较接近微软的想法 09/15 03:46
19F:推 Kreen:WIN7 在战十年~ 09/15 18:26
20F:推 teee:推 09/19 15:31
21F:推 pxx:推,我的64位元笔电终於也能用新酷音了 09/28 10:56
22F:推 jeeyi345:推,键盘改倚天式在Metro,微软真ㄊㄇ白痴 03/15 02:30
23F:→ jeeyi345:新注音在Metro没跟着改还是标准式,不好意思离题 03/15 02:31