2008年11月30日日曜日

XP:画面回転時にタッチパッドやタッチパネルの動きがおかしくなる件


勘違いしていたことがひとつ。
タッチパッドやタッチパネルの動きが画面の回転にあわせて回転してくれないのは、グラフィックドライバの完成度が低くOSに画面の回転状況を正しく伝えられていないせいだ、と思っていた。
が、どうやら違うらしい。

画面の回転状況を認識してポインティングデバイスからの入力を回転してくれるのはXP Tablet PC Editionの機能の一つでHomeやProなどの無印XPにはそんな機能がないらしい。で、無印XPではポインティングデバイス側のドライバで対処しているようだ。
つまり画面の回転にあわせてタッチパッドやタッチパネルを正しく使いたい場合はXP Tablet PC Editionをインストールしろ、ということになる。

しかし、画面回転時にタッチパネルを使いたいがためだけに18,000円近い金を出してゴミと一緒にDSP版を買いたくはない。ということでDDKのサンプルに入っているmouclassを元に入力を回転させるように修正してみた(本当はフィルタドライバで済ませたかったところなんだけどタッチパッドのドライバが特殊なことしていてかぶせることができなかったので断念)。これを導入することでThe Powerのマウス補正機能を使わなくてもタッチパッドもタッチパネルも画面の回転にあわせて回転してくれるようになる。

ThePowerV1.0.1+MouClass.zip

※今回は人柱上等の人のみ導入してください。また、導入する前にバックアップを取ることをお薦めします。下手をするとWindowsが起動しなくなるかもしれません。なお、私はXP Pro SP3に導入して動作を確認しました。

導入手順


1.Windows File Protection を無効にする。
今回入れ替えるファイルのmouclass.sysはWFPで保護されたファイルなのでまずWFPを無効にする。
私の場合はインストール前にnLiteで無効にしてしまってあったので以下の手順で無効にできるかどうかは不明。下手するとWindowsごと落ちるので注意。

ここからwfp.zipをダウンロードしてきて適当な場所に展開する。ここでは C:\WFP に展開したものとする。
コマンドプロンプトを開き、展開した場所に移動し、無効にするコマンドを実行する。

C:\Documents and Settings\UserName>cd \wfp
C:\WFP>dwfp2.exe winlogon.exe


2009/01/01 修正
Windows File Protection Switcher 1.0を使えば良いようです。コメントを参照してください。tomさんに感謝。

2.オリジナルのドライバファイルをバックアップ。
c:\windows\system32\drivers フォルダの mouclass.sys を同じフォルダにコピーし、mouclass.sys.bk などの名前に変更する。元に戻すときのことを考えて全角や空白などは使わない。

3.mouclass.sysの入れ替え。
zipに入っているmouclass.sysをc:\windows\system32\driversに上書きコピーする。

4.ThePowerの入れ替え。
zipに入っているThePower.exeで上書きコピーする。

5.再起動して完了。


WFPの無効がうまくいかない場合の導入方法


1.オリジナルのドライバファイルをバックアップ。
c:\windows\system32\drivers フォルダの mouclass.sys を同じフォルダにコピーし、mouclass.sys.bk などの名前に変更する。

2.zipに入っているmouclass.sysを名前を変えてc:\windows\system32\drivers\にコピー。
mouclass.sy_などの名前に変更してコピーする。

3.シャットダウンしてXPのインストールCDから起動し、リカバリモードでログインする。

4.mouclass.sysを入れ替える。


c:\Windows>cd \windows\system32\drivers\
c:\Windows\System32\drivers>del mouclass.sys
c:\Windows\System32\drivers>ren mouclass.sy_ mouclass.sys


5.再起動して通常起動する。

6.ThePowerをzipに入っているもので入れ替えて起動しなおせば完了。

元に戻す場合


WFPを無効にして退避してあったmouclass.sys.bkファイルで上書きすれば良い。Windowsが起動しなくて戻せない場合は以下の手順で。

1.シャットダウンしてXPのインストールCDから起動し、リカバリモードでログインする。

2.mouclass.sysを入れ替える。


c:\Windows>cd \windows\system32\drivers\
c:\Windows\System32\drivers>del mouclass.sys
c:\Windows\System32\drivers>copy mouclass.sys.bk mouclass.sys


3.再起動して通常起動する。


以上。ThePowerのマウス補正機能をオフにするのを忘れずに。

1 件のコメント:

tom さんのコメント...

できました。重ね重ね感謝です。
報告です。
wfp無効化の手順ですが、コマンドプロンプトからの入力ですと再起動が起こりできませんでした。
私の場合
http://ruffnex.oc.to/kenji/text/wfp/
にあるWindows File Protection Switcher 1.0
を使い無効化しました。