使用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
通过该链接可以展开查看“windows关于mouse”的api。
另外注意,该方法不会修改注册表。所以为了重启后修改依然有效,需要另行保存注册表设置。
通过该链接可以展开查看如何获得“其他类似的属性”
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
使用C#: 自动切换鼠标的左右手习惯的更多相关文章
- JavaScript、tabel切换完整版—自动切换—鼠标移入停止-移开运行
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- bootstrap tab切换如何让鼠标移动自动切换内容
bootstrap集成了很多功能,比如nav-tabs组件,可以将相似的内容集中在一个区块中展示.bootstrap tab切换默认是要点击才会切换的,如何实现鼠标移动就自动切换呢?如下图所示,光标移 ...
- HTML+JS+DOM【选项卡自动切换】
最终效果图(鼠标无操作会自动切换选项卡): <!DOCTYPE html> <html> <head> <meta charset="gb2312& ...
- 【温故而知新-Javascript】图片效果(图像震动效果、闪烁效果、自动切换图像)
1.当鼠标指针经过图像时图像震动效果 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...
- 页面多语系自动切换-.resx
实现这个需要应用到微软提供的本地资源文件Resources,实际上就是一种key value的形式. 语言自动切换原理有两种 读取浏览器的语言首选项 根据IP网段进行识别.比如有的人通过VPN连接到 ...
- tabs自动切换功能的实现
<html><head><!-- Bootstrap 核心 CSS 文件 --> <link rel="stylesheet" href= ...
- html+css+jQuery+JavaScript实现tab自动切换功能
tab1.html内容 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> & ...
- jquery 图片自动切换
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- JQury自动切换图片
[标签]Jquery图片自动切换<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "ht ...
随机推荐
- [转] C#实现自动化Log日志
qing2005原文地址 C#实现自动化Log日志 在开发项目的时候,我们不免要使用Log记录日志,使用最多的是Log4Net和EntLib Log,在需要记录日志的代码处加入log.Write(日志 ...
- 《Python 学习手册4th》 第四章 介绍Python对象类型
''' 时间: 9月5日 - 9月30日 要求: 1. 书本内容总结归纳,整理在博客园笔记上传 2. 完成所有课后习题 注:“#” 后加的是备注内容(每天看42页内容,可以保证月底看完此书) ''' ...
- 软件测试技术(三)——使用因果图法进行的UI测试
目标程序 较上次增加两个相同的输入框 使用方法介绍 因果图法 在Introduction to Software Testing by Paul一书中,将软件测试的覆盖标准划分为四类,logical ...
- 【Linux学习】 包含子目录的makefile简单应用
1 .目录结构 practice6 / ui / ui.h ui.c practice6 / dal / dal.h dal.c practice6 / bll / bll.h bll.c pr ...
- 基于51,人体红外感应和RC522的门禁系统
总结一下最近学的东西,这两天学的东西,rfid门卡系统终于弄出来来了,这个程序算现在写过的比较满意的程序,大家可以参考参考 主函数: #include<reg52.h> #include& ...
- 使用JSP处理用户注册和登陆
1. 这是一个JSP实例,由四个JSP页面组成,处理用户的注册和登陆信息2. 首先是login.jsp,代码如下:<html><center><form method=g ...
- 【跟我一起学Python吧】Python的包管理工具
刚开始学习Python时,在看文档和别人的blog介绍安装包有的用easy_install, setuptools, 有的使用pip,distribute,那麽这几个工具有什么关系呢,看一下下面这个图 ...
- Java——观察者模式实例
观察者模式(订阅/发布模式) 作者: 代码大湿 代码大湿 Java中观察者模式中主要是Observerable类(被观察者),和Observer接口(观察者).下面是个简单的demo //被观察者 p ...
- Running a Remote Desktop on a Windows Azure Linux VM (远程桌面到Windows Azure Linux )-摘自网络(试了,没成功 - -!)
A complete click-by-click, step-by-step video of this article is available ...
- WebService学习之三:spring+cxf整合
步骤一:spring项目(java web项目)引入CXF jar包 步骤二:创建webservice服务器 1)创建一个服务接口 package com.buss.app.login; import ...