wylht
新手上路
新手上路
阅读:7268回复:13

高分屏下非Modern应用的光标跟随问题

楼主#
更多 发布于:2015-10-30 09:06
非常喜欢小小输入法。刚入手一台分辨率很高的Windows设备,很高兴看到小小输入法在高分屏下效果也不错(有些输入法如搜狗等,据同学说在高分屏下字小得瞎眼)







但是,在非Modern应用下,如果应用了系统显示设置中的“放大应用程序和文本”,光标跟随就无法正常工作。在Modern应用中无此问题。


我猜测,是因为Modern应用可以正常处理高分屏的坐标,所以系统返回的是真实屏幕坐标;而对于被系统放大200%的程序,返回的是一个虚拟坐标。







具体测试:


系统设置:程序放大200%情况下:


开始菜单、Edge浏览器以及一切Modern应用(又称Metro应用,Windows Store App)光标跟随正常。


QQ、notepad、Word等一切desktop应用候选窗都在闪了一下之后跳到奇怪的地方。







关闭系统放大,改为100%显示。虽然屏幕分辨率让人瞎眼,但是光标跟随正常工作了。


重要:由100%切换为200%时,系统提示需要重启完全生效。但是如果这时不重启,屏幕内容也已经放大,此时小小输入法是可以正常光标跟随的!这时可以同时享受放大的程序和光标跟随。重启完全生效后,光标跟随即故障。







关于小小输入法的其它问题:


1. 只有在系统默认语言为中文时可以安装成功。系统默认语言为英文时无法安装TSF内置。只能通过单击任务栏图标来使用输入法


2. 如果把系统由英文切为中文,重启生效之前安装小小输入法,可以安装成功,但是小小输入法被安装为一个“英文输入法”,除了被归类为英文键盘外,其它使用一切正常


3. 切换中文,重启生效之后再安装小小输入法,被安装为一个中文输入法,工作一切正常。


4. 只有安装时需要系统默认语言为中文,安装之后把系统默认语言切换为英文不影响输入法的使用。


5. 安装程序似乎不是Unicode程序,在非中文系统下会乱码,必须修改系统设置才能显示;但是安装程序的最后一屏,即使修改系统设置之后也不能显示,必须系统默认显示语言为中文才可显示,若为英文则显示一片空白。







附上系统和软件版本:


Win10 x64 EN-US Pro Build 10240


小小输入法:2.3.0-3
沙发#
发布于:2015-10-30 09:46
英文系统应该没问题才对,可以看一下
http://yong.dgod.net/read.php?tid=217
http://yong.dgod.net/read.php?tid=624
tsf内置默认安装应该是安装到当前系统语言下的,英文不行怀疑是不是输入法名字是中文的问题

我没有高分屏,不清楚普通屏幕的情况下能否进行设置,我有时间尝试一下

