SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

VB.NETによるマウス設定の変更

マウスポインタの影を有効にする

 ここでも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

次のページ
入力中にカーソルを非表示にする設定をアクティブにする

この記事は参考になりましたか?

japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Hannes du Preez(Hannes du Preez)

プログラミングトレーナー。プログラミングを最大の趣味とする。Visual Basic 5からプログラミングを始め、Visual Basic 6.0、Visual C++ 6.0、Visual Basic .NETでアプリケーションを開発。プログラミングの知識はすべて独学によるもので、CodeGuru...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3465 2009/02/16 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー