SetPointとはLogicoolマウスのマウスウェア。
昔からその品質の悪さには定評がある。(MSがもう少し多機能マウス路線になってくれればなぁ)
最近になってだいぶ落ち着いてあまり不満もなくなっていたのだが、今回スリープ復帰した後にキーアサインが効かなくなる不具合が発覚したため最新バージョンにUPした。
するとスリープ復帰の不具合はめでたく解消したのだが、アプリケーション毎のキーアサインが再起動すると元に戻るようになってしまった。(昔もこの手の不具合があったなぁ)
以前はアプリケーション毎設定をするには、そのアプリケーションに対してすべてのボタンに機能を設定する必要があったが、今回のバージョンではカスタマイズしたいボタンにだけキー設定をすれば良いように変わっている。(これば便利)
共通設定通りで良いボタンについては「アプリケーション固有のタスクはありません」にしておけばよい。
おそらく、この新機能の作り込みでバグが混入したのではなかろうか。
今までのキーアサインに慣れているのでこのままではストレスが溜まりまくり。
なんとか回避策を探る。(以前のバージョンに戻すことも考えたが、それではスリープ復帰の不具合が解消されないので)
最初は書き込み権限の問題等で設定を保存で規定なのかとも思ったが、共通設定は保存できているのでそれな無さそうだ。
デフォルト設定で上書きされて戻されているのかとも思い、
"C:\Program Files\Logicool\SetPointP\default.xml"を弄ってみたりもしたのだがどうも違うっぽい。
ちなみにユーザー設定は以下のファイルに保存されているっぽい。
"C:\Users\minminnana\AppData\Roaming\Logitech\SetPoint\user.xml"
アプリケーショ固有の設定をして保存すると、このファイルのタイムスタンプが更新されている。
実はこれにちょっと騙されていた。共通設定を変更したときは確かにこの設定ファイルが更新されているのだが、アプリケーション毎の設定をした後、中身をコンペアしたらなんと何も変わっていないではないか。
中身を解析してみるとアプリケーション毎の設定もここに保持する仕様のように見える。
アプリケーション毎設定がされた時に内容を保存する処理が漏れているなんて単純な話?(なんかバグとも呼べないレベル)
そこで、仕方が無いのでこの設定ファイルを直接編集することとした。
中程のDevice要素で機能設定しているのが見て取れる。
すこし下がっていくとアプリケーション毎設定の場合はこんな感じでオーバーライドしている。
<Button Number="5" Name="5">
<Param IconLoc="" Type=""/>
<Trigger Class="ButtonPress">
<Param Button="5" EventType="100663297" FirstRepeatDelay="0" RepeatDelay="0" Silent="0" Type="0"/>
<TriggerState Name="ButtonDownUp" HandlerSet="KeystrokeAssignment">
<Handler Class="KeystrokeAssignment">
<Param DisplayName="Alt+N" LParam="540082177" Modifier="0" VirtualKey="78"/>
</Handler>
<AppOverride App="mm.exe" HandlerSet="AppOverride_MindMapperBack">
<Handler Class="AppOverrides">
<Param ActionName="BACK" ExeName="MM.exe"/>
</Handler>
</AppOverride>
<AppOverride App="winword.exe" HandlerSet="KeystrokeAssignment">
<Handler Class="KeystrokeAssignment">
<Param DisplayName="Alt+N" LParam="540082177" Modifier="0" VirtualKey="78"/>
</Handler>
</AppOverride>
<AppOverride App="msimn.exe" HandlerSet="AppOverride_OutlookExpressBack">
<Handler Class="AppOverrides">
<Param ActionName="BACK" ExeName="MSIMN.exe"/>
</Handler>
</AppOverride>
<AppOverride App="outlook.exe" HandlerSet="KeystrokeAssignment">
<Handler Class="KeystrokeAssignment">
<Param DisplayName="Alt+N" LParam="540082177" Modifier="0" VirtualKey="78"/>
</Handler>
キーコードは基本的にアスキーコードだが特殊キーはちょっと違っているようだ。LParamというのはなんの意味があるのか判らないが、とりあえず気にしなくても支障はなさそう。
設定の仕方が解らないときは一旦共通設定に設定してみてその内容を移植すると良い。
ひとつ解らなかったのが、Office系のソフトは予めいくつかのアプリケーション設定がデフォルト設定されているのだが、単純にそのAppOverrideを削除しても「アプリケーション固有のタスクにありません」には戻ってくれない。
だいぶ面倒くさくなってきたので、共通設定と同じ設定内容でオーバーライドする事でお茶を濁した。
-- 以下追記 2014/02/13
0 件のコメント:
コメントを投稿