begin process at 2012 05 24 23:26:40
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > MOUSE SPEED AND WEIGHT : RETOUR DE FORCE VIRTUEL !

MOUSE SPEED AND WEIGHT : RETOUR DE FORCE VIRTUEL !


 Information sur la source

Note :
Aucune note
Catégorie :API Classé sous :souris, mouse, speed, accélération, poids Niveau :Débutant Date de création :03/01/2011 Vu / téléchargé :2 947 / 202

Auteur : ScSami

Ecrire un message privé
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Ce code vous permet de ressentir le poids des objets via la souris (ou un trackpad), une sorte de "retour de force" naturel si vous préférez ;)

En réalité, il s'agit d'une classe permettant de régler et manipuler la "vitesse" (ratio vitesse/accélération) de la souris de Windows (1 à 20).
Pour se faire, on utilise l'API win32 "SystemParametersInfo" avec "SPI_GetMouseSpeed" comme paramètre.

En s'initialisant, la classe récupère le paramètre actuel de vitesse de la souris de l'utilisateur et remet tout en place en se terminant via la méthode "Restaure" (que vous pouvez également appeler indépendamment !).

La seule propriété est "Speed" (0 à 20) vous permettant de définir ou de récupérer ce réglage Windows.

Pour initialiser cette classe dans vos programme :  Private objMouseSpeed As New clsMouseSpeed


Le programme en soit n'est qu'un exemple presque pas commenté qui permet de déplacer des balles qui ont chacune un poids.
Le principe est simple : cliquer sur une balle donne à votre souris une vitesse (qui est en relation avec le poids de la balle en question).
Relâcher le bouton remet les paramètres de la souris comme avant.

Il est livré avec l'exécutable et sa sources, mais également avec mon contrôle ActivX "PaintedBalls.ocx" sans son code (que vous pouvez retrouver sur ce site).

Source

  • Option Explicit
  • 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
  • Private Const SPI_GETMOUSESPEED = 112
  • Private Const SPI_SETMOUSESPEED = 113
  • Private Const SPIF_UPDATEINIFILE = &H1
  • Private Const SPIF_SENDCHANGE = &H2
  • Private lngMouseSpeed_BAK As Long
  • Private lngMouseSpeed_NOW As Long
  • Private Sub Class_Initialize()
  • SystemParametersInfo SPI_GETMOUSESPEED, 0, lngMouseSpeed_BAK, 0
  • lngMouseSpeed_NOW = lngMouseSpeed_BAK
  • End Sub
  • Private Sub Class_Terminate()
  • Call Restore
  • End Sub
  • Public Sub Restore()
  • SystemParametersInfo SPI_SETMOUSESPEED, 0, ByVal lngMouseSpeed_BAK, SPIF_UPDATEINIFILE Or SPIF_SENDCHANGE
  • End Sub
  • Property Get Speed() As Byte
  • Speed = CByte(lngMouseSpeed_NOW)
  • End Property
  • Property Let Speed(ByVal MouseSpeed As Byte)
  • If MouseSpeed < 1 Then MouseSpeed = 1
  • If MouseSpeed > 20 Then MouseSpeed = 20
  • lngMouseSpeed_NOW = MouseSpeed
  • SystemParametersInfo SPI_SETMOUSESPEED, 0, ByVal lngMouseSpeed_NOW, SPIF_UPDATEINIFILE Or SPIF_SENDCHANGE
  • End Property
Option Explicit

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
Private Const SPI_GETMOUSESPEED = 112
Private Const SPI_SETMOUSESPEED = 113
Private Const SPIF_UPDATEINIFILE = &H1
Private Const SPIF_SENDCHANGE = &H2

Private lngMouseSpeed_BAK As Long
Private lngMouseSpeed_NOW As Long

Private Sub Class_Initialize()
    SystemParametersInfo SPI_GETMOUSESPEED, 0, lngMouseSpeed_BAK, 0
    lngMouseSpeed_NOW = lngMouseSpeed_BAK
End Sub

Private Sub Class_Terminate()
    Call Restore
End Sub

Public Sub Restore()
    SystemParametersInfo SPI_SETMOUSESPEED, 0, ByVal lngMouseSpeed_BAK, SPIF_UPDATEINIFILE Or SPIF_SENDCHANGE
End Sub

Property Get Speed() As Byte
    Speed = CByte(lngMouseSpeed_NOW)
End Property

Property Let Speed(ByVal MouseSpeed As Byte)
    If MouseSpeed < 1 Then MouseSpeed = 1
    If MouseSpeed > 20 Then MouseSpeed = 20
    lngMouseSpeed_NOW = MouseSpeed
    SystemParametersInfo SPI_SETMOUSESPEED, 0, ByVal lngMouseSpeed_NOW, SPIF_UPDATEINIFILE Or SPIF_SENDCHANGE
End Property


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

