• ベストアンサー

レジストリの設定をすぐに反映させたい

Windows XP で VBScript を使っています。 たとえば、次のスクリプトを実行します。 Set WshShell = CreateObject("WScript.Shell") Call WshShell.RegWrite("HKCU\Control Panel\Mouse\MouseSensitivity", "20", "REG_SZ") その後レジストリエディタで確認したところ、値は問題なく変更されていたのですが、再ログオンしないとマウスの移動速度には反映されないようです。 これを即時反映される方法はありますか。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

コントロールパネルの関係は、VBスクリプトに限らず、手でレジストリを変更しても、即座に変更値の情報がWindowsの動作には反映されません。 WM_WININICHANGEをWiindowsに投げて、初めてWindowsの[レジストリ]or[Win.ini]に変更があったことを認識します。 こういうポストができないスクリプトでは、到底「即時反映の実現」は皆無だと思います。 スクリプトではなく、コンパイルされた通常(C/VB/Delphiなどなど...)のExe形式のプログラムで、コントロールパネル系の設定値を変更する場合は、SystemParametersInfoというAPIによって、レジストリやWin.iniの読書きを行うのが、王道な方法であり、それ以外の方法は個人的には知りません。 (もし、これ以外の方法があれば、逆に知りたいです。)

KanjiTalk
質問者

お礼

なるほど、やはりスクリプトでは限界があるんですね。ありがとうございました。

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4900/10361)
回答No.1

レジストリというより、ドライバがどのタイミングでレジストリを参照するかという問題だと思います。 ドライバの更新とか、削除&再インストールはどうでしょうか。 ドライバのつくりによっては、USBマウスなら一度抜き差しすると反映されるかも。

KanjiTalk
質問者

補足

>USBマウスなら一度抜き差しすると反映されるかも。 私の使っているサンワ MA-LSIHPR ではダメみたいです。 マウスコントロールパネルは即時反映されるようですが、 やはりドライバによって方法が違うのでしょうか。

関連するQ&A