Changer vitesse souris sous VB.NET (SPI_GETMOUSESPEED) [Résolu]

Messages postés
428
Date d'inscription
samedi 11 juillet 2009
Dernière intervention
28 octobre 2016
- - Dernière réponse : Cpcdos
Messages postés
428
Date d'inscription
samedi 11 juillet 2009
Dernière intervention
28 octobre 2016
- 23 juil. 2011 à 16:28
Bonjour , je galère , je cherche de partout comment changer la sensibilité de la souris sous VB.net !
il y a une astuce , il faut changer la valeur MouseSensitivity dans le registre et je ne veux pas faire ça !



j'ai essayé ça
 Private Declare Function SystemParametersInfo Lib "user32" Alias _
"SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, _
ByRef lpvParam As Any, ByVal fuWinIni As Long) As Long


Mais sous VB.NET il n'aime pas "any" --'

donc comment faire ??!

Microsf01
Copyright©Microsf01
Favier Sébastien 01
http://microsf01.fr.nf/
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
3
Merci
Bonjour,

Avant même d'aller au-delà :
Sous VB.Net ===>> As Integer et pas As Long.

____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 97 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
14325
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
18 décembre 2018
3
Merci
Bonjour,

En .Net, pas de Any, mais il faut explicitement dire de quel type est le paramètre.
Si plusieurs types sont possibles, il faut faire plusieurs déclarations se surchargeant.

Mon site

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 97 internautes nous ont dit merci ce mois-ci

Commenter la réponse de NHenry
Messages postés
14325
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
18 décembre 2018
3
Merci
Bonjour,

D'accord, tu n'a pas compris ce que j'avais écrit alors.

Private Declare Function SystemParametersInfo Lib "user32" Alias _
"SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, _
ByRef lpvParam As Any, ByVal fuWinIni As Long) As Long

Les types Long sont à remplacer par Integer (comme le dit ucfoutu)
Ensuite, le type Any est à remplacer par le type cible, par exemple :
ByRef lpvParam As Boolean

Si plusieurs types peuvent être passés, il faut faire autant de déclaration que de type (Surcharge de fonction).

Mon site

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 97 internautes nous ont dit merci ce mois-ci

Commenter la réponse de NHenry
1
Merci
Bonjour,
Voici une petite classe qui te permet de changer la vitesse de ta souris et de ton clavier :
Public Class clsVitesse
<System.Runtime.InteropServices.DllImport("User32.dll", EntryPoint:="SystemParametersInfo")> _
Private Shared Function SystemParametersInfoGet(ByVal uAction As Int32, ByVal uParam As Int32, ByRef pvParam As Int32, ByVal fuWinIni As Int32) As Int32
End Function
<System.Runtime.InteropServices.DllImport("User32.dll", EntryPoint:="SystemParametersInfo")> _
Private Shared Function SystemParametersInfoSet(ByVal uAction As Int32, ByVal uParam As Int32, ByVal pvParam As Int32, ByVal fuWinIni As Int32) As Int32
End Function

Const GETMOUSESPEED As Int32 = &H70
Const SETMOUSESPEED As Int32 = &H71
Const GETKEYBOARDSPEED As Int32 = &HA
Const SETKEYBOARDSPEED As Int32 = &HB
Const UPDATEINIFILE As Int32 = &H1
Const SENDCHANGE As Int32 = &H2

Property MouseSpeed() As Int32
Get
Dim rval As Int32
SystemParametersInfoGet(GETMOUSESPEED, 0, rval, 0)
Return rval
End Get
Set(ByVal value As Int32)
Dim rval As Int32 = SystemParametersInfoSet(SETMOUSESPEED, 0, value, SENDCHANGE Or UPDATEINIFILE)
If rval = 0 Then
Throw New ArgumentException("La vitesse de la souris doit être comprise entre 1 et 20")
End If
End Set
End Property

