`

使用C#: 自动切换鼠标的左右手习惯

阅读更多

不知道我得的是鼠标手,还是肩周炎。

长时间右手(或者左手)使用鼠标的话,那只胳膊便会不自在。

于是便有了切换鼠标主次要键的需求。

 

【控制面板->鼠标】有更改它的设置,可点来点去让我觉得不够方便。

我需要的是“一个命令就能搞定它”,这样我就可以在命令行,或者程序加载器里面方便的运行他。

 

下面的代码便是要实现这一需求:

他是一个命令行程序。如果当前鼠标是右手习惯,则将鼠标习惯设置为左手,反之设置成右手习惯。

 

实现代码如下:

 

using System;
using System.Runtime.InteropServices;
using Microsoft.Win32;

namespace SwapMouseModel
{
    class Program
    {
        [DllImport("user32")]
        public static extern int SwapMouseButton(int bSwap);

        [DllImport("user32")]
        public static extern int GetSystemMetrics(int nIndex);

        //public readonly static int SM_SWAPBUTTON = 23;
        public const int SM_SWAPBUTTON = 23;

        public static void Main(string[] args)
        {

            var key = Registry.CurrentUser.CreateSubKey("Control Panel\\Mouse\\");
            

            if (GetSystemMetrics(SM_SWAPBUTTON) == 0)
            {
                //case: right hand model, change to left hand model.
                SwapMouseButton(1);
                key.SetValue("SwapMouseButtons", "1", RegistryValueKind.String);
            }
            else
            {
                //case: left hand model, change to right hand model.
                SwapMouseButton(0);
                key.SetValue("SwapMouseButtons", 0, RegistryValueKind.String);
            }
            Console.WriteLine("end");
            //Console.ReadLine();
        }
    }
}
 

 

 

总结下对C#新认识:

 

1. static与const不能同时修饰一个变量

    类成员是const就自动是static。因此或者只用const, 或者可以用readonly static

2. SwapMouseButton Function

    通过该链接可以展开查看“windows关于mouse”的api。

    另外注意,该方法不会修改注册表。所以为了重启后修改依然有效,需要另行保存注册表设置。

3. GetSystemMetrics Function

    通过该链接可以展开查看如何获得“其他类似的属性”

4. C#中可以使用var。

 

Google到的参考链接:

http://www.theeldergeek.com/forum/lofiversion/index.php?t10400.html

http://stackoverflow.com/questions/653911/swapping-left-and-right-mouse-button-in-net

 

 

 

分享到:
评论
1 楼 wjason 2009-08-03  
重启了一回不好用,
看来还需要修改注册表。
明天补上代码。

相关推荐

    C#鼠标自动点击助手源码

    通过分析这个"C#鼠标自动点击助手源码"项目,我们可以学习到如何在C#中利用事件处理、API调用、定时器以及用户交互等技术实现自动化功能,这对于提升编程技能和理解系统底层工作原理都非常有帮助。同时,这样的项目...

    一键切换鼠标左右键以及指针样式

    右手鼠标用久了,用累了的话,切换左手鼠标来缓解一下鼠标手,本来切换需要上控制面板切换鼠标左右键又得改鼠标指针方案,来回这么改太麻烦了,而现有的切换鼠标工具只能切换鼠标左右键,所以就用c#写了这个工具,用...

    C#中英文切换

    在C#编程中,实现应用程序的中英文切换是一项常见的需求,尤其对于面向国际市场的软件来说。这个过程涉及到本地化和国际化( Localization and Internationalization,简称L10n和i18n),使得软件能够适应不同地区的...

    C#鼠标自动点击器C#鼠标自动点击器

    以上就是"C#鼠标自动点击器"的一些核心技术和知识点,对于想要深入学习C#编程和系统级交互的开发者来说,这是一个很好的实践项目。通过这样的工具,不仅可以掌握C#编程,还能了解到Windows API调用、多线程编程以及...

    C#切换鼠标左右键习惯无需控制面板中修改

    描述中提到的“左手使用鼠标”和“同事临时操作”是问题的背景,即作者习惯使用左手操作鼠标,但当同事需要用右手操作时,需要在控制面板中进行设置,这给日常的工作带来了不便。为了解决这个问题,作者编写了一个...

    懒人鼠标自动点击(附c#源代码)

    描述中提到,“C#写的鼠标点击器,可以实现3个点的自动切换和左右键单双击等功能”,这表明该程序具备以下功能: 1. **多点切换**:用户可以预先设定三个不同的点击位置,程序会按照预设顺序在这些位置间自动切换...

    C#_WinForm鼠标自动点击程序

    本文将深入探讨如何利用C# WinForm开发一个鼠标自动点击程序,它类似于按键精灵,可以实现自动鼠标点击,提升用户在执行重复任务时的工作效率。 首先,我们要理解C# WinForm的基础。C#是微软推出的一种面向对象的...

    C#中英文切换,实现菜单,工具栏,按钮等控件的中英文切换

    本文将详细讲解如何实现C#应用程序中菜单、工具栏和按钮等控件的中英文切换功能。 首先,我们需要理解Winform中的本地化(Localization)概念。本地化是使软件适应特定文化、地区或法律要求的过程。在C#中,我们...

    C# winfrom 图片切换特效

    "C# winfrom 图片切换特效"这个主题涵盖了如何在C# Winform程序中动态地、有特效地切换图片,例如水平(垂直)百叶窗效果和上下(左右)翻转效果。 首先,我们需要理解Winform中的PictureBox控件,它是用来显示图像...

    C# 鼠标左右键自动点击(剑灵力士卡刀辅助)源代码+编译好的EXE文件

    【标题】"C# 鼠标左右键自动点击(剑灵力士卡刀辅助)源代码+编译好的EXE文件"所涉及的知识点主要包括以下几个方面: 1. **C#编程语言**:C#是一种面向对象的编程语言,由微软开发,用于构建Windows平台的应用程序。...

    C#鼠标自动点击软件

    在C#中,可以使用System.Windows.Forms命名空间下的Cursor类和Control类来获取或设置鼠标的当前位置,使用SendKeys类模拟键盘输入,配合定时器控件实现定时点击。 "源代码"的提供对于学习者来说是一大福音,他们...

    C#编写的模拟鼠标点击和移动操作源码

    在编程领域,有时候我们需要模拟用户的鼠标行为,例如在自动化测试、游戏挂机或者用户界面自动化中。本资源提供了一个使用C#编写的源码,专门用于模拟鼠标点击和移动的操作。下面将详细介绍这个主题,以及如何利用C#...

    C# 实现鼠标自动点击功能

    开发平台:VS2008 实现功能: 记录鼠标点击次数 ...设置鼠标位置可以控制鼠标指定点击一个位置(慎用,设置的鼠标位置不是停止按钮处会导致程序无法停止,解决办法将停止按钮绑定快捷键,本人懒没有做)

    c#多语言切换

    总的来说,实现C#应用的多语言切换涉及资源文件的创建、`ResourceManager`的使用、UI元素的绑定以及根据用户选择动态切换语言。通过学习和实践这个"C#多语言切换"的demo,开发者能够掌握这一关键技能,为构建支持...

    C# 虚拟鼠标驱动源码

    在本案例中,"C# 虚拟鼠标驱动源码" 提供了使用C#语言实现虚拟鼠标驱动的源代码。这种技术有着广泛的应用场景,例如自动化测试、远程控制、游戏辅助以及无障碍软件等。 首先,我们需要理解C#语言。C#是由微软开发的...

    C# 带鼠标屏幕截图

    在C#编程中,开发人员经常需要实现屏幕截图功能,特别是在构建桌面应用或者自动化测试工具时。"C# 带鼠标屏幕截图"这个主题主要关注如何在截取屏幕图像时同时包含鼠标指针的显示。传统的C#图形(Graphics)类虽然...

    C# 鼠标点击器 C#C#

    【C# 鼠标点击器】是一种编程工具,它使用C#语言开发,能够模拟用户的鼠标动作,实现自动点击鼠标的左右键功能。在软件开发、自动化测试、游戏挂机等场景中,这种工具非常实用,能节省大量手动操作的时间。 在C#中...

    C#绝对实用的鼠标自动点击器

    同时,通过实践这个项目,他们还能了解到如何在C#中使用定时器,处理鼠标事件,以及进行GUI界面的设计。总的来说,"C#绝对实用的鼠标自动点击器"是一个极好的学习和实践案例,对于提升编程技能大有裨益。

    C#程序鼠标自动点击桌面源码

    3. **鼠标事件模拟**:在C#中,可以使用`User32.dll`库中的API函数,如`SendInput`,来模拟鼠标的点击动作。`SendInput`函数可以发送鼠标输入事件,包括左键单击、右键单击以及双击等。 4. **多线程编程**:为了不...

    C# Net Winform窗口特效 C# winform 实现 qq 在屏幕边缘 自动隐藏 鼠标移过去 移上去 又自动显示

    C# winform 实现 qq 在屏幕边缘 自动隐藏 鼠标移过去 移上去 又 再 自动显示 附件是一个类class文件,只要靠到form同一目录下, 然后再自己的cs代码中加几行代码 调用就可以了。很简单。 C# Net Winform窗口特效 ...

Global site tag (gtag.js) - Google Analytics