マウスポインタの影を有効にする
ここでもUserPreferencesMaskバイナリ設定を使用する必要があります。値62はマウスポインタの影がアクティブであることを意味し、値30はマウスポインタの影が非アクティブであることを意味します。コードは次のようになります。
Private Sub btnGetPointerShadow_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnGetPointerShadow.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) = 62 Then 'Pointer Shadow Active? chkPointerShadow.Checked = True ElseIf data(1) = 30 Then 'Pointer Shadow Inactive? chkPointerShadow.Checked = False End If End If End Sub Private Sub btnChangePointerShadow_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnChangePointerShadow.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()) data(1) = 62 'Set To 62 ( Activate Pointer Shadow ) NewKey.SetValue("UserPreferencesMask", data) 'Update Registry End If End Sub
マウスポインタの速度を変更する
これはControl Panel¥Mouseサブキーの下のMouseSpeed設定を使って次のように行います。
Private Sub btnGetMouseSpeed_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnGetMouseSpeed.Click 'Open Registry Key Dim NewKey As RegistryKey = _ Registry.CurrentUser.OpenSubKey("Control Panel¥¥Mouse", True) 'Get Current Value Dim GetVal As String = CType(NewKey.GetValue("MouseSpeed"), String) txtMouseSpeed.Text = GetVal 'Update Appropriate TextBox Display End Sub Private Sub btnChangeMouseSpeed_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnChangeMouseSpeed.Click 'Open Registry Key Dim NewKey As RegistryKey = _ Registry.CurrentUser.OpenSubKey("Control Panel¥¥Mouse", True) 'Specify & Activate Mouse Speed NewKey.SetValue("MouseSpeed", txtMouseSpeed.Text) 'Max (Fastest) = 20 'Min (Slowest) = 0 End Sub
有効な値の範囲は0(最遅)~20(最速)です。
既定のボタンに移動する
0または1が含まれる変数を作成し、その値を取得または適切に設定する必要があります。
Private SnapTo As Integer 'Snap To, Yes/No
既定のボタンに移動するチェックボックスのCheckedChangedイベントで、これがチェックされたときにSnapToプライベート変数が1になり、そうでないときに0になるようにします。
Private Sub chkSnapToDefault_CheckedChanged(ByVal sender _ As System.Object, _ ByVal e As System.EventArgs) Handles chkSnapToDefault.CheckedChanged If chkSnapToDefault.Checked Then 'Activate/Deactivate SnapTo = 1 Else SnapTo = 0 End If End Sub Private Sub btnGetSnapToDefault_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnGetSnapToDefault.Click 'Open Registry Key Dim NewKey As RegistryKey = _ Registry.CurrentUser.OpenSubKey("Control Panel¥¥Mouse", True) 'Get Current Value Dim GetVal As String = _ CType(NewKey.GetValue("SnapToDefaultButton"), String) Select Case GetVal Case "0" 'Inactive SnapTo chkSnapToDefault.Checked = False Case "1" 'Active SnapTo chkSnapToDefault.Checked = True End Select End Sub Private Sub btnChangeSnapToDefault_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnChangeSnapToDefault.Click 'Open Registry Key Dim NewKey As RegistryKey = _ Registry.CurrentUser.OpenSubKey("Control Panel¥¥Mouse", True) 'Activate SnapTo Default Button NewKey.SetValue("SnapToDefaultButton", SnapTo.ToString) End Sub
Ctrlキーを押すとポインタの位置を表示する設定をアクティブにする
この設定をアクティブにしたり取得したりするには次のようにします。
Private Sub btngetPointerLoc_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btngetPointerLoc.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 The Current Setting Dim data As Byte() = _ DirectCast(NewKey.GetValue("UserPreferencesMask"), Byte()) 'Pointer Location When CTRL Is Pressed Active? If data(1) = 126 Then chkPointerLoc.Checked = True 'Update Display Else chkPointerLoc.Checked = False End If End If End Sub Private Sub btnChangePointerLoc_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnChangePointerLoc.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 The Current Setting Dim data As Byte() = _ DirectCast(NewKey.GetValue("UserPreferencesMask"), Byte()) 'Activate Pointer Location When CTRL Is Pressed Setting data(1) = 126 NewKey.SetValue("UserPreferencesMask", data) 'Update Registry End If End Sub
