ダブルクリックの速度を変更する
ダブルクリックの速度を取得するには、HKEY_CURRENT_USER¥Control Panel¥Mouse内のDoubleClickSpeed設定を問い合わせます。ダブルクリックの速度を変更するには、そこに値を書き込みます。
Private Sub btnGetDoubleClickSpeed_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnGetDoubleClickSpeed.Click 'Open Registry Key Dim NewKey As RegistryKey = _ Registry.CurrentUser.OpenSubKey("Control Panel¥¥Mouse", True) 'Get Value Dim GetVal As String = _ CType(NewKey.GetValue("DoubleClickSpeed"), String) 'Update Appropriate TextBox Display txtDoubleClickSpeed.Text = GetVal End Sub Private Sub btnChangeDoubleClickSpeed_Click(ByVal sender _ As System.Object, _ ByVal e As System.EventArgs) Handles btnChangeDoubleClickSpeed.Click 'Open Registry Key Dim NewKey As RegistryKey = _ Registry.CurrentUser.OpenSubKey("Control Panel¥¥Mouse", True) 'Set Double-Click Speed NewKey.SetValue("DoubleClickSpeed", txtDoubleClickSpeed.Text) 'Max (Fastest) = 200 'Min (Slowest) = 900 End Sub
DoubleClickSpeedとして有効な値の範囲は200(最速)~900(最遅)です。
クリックロックを適用する
これは少し注意を要する箇所です。クリックロックをオンにするには、HKEY_CURRENT_USER¥Control Panel¥Desktop内のUserPreferencesMask設定を変更する必要があります。少し注意を要すると言ったのは、この設定がバイナリ値を扱うものだからです。したがって、設定値を問い合わせるには、この値の列を適切にキャストする必要があります。また、値を設定するには、適切なバイナリ列を正しいキャスト値に変更する必要があります。これは次のようにして行います。
Private Sub btnGetClickLock_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnGetClickLock.Click 'Open Registry Key Dim NewKey As RegistryKey = _ Registry.CurrentUser.OpenSubKey("Control Panel¥¥Desktop", True) 'Check Type Of Value In UserPreferencesMask If NewKey.GetValueKind("UserPreferencesMask") = _ RegistryValueKind.Binary Then 'Get Current Value Dim data As Byte() = _ DirectCast(NewKey.GetValue("UserPreferencesMask"), Byte()) If data(1) = 190 Then 'Click Lock Active? chkClickLock.Checked = True 'Update Display Else chkClickLock.Checked = False End If End If End Sub 'Open Registry Key Private Sub btnChangeClickLock_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnChangeClickLock.Click Dim NewKey As RegistryKey = _ Registry.CurrentUser.OpenSubKey("Control Panel¥¥Desktop", True) 'Check Type Of Value In UserPreferencesMask If NewKey.GetValueKind("UserPreferencesMask") = _ RegistryValueKind.Binary Then 'Get Current Value Dim data As Byte() = _ DirectCast(NewKey.GetValue("UserPreferencesMask"), Byte()) data(1) = 190 ' Activate Click Lock NewKey.SetValue("UserPreferencesMask", data) 'Update Registry End If End Sub
マウスポインタの軌跡を変更する
Control Panel¥Mouseサブキーの下のMouseTrails設定が設定されているかどうかを調べ、その値を利用する必要があります。これを変更するには、次のようにして2(最短)~7(最長)の範囲の値を与える必要があります。
Private Sub btnGetMouseTrails_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnGetMouseTrails.Click 'Open Registry Key Dim NewKey As RegistryKey = _ Registry.CurrentUser.OpenSubKey("Control Panel¥¥Mouse", True) 'Check For Values If Not NewKey.GetValue("MouseTrails") = _ String.Empty AndAlso NewKey.GetValue("MouseTrails") > 0 Then 'Get Setting Dim GetVal As String = CType(NewKey.GetValue("MouseTrails"), String) chkMouseTrails.Checked = True 'Update Display txtMouseTrails.Text = GetVal End If End Sub Private Sub btnChangeMouseTrails_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnChangeMouseTrails.Click 'Open Registry Key Dim NewKey As RegistryKey = _ Registry.CurrentUser.OpenSubKey("Control Panel¥¥Mouse", True) 'Activate Mouse Trails & Length Of Trails If chkMouseTrails.Checked Then _ NewKey.SetValue("MouseTrails", txtMouseTrails.Text) 'Max = 7 'Min = 2 End Sub
