マウスポインタの移動速度取得と設定          <TOP>


マウスポインタの移動速度取得と設定を実行します。

SystemParametersInfo システム全体に関するパラメータを取得・設定

SPI_GETMOUSESPEED(112) マウスポインタのスピードを取得
SPI_SETMOUSESPEED(113) マウスポインタのスピードを設定
SPIF_SENDWININICHANGE(&H2) 全てのアプリケーションに通知して更新
SPIF_UPDATEINIFILE(&H1) ユーザープロファイルの更新を指定
 

 

'================================================================
'= マウスポインタの移動速度取得と設定
'=    (MouseSpeed.bas)
'================================================================
#include "Windows.bi"

' システム全体に関するパラメータを取得・設定
Declare Function Api_SystemParametersInfo& Lib "user32" Alias "SystemParametersInfoA" (ByVal uiAction&, ByVal uiParam&, pvParam As Any, ByVal fWinIni&)

#define SPI_GETMOUSESPEED 112           'マウスポインタのスピードを取得
#define SPI_SETMOUSESPEED 113           'マウスポインタのスピードを設定
#define SPIF_SENDWININICHANGE &H2       '全てのアプリケーションに通知して更新する
#define SPIF_UPDATEINIFILE &H1          'ユーザープロファイルの更新を指定する定数の宣言

Var Shared Text1 As Object
Var Shared Edit1 As Object
Var Shared Button1 As Object
Var Shared Button2 As Object

Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 14
Edit1.Attach GetDlgItem("Edit1") : Edit1.SetFontSize 14
Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14
Button2.Attach GetDlgItem("Button2") : Button2.SetFontSize 14

'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var Speed As Long
    Var Ret As Long

    'ポインタの移動速度を取得
    Ret = Api_SystemParametersInfo(SPI_GETMOUSESPEED, 0, Speed, 0)

    'ポインタの移動速度を表示
    Text1.SetWindowText Str$(Speed)
End Sub

'================================================================
'=
'================================================================
Declare Sub Button2_on edecl ()
Sub Button2_on()
    Var Speed As Long
    Var Ret As Long

    Speed = Val(Edit1.GetWindowText)
    If Speed < 1 Or Speed > 20 Then
        A% = MessageBox("", "設定範囲:1〜20", 0, 2)
        Exit Sub
    End If

    'ポインタの移動速度を設定
    Ret = Api_SystemParametersInfo(SPI_SETMOUSESPEED, 0, ByVal Speed, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)
End Sub

'================================================================
'=
'================================================================
Declare Sub Edit1_Change edecl ()
Sub Edit1_Change()
    Text1.SetWindowText ""
End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End