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

Access Discussion :

SENDKEYS et Windows 7 et plus [AC-2010]


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 54
    Points : 34
    Points
    34
    Par défaut SENDKEYS et Windows 7 et plus
    Bonjour,

    je suis désespéré de voir que le passage à Windows 7 ne me permet plus d'utiliser la fonction "SENDKEYS".
    Cette fonction qui était très simple et qui permettait à des gens ne maîtrisant pas parfaitement VBA de faire quelques petites commandes sympa.

    Bref, j'utilisais le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim sDoc As String
    sDoc = DLookup("Chemindossier", "TM chemin")
        Call Shell("Explorer.EXE /SELECT," & sDoc, 4)
    SendKeys "^(c)", False
     SendKeys "%{F4}", True
    qui me permettait d'aller chercher un fichier après lecture d'un lien hypertexte que je récupérai dans la table TM Chemin.
    A l'issue, la fonction Shell me le sélectionnait, je n'avais plus qu'à faire un "copier" avec

    puis "sortir de ma sélection" avec Aujourd'hui, ces 2 "sendkeys" ne fonctionnent plus.

    J'ai donc 2 questions ;

    - comment puis je ponctuellement remplacer ces 2 lignes "sendkeys" ?
    - d'une manière générale, quelle solution simple existe-t-il pour "envoyer des touches" dans un programme VBA ?

    PS : j'ai regardé le forum, je n'ai rien trouvé sinon que les API mais c'est vraiment complexe.

    Par avance, merci de votre aide.

  2. #2
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    Bonjour,

    Si tu copies un fichier, j'imagine que c'est pour le copier ailleurs.
    Dans ce cas utilises :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FileCopy "CheminFichierSource", "CheminFichierDestination"
    Cordialement

    Christophe

    N'oubliez pas de mettre pour en faire profiter tout le monde.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 54
    Points : 34
    Points
    34
    Par défaut
    Bonjour Marsouin,

    Ta solution n'est malheureusement pas adaptée à ma demande. Le collage ne se fait pas automatiquement à un endroit prédéfini.
    Je souhaite en revanche remplacer, dans cette partie du code, les fonctions "copier le fichier (préalablement sélectionné)", puis "fermer l'environnement" définie par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SendKeys "^(c)", False
     SendKeys "%{F4}", True

  4. #4
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    Bonsoir,

    Après quelques recherches, il semblerait qu'effectivement il y est un problème avec SendKeys sous Windows7.
    De ce que j'ai pu trouver : si ton anti virus est MacAfee, il serait alors peut être à l'origine du problème.

    A priori, une modification de clé de registre résoudrait le problème mais je ne n'ai pas trouver quelle clé doit être éditée.

    Désolé de ne pas pouvoir d'aider plus que cela.

    Pour le coup, je ferais des tests que une de mes applications qui utilise également SendKeys afin de voir si j'ai le même problème.
    Je tacherais de te tenir au courant.
    Cordialement

    Christophe

    N'oubliez pas de mettre pour en faire profiter tout le monde.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 54
    Points : 34
    Points
    34
    Par défaut
    Bonjour Marsouin,

    je ne pense pas que cela vienne de l'anti-virus.

    La fonction Sendkeys classique ne fonctionne plus avec Windows.
    mon programme me sélectionne bien le fichier que je souhaite copier, maintenant il faut copier ce fichier.

    Avant j'avais programmé un "Ctrl C" avec la fonction sendkeys "^c".
    Existe-t-il-il une autre méthode pour programmer cette fonction "Ctrl C" qui fonctionne sous Windows 7 ou bien comment peut on faire pour programmer en VBA la fonction "copier" en l'insérant dans le programme actuel ( le curseur est déjà sur le fichier à copier).

    Merci.

  6. #6
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    Bonjour,

    Je viens de faire le test sur mon application et SendKeys "{ESC}" fonctionne.
    En revanche, je n'arrive pas à mettre en oeuvre SendKeys "^(C)".

    Est-ce-que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunCommand (acCmdCopy)
    pourrait résoudre ton problème ou alors en envisageant l'utilisation d'un menu contextuel ?
    Cordialement

    Christophe

    N'oubliez pas de mettre pour en faire profiter tout le monde.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 54
    Points : 34
    Points
    34
    Par défaut
    Re-bonjour,

    Non malheureusement l'expression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunCommand (acCmdCopy)
    ne fonctionne pas (je l'avais essayée). Elle n'arrive pas à copier le fichier qui est déjà sélectionné. Ce que je ne sais pas c'est depuis Windows 7, qu'est-ce qui remplace le SENDKEYS classique pour faire "copier" ou bien tout simplement écrire cette fonction en "vba" (mais j'ai un peu de mal sur ce dernier point).

    Mais il doit bien y avoir une solution.

  8. #8
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    Bonsoir,

    Je viens encore de faire pas mal de recherches et malheureusement, je n'ai trouvé qui pourrait répondre à tes attentes.

    Désolé, j'espère que quelqu'un d'autre pourra d'aider.
    Cordialement

    Christophe

    N'oubliez pas de mettre pour en faire profiter tout le monde.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 54
    Points : 34
    Points
    34
    Par défaut
    Merci à toi Marsouin pour le temps que tu as passé. Quelqu'un d'autre va peut-être pouvoir répondre...

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 54
    Points : 34
    Points
    34
    Par défaut
    Bonjour à Marsouin,

    j'ai enfin trouvé (3 jours).

    En réalité, la fonction SENDKEYS fonctionne, que ce soit avec Access 2010 ou W7 (les forums ne sont pourtant pas explicites sur ce point). Je l'ai compris après en voyant que le programme copiait mais pas ce que je voulais. Le bug vient qu'Access traite les lignes de code alors que les précédentes ne sont pas complètement terminées (dans mon cas la fonction Shell met 2 à 3 secondes pour sélectionner le bon dossier).

    J'ai donc inséré le code ci dessous pour mettre une tempo


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim PauseTime, Start, Finish, TotalTime
     
        PauseTime = 5    ' Set duration.
        Start = Timer    ' Set start time.
        Do While Timer < Start + PauseTime
            DoEvents    ' Yield to other processes.
        Loop
        Finish = Timer    ' Set end time.
        TotalTime = Finish - Start  ' Calculate total time.
    entre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim sDoc As String
    sDoc = DLookup("Chemindossier", "TM chemin")
        Call Shell("Explorer.EXE /SELECT," & sDoc, 4)
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SendKeys "^(c)", False
        SendKeys "%{F4}", True

    Tout re-fonctionne comme avant !

    Merci à toi Marsouin pour le temps que tu as passé.

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

Discussions similaires

  1. Windows ne sait plus compter
    Par Nasky dans le forum Windows XP
    Réponses: 4
    Dernier message: 10/09/2006, 01h29
  2. Windows ne démarre plus après l'installation de Ubuntu
    Par midiweb dans le forum Administration système
    Réponses: 4
    Dernier message: 13/06/2006, 19h35
  3. Emuler une ancienne version de Windows sur une plus récente.
    Par damien99 dans le forum Autres Logiciels
    Réponses: 10
    Dernier message: 21/03/2006, 09h14
  4. Windows ne gère plus les accents
    Par Tofalu dans le forum Windows XP
    Réponses: 9
    Dernier message: 30/03/2005, 16h23

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