IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Neutralisation de la roulette de la souris


Sujet :

IHM

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 195
    Points : 87
    Points
    87
    Par défaut Neutralisation de la roulette de la souris
    Bonjour

    Je cherche à neutraliser la roulette de ma souris au chargement de mon formulaire et à la déneutraliser à la fermeture.
    J'ai trouvé la solution d'Arkham46 et je l'en remercie.
    Dans un premier temps, je copie la dll dans le même répertoire que mon appli et non sous C:\Windows\system32
    Ensuite le code d'Arkham dans un module :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    Option Compare Database
     
    Option Explicit
     
    Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
    Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
    Private Declare Function GetLongPathName Lib "kernel32" Alias "GetLongPathNameA" _
                            (ByVal lpszShortPath As String, ByVal lpszLongPath As String, _
                             ByVal cchBuffer As Long) As Long
     
    Private Declare Function DVPDllRegisterServer Lib "MouseWheelDVP" Alias "DllRegisterServer" () As Long
    Private Declare Function DVPDllUnregisterServer Lib "MouseWheelDVP" Alias "DllUnregisterServer" () As Long
    Private Declare Function DVPDllCanUnloadNow Lib "MouseWheelDVP" Alias "DllCanUnloadNow" () As Long
     
    ' Enregistre la librairie
    Private Sub FnRegLib()
        Dim lLib As Long    ' Identifiant de la librairie
        Dim lReg As Long    ' Pointeur de la fonction d'enregistrement
        ' Référence la librairie dans Access
        On Error Resume Next ' si la librairie est déjà référencée on essaye quand même de l'enregistrer
        Application.References.AddFromFile ApplicationPath & "MouseWheelDVP.dll"
        On Error GoTo Gestion_Erreurs
        ' Charge la librarie
        lLib = LoadLibrary(ApplicationPath & "MouseWheelDVP.dll")
        If lLib = 0 Then
            MsgBox "Impossible de trouver la librairie :" & vbCrLf & ApplicationPath & "MouseWheelDVP.dll"
            Exit Sub
        End If
        ' Enregistre la librairie (en plus du AddFromFile qui parfois n'enregistre pas correctement la librairie)
        If DVPDllRegisterServer <> 0 Then
            MsgBox "Erreur lors du référencement de la librairie"
        End If
    Gestion_Erreurs:
        If Err.Number <> 0 Then MsgBox Err.Description
        ' Libère la librairie
        FreeLibrary lLib
    End Sub
     
    ' Désenregistre la librairie
    Private Sub FnUnregLib()
        Dim lLib As Long        ' Identifiant de la librairie
        Dim lCanUnload As Long  ' Pointeur de la fonction de test d'utilisation de la dll
        Dim lUnReg As Long      ' Pointeur de la fonction d'enregistrement
        ' Supprime la référence dans Access
        On Error Resume Next ' si la librairie n'est pas référencée on essaye quand même de la désenregistrer
        Application.References.Remove Application.References.Item("MouseWheelDVP")
        On Error GoTo Gestion_Erreurs
        ' Charge la librarie
        lLib = LoadLibrary(ApplicationPath & "MouseWheelDVP.dll")
        If lLib = 0 Then
            MsgBox "Impossible de trouver la librairie :" & vbCrLf & ApplicationPath & "MouseWheelDVP.dll"
            Exit Sub
        End If
        ' Vérifie que la librairie n'est pas en cours d'utilisation
        If DVPDllCanUnloadNow <> 0 Then
            MsgBox "Impossible de déréférencer la librairie maintenant" & _
                   vbCrLf & "Quittez les formulaires utilisant la librairie"
            GoTo Gestion_Erreurs
        End If
        ' Désenregistre la librairie (elle disparaît alors de la liste des références)
        If DVPDllUnregisterServer <> 0 Then
            MsgBox "Erreur lors du référencement de la librairie"
        End If
    Gestion_Erreurs:
        If Err.Number <> 0 Then MsgBox Err.Description
        ' Libère la librairie
        FreeLibrary lLib
    End Sub
     
    ' Récupère le chemin de l'application (chemin long)
    ' (pour remplacer CurrentProject.Path dans Access 97)
    Public Function ApplicationPath() As String
        Dim lRet As Long
        Dim lShortPathName As String
        Dim lLongPathName As String
        lLongPathName = Space(1024)
        lShortPathName = Left(CurrentDb.Name, Len(CurrentDb.Name) - Len(Dir(CurrentDb.Name)))
        lRet = GetLongPathName(lShortPathName, lLongPathName, Len(lLongPathName))
        ApplicationPath = Left(lLongPathName, lRet)
    End Function
    mais à la compilation de ce code ce message apparaît :
    "Type défini par l'utilisateur non défini"

    Qu'en pensez-vous ?
    Merci

  2. #2
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Citation Envoyé par alainGL
    "Type défini par l'utilisateur non défini"
    Qu'en pensez-vous ?

    J'en pense que ... le "compilateur" te montre la ligne qui lui pose problème. non?
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 195
    Points : 87
    Points
    87
    Par défaut
    Merci pour ta réponse,
    non le compilateur ne me montre pas la ligne et c'est là le hic

  4. #4
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Citation Envoyé par alainGL
    Merci pour ta réponse,
    non le compilateur ne me montre pas la ligne et c'est là le hic

    En l'état je ne vois pas comment on pourrait deviner où est ton problème

    Quant tu dis

    Citation Envoyé par alainGL
    mais à la compilation de ce code ce message apparaît :
    "Type défini par l'utilisateur non défini"
    je suppose que tu fais Appel à la commande Débogage /Compiler.... Normalement, lorsque la fenetre apparait; il sélectionne en arrière plan le code posant probleme.
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 238
    Points : 236
    Points
    236
    Par défaut
    Bonsoir,

    Décidément la neutralisation de la molette de la souris fait chauffer les claviers en ce moment !

    Plusieurs post sur ce sujet la semaine dernière auxquels j'ai répondu en donnant le lien vers un autre tuto écrit par Arkham46 ; il s'agit d'une autre dll plus simple à utiliser et ne nécessitant pas de référencement.

    http://arkham46.developpez.com/artic...usewheelnoreg/

    Ceux qui l'ont testé en redemandent ; à utiliser sans modération !

    Bonne continuation.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 195
    Points : 87
    Points
    87
    Par défaut
    Merci à tous de m'avoir aidé à résoudre ce problème de roulette. Le site d'Arkham46 est vraiment génial
    Bonne journée

  7. #7
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    691
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 691
    Points : 504
    Points
    504
    Par défaut
    Y'a un petit soucis de lien là :s

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    Bonjour!

    MouseWheelDVP.dll est génial et je l'utilise depuis pas mal de temps. Sauf qu'hier, je suis passé sur l'OS vista. et là pas moyen d'enregistrer la dll...
    pas compatible j'imagine.

    Auriez-vous donc une alternative en tête pour que je puisse utiliser ma base de données aussi bien sur XP que sur Vista s'il-vous-plait?

  9. #9
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    Citation Envoyé par alyphe
    Bonjour!

    MouseWheelDVP.dll est génial et je l'utilise depuis pas mal de temps. Sauf qu'hier, je suis passé sur l'OS vista. et là pas moyen d'enregistrer la dll...
    pas compatible j'imagine.

    Auriez-vous donc une alternative en tête pour que je puisse utiliser ma base de données aussi bien sur XP que sur Vista s'il-vous-plait?
    Bjr,

    A priori ça marche sous Vista :
    http://www.developpez.net/forums/sho...WheelDVP+vista

    Personnellement je n'ai pas Vista, donc pas plus d'info.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    En effet cela fonctionne très bien sous vista.

    je ne savais pas qu'un compte utilisateur avec privilèges administrateur était différent du compte administrateur.
    J'ai redémarré vista en MSE sur le vrai compte administrateur et là l'installation de la DLL n'a posé aucune résistance.


    maintenant je me heurte à d'autres problêmes de compatibilité (mes boutons fonctionnent pas tous alors que tous mes events sont en vba, j'ai pas une seule macro) mais rien de bien ennuyeux

    petite question au fait... si je venais à commercialiser ma base acces, vu qu'elle utilise cette DLL ça ne sera pas possible non?

  11. #11
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    Citation Envoyé par alyphe
    petite question au fait... si je venais à commercialiser ma base acces, vu qu'elle utilise cette DLL ça ne sera pas possible non?
    Quel est le sens de la question?
    Si c'est un problème d'installation, alors il faut livrer un setup qui installe la librairie.
    Si un problème de licence alors il n'y a pas de licence sur cette dll. Tu peux l'utiliser où tu veux.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/03/2006, 16h02
  2. Probleme avec la roulette de la souris dans VBE
    Par GESCOM2000 dans le forum Access
    Réponses: 3
    Dernier message: 04/02/2006, 16h53
  3. Utiliser la roulette de la souris dans un DBLookupComboBox
    Par lagunss dans le forum Composants VCL
    Réponses: 1
    Dernier message: 14/10/2005, 22h35
  4. Roulette de la souris
    Par mpat dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 08/01/2005, 22h39
  5. Réponses: 5
    Dernier message: 25/06/2004, 15h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo