Juste en essayant de faire appuyer la touche enter après un délai dans vb6, tous les exemples que je trouve ne semblent pas fonctionner, aucune aide? Je tente juste de simuler une frappe. Focus n'a pas d'importance.Sendkeys dans vb6
Répondre
Qu'est-ce que vous essayez de faire? Comment savez-vous que ça ne marche pas?
Si vous essayez de déclencher un gestionnaire d'événements, vous pouvez l'appeler en code au lieu d'appuyer sur une touche.
Vous devrez peut-être fournir plus de détails. Mais SI vous essayez d'envoyer une clé d'entrée à une application créée par VB6 et qu'elle ne la récupère pas, c'est généralement le fait que vous n'avez pas défini la propriété KeyPreview du formulaire sur true. Sans le contrôle avec la mise au point actuelle absorbe la pression de touche que vous avez envoyé.
Si vous avez créé l'application qui reçoit la clé d'entrée. Je vous recommande fortement de refactoriser l'application de telle sorte que le code qui est déclenché par enter puisse être fait par le code. Cela est généralement fait en déplaçant le code dans une zone accessible aux deux applications. C'est parce que Sendkeys est notoirement non-déterministe et peut causer beaucoup d'étrangeté.
Il existe un keybd_event que vous pouvez utiliser à partir de l'API Win32 info here Je l'ai trouvé plus fiable que SendKeys.
SendKeys doit toujours être un dernier recours.
Le problème est vraiment le focus. Vous devez définir le focus avant chaque envoi. À peu près tout peut être complété via le script, alors qu'est-ce que vous essayez de faire?
J'ai fait une application de test vb6. avec 1 formulaire, 1 bouton par défaut, 1 minuteur:
Private Sub Command1_Click()
Debug.Print CStr(Now) + " Command1"
End Sub
Private Sub Timer1_Timer()
Debug.Print CStr(Now) + " Sendkeys"
SendKeys "{Enter}"
End Sub
Il semblait fonctionner lors de l'envoi à lui-même. 11/30/2008 6:11:38 PM Sendkeys 11/30/2008 6:11:38 PM Command1 11/30/2008 6:11:43 PM Sendkeys 11/30/2008 6:11:43 PM Command1 11/30/2008 6:11:48 PM Sendkeys 11/30/2008 6:11:48 PM Command1
Souhaitez-vous envoyer à un autre processus?
Vous pouvez essayer mon programme PushKeys qui est available here. La syntaxe est compatible avec SendKeys mais utilise l'API keybd_event et possède une fonction de veille intégrée.
Il y a quelques problèmes avec SendKeys sur Vista. Voir this article par Karl Peterson pour les détails et la solution.
Voici ce que je fais si je veux retarder une action dans mon script:
t = Timer + 5 'Change 5 to a higher number if you need more time to wait
Do While Timer < t
DoEvents 'This is necessary to prevent freezing
Loop
SendKeys "{ENTER}"
SendKeys "{ENTER}", True 'This might also work
- 1. Classe SendKeys en C#
- 2. Alternative à SendKeys lors de l'exécution de Remote Desktop?
- 3. Débogage à distance dans VB6
- 4. équivalent de Directory.CreateDirectory() dans VB6
- 5. Écrire pour FastCGI dans VB6?
- 6. IE8 entraînant l'effacement de l'entrée d'entrée FILE via SendKeys
- 7. Est-il possible de simuler des frappes dans Silverlight (similaire à SendKeys)?
- 8. Allocation de mémoire dynamique dans VB6
- 9. Que signifie "Shift: =" dans ce code VB6?
- 10. Winforms Hôte C# dans les applications VB6
- 11. Comment fermer un processus shell dans VB6
- 12. Comment appeler un service Web dans VB6?
- 13. Comment copier un fichier ouvert dans VB6?
- 14. variable objet erreur pas défini dans VB6
- 15. VB6 Oracle Récupération Clob dans un tableau
- 16. insérer une zone d'image dans l'imagebox vb6
- 17. Erreur RunTime '70' Autorisation refusée dans VB6
- 18. transparent pdf impression/aperçu dans VB6
- 19. formatage dans Excel à partir de VB6
- 20. Détection d'un verrou pessimiste dans VB6
- 21. Problème de licence VSFlexgrid dans VB6
- 22. Quelle bibliothèque ftp à utiliser dans VB6
- 23. Limite d'affichage en vb6
- 24. VB6 Intégration avec MSBuild
- 25. VB6 Runtime Type Retrieval
- 26. VB6 Dynamic Array Determination
- 27. VB6 ADO Connexion Pooling
- 28. VB6 & Source Safe
- 29. VB6 Implémentations et événements
- 30. vb6 Requête multimédia