neymar1107 Ответов: 2

Как Я Могу Найти Скорость Мыши В C#


Как я могу найти скорость мыши в c#
мне нужна моя скорость мыши в C#, пожалуйста, помогите мне .

Richard MacCutchan

Скорость мыши зависит от ловкости пользователя.

SoMad

:-D хороший.

BillWoodruff

Вы понимаете, как измеряется скорость мыши ?

"Скорость мыши определяет, как далеко будет двигаться указатель, основываясь на расстоянии, которое перемещает мышь. Параметр pvParam должен указывать на целое число, которое получает значение в диапазоне от 1 (самый медленный) до 20 (самый быстрый). По умолчанию используется значение 10. Это значение может быть задано конечным пользователем с помощью приложения панели управления мышью или приложением, использующим SPI_SETMOUSESPEED."

http://msdn.microsoft.com/en-us/library/windows/desktop/ms724947(v=против 85).aspx

2 Ответов

Рейтинг:
19

KumarSundeep

Вы можете найти это в пространстве имен System.Runtime.InteropServices. Ниже приведен код демонстрации для управления скоростью мыши в C#:

using System;
using System.Runtime.InteropServices;

namespace MouseSpeedSwitcher
{
    class Program
    {
        public const UInt32 SPI_SETMOUSESPEED = 0x0071;

        [DllImport("User32.dll")]
        static extern Boolean SystemParametersInfo(
            UInt32 uiAction,
            UInt32 uiParam,
            UInt32 pvParam,
            UInt32 fWinIni);

        static void Main(string[] args)
        {
            SystemParametersInfo(
                SPI_SETMOUSESPEED,
                0,
                uint.Parse(args[0]),
                0);
        }
    }
}


neymar1107

не могли бы вы мне помочь, как я могу сохранить его на int number .

BillWoodruff

+4 отличное начало для ответа на вопрос ОП. Просто добавьте показ, как использовать SPI_GETMOUSESPEED, чтобы получить текущую настройку скорости мыши, и у вас есть мои 5 :)

Рейтинг:
0

Member 11278731

using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;


namespace ConsoleApplication1
{
    class Program
    {
        public const UInt32 SPI_GETMOUSESPEED = 0x0070;


        const UInt32 SPIF_UPDATEINIFILE = 0x01;
        const UInt32 SPIF_SENDWININICHANGE = 0x02;

        [DllImport("User32.dll")]
        static extern Boolean SystemParametersInfo(
            UInt32 uiAction,
            UInt32 uiParam,
            IntPtr pvParam,
            UInt32 fWinIni);
        
        static unsafe void Main(string[] args)
        {
         /*   int speed;
            SystemParametersInfo(SPI_GETMOUSESPEED, 0, new IntPtr(&speed), 0);
            Console.WriteLine(speed);

            */

           MouseOptions m = new MouseOptions();

            MouseOptions.GetDefaults();
            int speed;
            SystemParametersInfo(SPI_GETMOUSESPEED, 0, new IntPtr(&speed), 0);
            Console.WriteLine(speed);

            MouseOptions.SetDefaults();


            SystemParametersInfo(SPI_GETMOUSESPEED, 0, new IntPtr(&speed), 0);
            Console.WriteLine(speed);
            

            Console.ReadLine();
        }



        public class MouseOptions
        {
            [DllImport("user32.dll")]
            public static extern int SystemParametersInfo( int uAction, int uParam, IntPtr lpvParam, int fuWinIni );

            [DllImport("kernel32.dll")]
            public static extern int GetLastError();
     
            public const int SPI_GETMOUSESPEED = 112;
            public const int SPI_SETMOUSESPEED = 113;


            private static int intDefaulSpeed = 10;
            private static int intCurrentSpeed;
            private static int intNewSpeed;

            public static void GetDefaults()
            {
                intCurrentSpeed = GetMouseSpeed();
            }
            public static void SetDefaults()
            {
                if ( intCurrentSpeed == 20 )
                {
                    SetMouseSpeed(intDefaulSpeed); 
                }
                else if ( intCurrentSpeed < 10 )
                {
                    SetMouseSpeed(intDefaulSpeed);   
                }
            }

            public static int GetMouseSpeed()
            {
                int intSpeed = 0;
                IntPtr ptr;
                ptr = Marshal.AllocCoTaskMem(4);
                SystemParametersInfo(SPI_GETMOUSESPEED, 0, ptr, 0);
                intSpeed = Marshal.ReadInt32(ptr);
                Marshal.FreeCoTaskMem(ptr);

                return intSpeed;
            }

            public static void SetMouseSpeed( int intSpeed )
            {
                IntPtr ptr = new IntPtr(intSpeed);

                int b = SystemParametersInfo(SPI_SETMOUSESPEED, 0, ptr, 0);

                if (b == 0)
                {
                    Console.WriteLine("False");
                }
                else if ( b == 1 )
                {
                    Console.WriteLine("true");
                }

            }
            
        }


    }

}


CHill60

Вопрос был задан и решение принято 4 года назад. Если вы собираетесь отвечать на старые сообщения (а я предлагаю вам этого не делать), то убедитесь, что вы привносите что-то новое в поток (а это не так) и что вы объясняете свое решение. Не просто сбрасывайте код.