DE RGB À R, G ET B, LA MEILLEUR TECHNIQUE EN VB !
Source avec Zip Source avec une capture POT DE PEINTURE (REMPLISSAGE/FLOOD)
Source avec Zip Source avec une capture INTERSECTION
Source avec Zip Source avec une capture CHAÎNE VERTÉBRALE OPTIMALE
Source avec Zip Source avec une capture CHAÎNE VERTÉBRALE MINIMALE

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) .NET DEPENDENCY VIEWER : ARBRE DES DÉPENDANCES D'UN ASSEMBLY... par ShareVB
Source avec Zip Source .NET (Dotnet) UTILITAIRE SKYDRIVE par MasterShadows
Source avec Zip ROTATION RAPIDE D'IMAGE par trex70
Source avec Zip Source avec une capture ENUMERATION DES PORTS TCP ET IDENTIFCATION DU PROCESS (PID) ... par Renfield
Source avec Zip Source avec une capture WINROUTE, L'ÉQUIVALENT DE LA COMMANDE ROUTE AVEC L'API IPHLP... par maxxximatoze

 Sources en rapport avec celle ci

Source avec Zip DESSINER AVEC LA SOURIS (V. SIMPLE) par Fornikator
SE FAIRE PAYER SANS ÊTRE DEVANT SON ORDI PAR DES CASHBAR par thekingoftheweb
Source avec Zip Source avec une capture MOUSE TRACKER par OverDarck
Source avec une capture DEPLACER LE CURSEUR DE LA SOURIS (UTILE POUR LES CA$HBAR) par Majen
MOUSE SIMULATOR par Grossoft®

Commentaires et avis

Commentaire de Renfield le 03/01/2011 10:41:19 administrateur CS

Si on lance l'application deux fois et qu'on ferme ces deux instances dans l'ordre ou on les a lancé, on ne restaure pas le speed d'origine (penser Singleton: http://www.vbfrance.com/codes/PARTAGE-VARIABLES_39615.aspx)

Commentaire de oommeeggaa3d le 03/01/2011 15:05:28

Sympa ... efficace avec les grosses boules, mais grosses "saccades" de déplacement sur les petites boules (du moins chez moi)

Commentaire de ScSami le 03/01/2011 19:05:41

Keski dit le vieux Renfield !?!!! Bien sûr que si que le speed "d'origine" est restauré ! Mais comme on fait mumuse avec un accès direct, il faut bien comprendre que la vitesse d'origine est celle en vigueur au moment de la création de l'instance. C'est donc cette valeur qui sera restaurée à la destruction de cette instance (ou à l'appel de la méthode). En réalité, cette classe n'est qu'une implémentation simplifiant l'utilisation de l'API et rien d'autre !

Ou alors, j'ai pas saisi toute la porté de ta remarque !???

OOMMEEDDAA3D : C'est parce qu'il faut compiler ton programme ;) Mais ce qui fait ralentir, c'est mon vieux contrôle ActiveX et surtout, la double fonction PaintPicture, l'essentiel n'étant pas là !

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

mouse over [ par trastaroot ] Salut,je vous explique mon pb! j'ai un histogramme dans excel et je voudrais au passage de la souris sur chaque barre de l'histogramme un commentaire utilisation de SetCursorPos et Mouse_Event [ par nazzguhl ] Bonjour,j'ai trouvé dans le forum plusieurs exemples de SetCursorPos et Mouse_Event, je les ai essayés, mais ça ne fonctionne pas comme je l'espérais. Simuler le CLICK de la souris [ par Gabriel ] Comment simuler le click + dblclick dse souris?Mouse.ClickMouse.DblClickMERCI UserControl et event Mouse [ par renocmoa ] Bonsoir,Je voudrais savoir comment obtenir que les evenements souris (leav, hover...) soit utilisable avec un user control. En effet, par exemple avec Accélération souris [ par Nil ] Comme vous le savez, l'accélération souris est fort pratique mais hélas il y a un problème...Sur Windows 98, il n'y en a pas alors j'utilisais MouseWa Simulation souris [ par didieraucun ] Bonsoir et bonne année 2008 J'ai trouvé ce code sur ce site qui simule le mouvement et les différents clic d'une souris.Mais je ne sait pas comment l' Position souris dans fenêtre [ par Londonic ] BASIC 2008 Projet Wpf J'aimerais modifier mes paramètres d'affichage quand j'enfonce où que je relache le bouton de la souris.  Friend Sub OnMouseDo MOUSE EVENEMENT [ par GHGFSJD ] Bonsoir, voila je possede un programme qui m'affiche un plugin en jouant un  MP3, j'ai constaté que le plugin céssé de s'afficher si la souris cesser Enregistrement et retranscription mouvements souris [ par pulpul74 ] Bonjour.Je créé actuellement un programme qui me permet d'enregistrer les mouvement de la souris et de les retranscrire par la suite.Mais j'ai quelque Etat des piles souris logitech avec logiciel mouseware [ par homer01 ] Bonjour à tousJ'utilise une souris sans fil logitech avec le logiciel mouseware (de logitech). Lorsque les piles sont usagées une fenetre apparait en


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 7,894 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales