Nolbir01 / rimeime

Automatically exported from code.google.com/p/rimeime
1 stars 0 forks source link

小狼毫启动后不加载用户设置 #487

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
請寫下能夠重現此狀況的操作步驟:
1.启动系统后打开可输入文本的软件
2.切换到小狼毫输入法输入
3.

所得的結果是這個樣:小狼毫使用的是默认设置和皮肤
預期結果該是那個樣:小狼毫使用用户自定的设置与皮肤

請提供以下信息,幫我們定位問題。

1. 輸入法的款式:小狼毫
   輸入法版本號:0.9.25.2

2. 操作系統類型:Windows
   操作系統版本:Windows 7 x64

3. 輸入方案名稱:(如果問題涉及交互方式、輸入效果等
,請填寫)

還想再說幾句:
用户的配置文件都在,但重新部署后问题依旧。后来发现在��
�始菜单找到“小狼毫算法服务”启动可以解决,用户的设置�
��皮肤又被加载了。
整个过程的Log请见附件。

Original issue reported on code.google.com by liyuhen...@gmail.com on 27 Sep 2013 at 3:06

Attachments:

GoogleCodeExporter commented 9 years ago
所指「用戶自定義設置和皮膚」是這兩個文件麼?
C:\Users\Howard\AppData\Roaming\Rime\default.yaml
C:\Users\Howard\AppData\Roaming\Rime\weasel.yaml
日誌顯示已經加載了這兩份文件。你可查看一下其內容是否��
�想要的設置。

Original comment by contral...@gmail.com on 27 Sep 2013 at 3:14

GoogleCodeExporter commented 9 years ago
我选定的输入法列表上是在default.custom.yaml里设置的,皮肤的�
��置在weasel.custom.yaml里。这两个文件是小狼毫的设置向导生成
的,文件没有问题。
我又翻了下log文件,好像并没有看到有*.custom.yaml。

Original comment by liyuhen...@gmail.com on 27 Sep 2013 at 3:22

GoogleCodeExporter commented 9 years ago
只有當 default.yaml 需要更新的時候,日誌裏才會有讀取 
default.custom.yaml 的記錄:
I0927 11:25:05.340760 112214016 customizer.cc:88] updating config file 
'/Users/lotem/Library/Rime/default.yaml'.
I0927 11:25:05.340857 112214016 customizer.cc:103] applying customization file: 
/Users/lotem/Library/Rime/default.custom.yaml
I0927 11:25:05.340867 112214016 config.cc:596] loading config file 
'/Users/lotem/Library/Rime/default.yaml'.
I0927 11:25:05.347256 112214016 config.cc:596] loading config file 
'/Users/lotem/Library/Rime/default.custom.yaml'.
I0927 11:25:05.347991 112214016 config.cc:461] write: schema_list
I0927 11:25:05.348006 112214016 config.cc:461] write: config_version
I0927 11:25:05.348012 112214016 config.cc:461] write: customization
I0927 11:25:05.348018 112214016 config.cc:616] saving config file 
'/Users/lotem/Library/Rime/default.yaml'.

而當沒有檢測到配置變化時,日誌是這樣的:
I0927 11:25:42.905117 112214016 config.cc:596] loading config file 
'/Library/Input Methods/Squirrel.app/Contents/SharedSupport/default.yaml'.
I0927 11:25:42.911556 112214016 customizer.cc:85] config file 
'/Users/lotem/Library/Rime/default.yaml' is up-to-date.

如果 default.yaml 已經打好了補丁,就不必加載 default.custom.yaml 
了。

Original comment by contral...@gmail.com on 27 Sep 2013 at 3:33

GoogleCodeExporter commented 9 years ago
谢谢你的详细解答。
但有一点很奇怪,当初安装完设置好看起来一切正常,也就��
�说应该已经给default.yaml打好了补丁。但系统重新启动后变成�
��默认设置,这又是怎么回事呢?是说default.yaml又变成了默认
设置的版本?
我再观察一下,如果又出现了变成默认设置的情况,看看defau
lt.yaml是什么情况。

Original comment by liyuhen...@gmail.com on 27 Sep 2013 at 6:41