另外,你使用外挂能否正常跟随?
不能跟随候选窗是否显示在离屏幕左上角一半的位置?
wylht
新手上路
新手上路
板凳#
发布于:2015-10-30 10:47
dgod:英文系统应该没问题才对,可以看一下
http://yong.dgod.net/read.php?tid=217
http://yong.dgod.net/read.php?tid=624
tsf内置默认安装应该是安装到当前系统语言下的...
回到原帖
在英文系统下,如果像我说的在设置为中文重启之前安装,安装到英文输入法之后,输入法名字是yong,似乎并没有中文字符。
我猜普通屏幕设置了缩放以后一样可以测试。
候选窗不是显示在屏幕左上,位置很奇怪,也可以出现在屏幕的右下角。光标在左上角时它在左中,光标左中它左下,光标中上它右中,光标中中它右下,光标右上它右中,光标右中它右下,光标右下它右下。这样看的话,总体的趋势是往右下方飘,这是一个不完全测试。
又:我刚才运行了一个特别古老的程序,可能是VC6编译的,光标是可以跟随的。按说对于这个程序,Windows一定是对程序做了虚拟坐标变换的。
所以目前看来,光标不能跟随的都是比较新的桌面程序。已知的有:IE11 notepad Office2013 Opera QQ最新版 Windows资源管理器等。
地板#
发布于:2015-10-30 10:54
wylht:在英文系统下,如果像我说的在设置为中文重启之前安装,安装到英文输入法之后,输入法名字是yong,似乎并没有中文字符。
我猜普通屏幕设置了缩放以后一样可以测试。
候选窗不是显示在屏幕左上,位置很奇怪,也可以出现在屏幕的右下角。光标在左上角时它...
回到原帖
你这些是内置还是外挂测的?还是两个都是一样的情况?
小小本身现在没有对高分屏特殊处理过,所以可以当vc6程序看。不过照这么看来,metro程序,你用到的那些也没对高分屏作过特殊处理。
可能是记事本之类的提供的是一个正确的坐标,小小用这个坐标移动候选窗的时候系统两倍放大了这个位置。
wylht
新手上路
新手上路
4楼#
发布于:2015-10-30 10:59
dgod:你这些是内置还是外挂测的?还是两个都是一样的情况?
小小本身现在没有对高分屏特殊处理过,所以可以当vc6程序看。不过照这么看来,metro程序,你用到的那些也没对高分屏作过特殊处理。
可能是记事本之类的提供的是一个正确的坐标,小小用这个坐标...
回到原帖
都是在内置TSF模式下测试的。外挂等我测试一下。
测试过的Modern程序包括Edge、Windows Store等,都是近一年之内有过更新的。
wylht
新手上路
新手上路
5楼#
发布于:2015-10-30 11:10
dgod:你这些是内置还是外挂测的?还是两个都是一样的情况?
小小本身现在没有对高分屏特殊处理过,所以可以当vc6程序看。不过照这么看来,metro程序,你用到的那些也没对高分屏作过特殊处理。
可能是记事本之类的提供的是一个正确的坐标,小小用这个坐标...
回到原帖
我觉得您说的很有可能。Win10的桌面程序应该是有两类,一类是旧程序,由系统做坐标变换的,这类程序感知到的显示器大小就是缩小之后的版本;一类是新程序,它们通知Win10自己可以处理好高分屏,系统为其提供真实坐标。
我猜搜狗输入法为了做到候选窗跟随,它是跟随程序变化的。当程序为原生高分屏支持程序时,它也通知系统不要缩放自己,这就造成了搜狗输入法在这些程序下光标虽然可以跟随,但是界面却小得没法看。
也许一个解决的办法是小小输入法可以在移动候选窗时侦知这种情况并据以将坐标等比缩小后再调系统API?我印象中windows现在似乎是有类似的系统API,但我不太确定。
从我个人来说,这并不影响使用,因为我可以盲打,少数时候才需要看候选窗。
6楼#
发布于:2015-10-30 11:10
wylht:都是在内置TSF模式下测试的。外挂等我测试一下。
测试过的Modern程序包括Edge、Windows Store等,都是近一年之内有过更新的。
回到原帖
tsf情况下,输入法得到的位置是应用通知tsf,再发给yong.exe,yong.exe移动候选窗位置。无论是nodepad.exe还是metro程序,到了yong.exe这儿都是一样的。所以只能是这两个给出的位置不是一个坐标系的,而metro程序给出的和yong.exe正好在相同。可能要改tsf模块了。
wylht
新手上路
新手上路
7楼#
发布于:2015-10-30 11:21
dgod:你这些是内置还是外挂测的?还是两个都是一样的情况?
小小本身现在没有对高分屏特殊处理过,所以可以当vc6程序看。不过照这么看来,metro程序,你用到的那些也没对高分屏作过特殊处理。
可能是记事本之类的提供的是一个正确的坐标,小小用这个坐标...
回到原帖
外挂模式下无论是ModernUI应用还是桌面应用都不能光标跟随,而且候选窗的位置更加奇特以至于我还没找到规律。
桌面程序无论新旧,都是有时可以跟随,有时不能。规律不明。OneNote、IE、notepad大部分时候不可以。Outlook、资源管理器、和老爷VC6程序大部分时候可以。Modern应用一律不能跟随。
另外外挂模式下在有些程序中会乱码(包括office和老爷VC6程序)有些不会。
总体来说,表现更加不一致,但是相当一部分桌面程序变得可以跟随了。
8楼#
发布于:2015-10-30 12:36
dgod:英文系统应该没问题才对,可以看一下
http://yong.dgod.net/read.php?tid=217
http://yong.dgod.net/read.php?tid=624
tsf内置默认安装应该是安装到当前系统语言下的...
回到原帖
希望早日加入对高分屏的支持,高分屏下发虚现在。
9楼#
发布于:2015-10-30 12:38
yanhuacuo:希望早日加入对高分屏的支持,高分屏下发虚现在。回到原帖
先解决光标跟随再说。如果支持了高分屏,很可能所有现在的皮肤都在高分屏下显示得很小了。
上一页
游客

返回顶部