Property KeyboardSpeed() As Int32
Get
Dim rval As Int32
SystemParametersInfoGet(GETKEYBOARDSPEED, 0, rval, 0)
Return rval
End Get
Set(ByVal value As Int32)
Dim rval As Int32 = SystemParametersInfoSet(SETKEYBOARDSPEED, value, 0, SENDCHANGE Or UPDATEINIFILE)
If rval = 0 Then
Throw New ArgumentException("La vitesse du clavier doit être comprise entre 1 et 31")
End If
End Set
End Property
End Class

Et pour l'utiliser :
Dim Vitesse As New clsVitesse
MessageBox.Show("La vitesse de la souris est actuellement de : " & Vitesse.MouseSpeed.ToString)
'nouvelle valeur pour la souris
Vitesse.MouseSpeed = 20
MessageBox.Show("La vitesse du clavier est actuellement de : " & Vitesse.KeyboardSpeed.ToString)
'nouvelle valeur pour le clavier
Vitesse.KeyboardSpeed = 31

Bonne soirée.
Commenter la réponse de Utilisateur anonyme
Messages postés
428
Date d'inscription
samedi 11 juillet 2009
Dernière intervention
28 octobre 2016
0
Merci
Wai ok , mais j'ai trouvé une solution , j'ai crée le programme en VB6 compilé
et ensuite j'ai plu qu'a l'executer (invisible) avec comme argument la sensibilité personnalisée.
Et cela marche bien !

Merci quand même


Microsf01
Copyright©Microsf01
Favier Sébastien 01
http://microsf01.fr.nf/
Commenter la réponse de Cpcdos
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
wow !


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Commenter la réponse de ucfoutu
0
Merci
Passer de .NET à vb6 c'est le top
Commenter la réponse de Utilisateur anonyme
Messages postés
14325
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
18 décembre 2018
0
Merci
Bonjour,

Cette technique en plus de nécessiter le framework.NET exige en plus les Runtime VB6.

As-tu tenté les quelques réponses faites par Moi et Ucfoutu concernant le changement du prototype de la fonction ?

Mon site
Commenter la réponse de NHenry
Messages postés
428
Date d'inscription
samedi 11 juillet 2009
Dernière intervention
28 octobre 2016
0
Merci
Bonjour,

Oui j'ai essayé mais cela ne fonctionne pas , mais je l'avais déja essayé avant

donc , j'ai essayé de converti le projet vb6 qui contient la declaration en VB.net
(convertisseur inclus [2008]) et il y avai un petit commantaire disant que
"any" n'est pas pris en charge --'


Enfin , c'est pas grave , j'ai trouvé un moyen et concernant les runtime vb6 , il n'y a pas de problème
ou même vb5

enfin , Merci


ps: j'ai regardé ici aussi : http://www.bigresource.com/VB-Mouse-Speed-Control-ynS8yAwdp7.html



Microsf01
Copyright©Microsf01
Favier Sébastien 01
http://microsf01.fr.nf/
Commenter la réponse de Cpcdos
Messages postés
428
Date d'inscription
samedi 11 juillet 2009
Dernière intervention
28 octobre 2016
0
Merci
Mdr , vous insistez !

Donc pour le code de banana32 , il fonctionne merci a toi

Pour remplacer de long a integer et any par boolean , il fonctionne et donc merci a NHenry et ucfoutu


Merci a tous !!


Microsf01
Copyright©Microsf01
Favier Sébastien 01
http://microsf01.fr.nf/
Commenter la réponse de Cpcdos
Messages postés
14325
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
18 décembre 2018
0
Merci
Bonjour,

Non, Any, c'est à remplacer par le type visé, ici j'ai mis Boolean, mais ça peut être Integer (Int32) comme Banana32 l'a fait.

Mon site
Commenter la réponse de NHenry
Messages postés
428
Date d'inscription
samedi 11 juillet 2009
Dernière intervention
28 octobre 2016
0
Merci
.. wais mais il n'y a plus le problème de la déclaration
mais je peux aussi mettre (si je m'en souvient) Object mais bon c'est pas grave
j'ai compris comment ça marche grâce a vous

Merci


Microsf01
Copyright©Microsf01
Favier Sébastien 01
http://microsf01.fr.nf/
Commenter la réponse de Cpcdos

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.