GoogleCodeExporter commented 9 years ago
系统启动后又出现了之前描述的情况,小狼毫使用的是默认��
�置而不是我自己的配置。
附件中两个yaml文件的位置在C:\Users\Howard\AppData\Roaming\Rime下,�
��两天设置后并没有修改过

另外附上了日志文件,我注意到其中第14行与第15行
I0929 10:39:36.304965 13188 config.cc:554] loading config file 
'C:\Users\Howard\AppData\Roaming\Rime\default.yaml'.
I0929 10:39:36.309965 13188 config.cc:554] loading config file 'C:\Program 
Files (x86)\Rime\weasel-0.9.25\data\default.yaml'.

这是否意味着小狼毫先是加载了用户配置的C:\Users\Howard\AppData
\Roaming\Rime\default.yaml,又加载了程序安装目录中的默认配置'C:
\Program Files 
(x86)\Rime\weasel-0.9.25\data\default.yaml',而最终用户的配置被默认�
��盖?

Original comment by liyuhen...@gmail.com on 29 Sep 2013 at 2:52

Attachments:

GoogleCodeExporter commented 9 years ago
日誌顯示用戶目錄下這份已經是最新的,也就是附件裏這份��
�
加載兩份 default.yaml 是爲比較其版本,以決定是否需要更新。
> config file 'C:\Users\Howard\AppData\Roaming\Rime\default.yaml' is up-to-date.

看來配置沒有問題。

一個猜想:
是不是把小狼毫設置爲系統的默認輸入語言了?
請注意一下進程管理器裏面的 WeaselServer.exe 
是不是由本機的其他 Windows 
用戶啓動(進程管理器,顯示所有用戶的進程);
如果是那樣,該進程讀取的將是其他用戶的配置,也就是默��
�配置。

Original comment by contral...@gmail.com on 5 Oct 2013 at 12:56

GoogleCodeExporter commented 9 years ago
小狼毫正常了一段时间,我也将版本升级到0.9.26.1了。今天又
出现了使用默认配置的问题。我去看了一下进程管理器,正��
�你所猜想的那样,WeaselServer.exe启动的用户是SYSTEM而不是我登
录使用的用户。
此时,从开始菜单启动“小狼毫算法服务”,然后再观察Wease
lServer.exe的用户就是我登录的用户了,我的配置也都回来了。

所以,出现之前的状况的原因应该就是启动用户不是登录的��
�户。但我并没有将小狼毫设置为系统的默认输入语言,默认�
��是Chinese (Simplified) - US Keyboard。
之前小狼毫使用默认配置的情况是不定期发生的,也就是说��
�时它会被以SYSTEM用户启动。它是什么时候被加载的呢?我并�
��有在启动项里面找到它。

我现在倒是有一种workaround:即把小狼毫算法服务加到开始菜�
��的“启动”里面,这样每次登录会再以当前用户启动它一次
,加载的就是当前用户的配置。

Original comment by liyuhen...@gmail.com on 17 Oct 2013 at 2:53

GoogleCodeExporter commented 9 years ago
果然如此。
好奇是誰調起的,可能需要專門的工具如process 
explorer來查看WeaselServer.exe的父進程。
登錄後啓動一次WeaselServer.exe倒是個好辦法。

Original comment by contral...@gmail.com on 17 Oct 2013 at 5:03

GoogleCodeExporter commented 9 years ago
我这几天在出现由SYSTEM启动的小狼毫时用process 
explorer看了下WeaselServer.exe的父进程。不幸的是显示的是个Non-e
xistence process,虽然有父进程的PID,但这个进程已经不在了。

是否有这样的工具,可以从系统启动开始一直记录启动的进��
�及其PID?这样可能能看到到底是哪个进程启动的小狼毫。 

Original comment by liyuhen...@gmail.com on 23 Oct 2013 at 4:22

GoogleCodeExporter commented 9 years ago
這我還不會。
不過至此已經可以嘗試給出解法。在WeaselServer啓動時判斷一��
�用戶名,若遇到SYSTEM帳號則直接退出。本週內可以弄個測試�
��出來。

Original comment by contral...@gmail.com on 23 Oct 2013 at 7:14

GoogleCodeExporter commented 9 years ago
http://pan.baidu.com/s/1oT5lM
weasel-0.9.26.90-installer.exe 嘗試修復

Original comment by contral...@gmail.com on 31 Oct 2013 at 7:57