使用C#从Windows 8读取手性设置

时间:2016-01-25 16:15:43

标签: c# windows

在Windows 8上,我试图确定鼠标使用C#的手性。换句话说,我正在尝试阅读此设置:

  

控制面板\硬件和声音\鼠标 - >切换主要和次要   的按钮。

我尝试过使用WMI,但没有运气。无论我使用什么鼠标,用手属性值总是为空。

# app/config/config_frontend.yml
imports:
    - { resource: config.yml }

twig:
    cache: false

还有其他方法可以完成这项任务吗?

1 个答案:

答案 0 :(得分:4)

我发现在user32.dll上公开的GetSystemMetrics可用于返回您搜索的交换鼠标按钮数据。以下是一些引用和快速控制台应用程序一起进行测试。第3个链接包含一些关于如何在C#中使用GetSystemMetrics的“官方”示例。

GetSystemMetrics

Wrong way to detect swapped mouse

Reference for constants, etc

using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
namespace ConsoleApplication2
{

    class Program
    {
        [DllImport("user32.dll")]
        public static extern Int32 GetSystemMetrics(Int32 bSwap);

        static void Main(string[] args)
        {
            //normally you would make this as a constant:
            int SM_SWAPBUTTON = 23;

            int isLeftHanded = GetSystemMetrics(SM_SWAPBUTTON);
            //0 means not swapped, 1 means swapped (left handedness?)

        }
    }
}