アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

よろしくお願いします。

A 回答 (2件)

コントロールパネルの関係は、VBスクリプトに限らず、手でレジストリを変更しても、即座に変更値の情報がWindowsの動作には反映されません。



WM_WININICHANGEをWiindowsに投げて、初めてWindowsの[レジストリ]or[Win.ini]に変更があったことを認識します。
こういうポストができないスクリプトでは、到底「即時反映の実現」は皆無だと思います。

スクリプトではなく、コンパイルされた通常(C/VB/Delphiなどなど...)のExe形式のプログラムで、コントロールパネル系の設定値を変更する場合は、SystemParametersInfoというAPIによって、レジストリやWin.iniの読書きを行うのが、王道な方法であり、それ以外の方法は個人的には知りません。
(もし、これ以外の方法があれば、逆に知りたいです。)
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/11/26 17:50

レジストリというより、ドライバがどのタイミングでレジストリを参照するかという問題だと思います。


ドライバの更新とか、削除&再インストールはどうでしょうか。
ドライバのつくりによっては、USBマウスなら一度抜き差しすると反映されるかも。

この回答への補足

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

補足日時:2006/11/13 10:26
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています