Guys, j'ai une application C# Winforms avec un panneau à l'intérieur du formulaire. Ce que je veux faire est, chaque fois que le pointeur de la souris entre dans ce panneau, je veux ralentir la vitesse de déplacement de la souris de 50%. Une fois que le pointeur se déplace en dehors de ce panneau, je veux que la vitesse de la souris reprenne sa vitesse normale à 100%. Comment puis-je accomplir cela en C#?Vitesse changeante de la souris
4
A
Répondre
3
This article pourrait aider
Voici le code de l'article:
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);
}
}
}
0
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)
{
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("Not able to set speed");
}
else if (b == 1)
{
Console.WriteLine("Successfully done");
}
}
}
}
}
Questions connexes
- 1. vitesse de suivi de la souris Javascript
- 2. Vitesse de défilement avec la position de la souris
- 3. Java - Comment changer la vitesse de la souris dans Windows
- 4. Boucle et variable changeante
- 5. Comment injecter une dépendance changeante
- 6. android: problème dans la qualité changeante de l'image
- 7. Classe de barre de défilement JavaScript et vitesse de la molette de la souris dans différents navigateurs
- 8. créer une quantité changeante de pointeurs en C++
- 9. Utilisation d'une variable changeante dans nextAll de JQuery()
- 10. XLib Lock Position de la souris (habillage de la souris)
- 11. Migration de Moose vers la souris en Perl - La souris ne s'exécute pas BUILD
- 12. Comment réduire la vitesse de la boucle
- 13. La vitesse de décodage incroyable de GDI +, et la vitesse de tirage terrible!
- 14. Piégeage de la souris?
- 15. Comment trouver la vitesse de base de la carte graphique, la vitesse de la mémoire et la vitesse du shader (le cas échéant) en C#?
- 16. Calcul de la vitesse de connexion/téléchargement
- 17. Modification de la vitesse de l'animation UIImageView
- 18. optimisation de la vitesse de requête mysql
- 19. Détermination de la vitesse de vibration
- 20. Vitesse de la fonction d'intersection de tableaux
- 21. Calcul de la vitesse de téléchargement/upload
- 22. Contrôle de la vitesse du vol stationnaire dans jquery
- 23. Simuler mouvement de la souris dans Ubuntu
- 24. Crochet de souris global + simulation des entrées de la souris
- 25. mysqldump et la vitesse --tab
- 26. Quelle est la vitesse de simplexml_load_file()?
- 27. Améliorer la vitesse - UIImage de NSURL
- 28. vitesse de la mémoire et cpu Comprendre
- 29. comment maintenir la vitesse de scroller?
- 30. Comment augmenter la vitesse de désérialisation?
+1 pour l'article. Pour icemanind: il suffit d'appeler la fonction spécifiée dans cet article sur les événements "Enter" et "Leave", plus lentement lorsque le contrôle est entré et plus rapide lorsque vous quittez le contrôle, et cela devrait fonctionner. –
Parfait. Merci pour l'aide! – Icemanind