ダウンロード ソースファイル (136.6 KB)
入力中にカーソルを非表示にする設定をアクティブにする
Private Sub btnGetHidePointer_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnGetHidePointer.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()) If data(2) = 7 Then 'Hide Pointer Active? chkHidePointer.Checked = True ElseIf data(2) = 6 Then 'Hide Pointer When Inactive chkHidePointer.Checked = False End If End If End Sub Private Sub btnChangeHidePointer_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnChangeHidePointer.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()) data(2) = 7 'Set To 7 ( Activate Hide Pointer While Typing ) NewKey.SetValue("UserPreferencesMask", data) 'Update Registry End If End Sub
システムカーソルを読み込む
次の関数をフォームに追加します。
Private Function CursorList() As Cursor() ' Array Of All Cursors In Windows Forms. Return New Cursor() {Cursors.AppStarting, Cursors.Arrow, _ Cursors.Cross, Cursors.Default, Cursors.Hand, Cursors.Help, _ Cursors.HSplit, Cursors.IBeam, Cursors.No, _ Cursors.NoMove2D, Cursors.NoMoveHoriz, Cursors.NoMoveVert, _ Cursors.PanEast, Cursors.PanNE, Cursors.PanNorth, _ Cursors.PanNW, Cursors.PanSE, Cursors.PanSouth, _ Cursors.PanSW, Cursors.PanWest, Cursors.SizeAll, _ Cursors.SizeNESW, Cursors.SizeNS, Cursors.SizeNWSE, _ Cursors.SizeWE, Cursors.UpArrow, Cursors.VSplit, Cursors.WaitCursor} End Function
この関数の目的は、使用可能な全カーソルのリストを作成することです。そこからForループを使ってカーソルコンボボックスにそれらのカーソルを読み込むことができます。
Private Sub frmMouseSettings_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load Dim MouseCursor As Cursor 'Create Cursor Object For Each MouseCursor In CursorList() 'Loop Through Each Cursor cboMousePointers.Items.Add(MouseCursor) 'Add to comboBox Next MouseCursor End Sub
選択されたカーソルを適用する
Private Sub cboMousePointers_SelectedIndexChanged(ByVal sender _ As System.Object, ByVal e As System.EventArgs) _ Handles cboMousePointers.SelectedIndexChanged 'Change Cursor To Seledcted Cursor Me.Cursor = CType(cboMousePointers.SelectedItem, Cursor) End Sub
これは選択されたカーソルをフォームに適用するだけです。システムレベルで設定するには、SetCursorというAPIが必要です。
これらの設定がすべて自動的に適用されることを期待するかもしれませんが、残念ながらそうはいきません。コンピュータを再起動しないと、変更した設定は有効になりません。これらの設定をすぐに適用するには、explorer.exeを再起動しなければなりません。そのためには、SendMessageTimeout APIを使用する必要があります。時間的な制約により、これについては今回は説明しませんが、タスクバーの設定を扱う次回の記事を見てください。
まとめ
マウス設定の話はこれで終わりです。この記事は参考になったでしょうか。またお会いしましょう。
この記事は参考になりましたか?
既に会員の方はを行ってください。
- japan.internet.com翻訳記事連載記事一覧
- この記事の著者
-
japan.internet.com(ジャパンインターネットコム)
japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.com や EarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
Hannes du Preez(Hannes du Preez)
プログラミングトレーナー。プログラミングを最大の趣味とする。Visual Basic 5からプログラミングを始め、Visual Basic 6.0、Visual C++ 6.0、Visual Basic .NETでアプリケーションを開発。プログラミングの知識はすべて独学によるもので、CodeGuru...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
