Mon employeur a acheté un outil tiers, OfficeConverter de Conveter Technology, qui automatise la conversion/réparation des fichiers au format Office 2007 au format Office 2003. Cet outil automatise également la traduction/modification des exigences de code macro/VBA entre les formats Office 2003 et 2007. Mon problème est que pendant cette conversion, l'outil ouvre le produit Office ciblé, disons Excel, puis ouvre le fichier utilisateur cible (par exemple, Report.xls) et examine ensuite tout code VBA/macro pour les besoins de modifications. Le problème est que SI le code du fichier Excel dépend d'un outil externe comme un fichier .OCX et si cet outil n'existe pas sur le PC sur lequel j'effectue cette action, Excel affichera un message que l'objet a pas été trouvé, l'arrêt de l'ensemble du processus de conversion (des milliers de fichiers d'affilée) jusqu'à ce que quelqu'un arrive et clique MANUELLEMENT sur le bouton approprié pour fermer la boîte de dialogue. Je pensais que créer une petite application de surveillance en VB6 (hé, je suis vieux et mes compétences le sont aussi) pourrait s'asseoir sur le même PC et regarder pour ces boîtes de dialogue et, selon le message spécifique, cliquez sur le approprié bouton via l'appel de l'API SendMessage. Le problème est que je n'ai pas réussi à obtenir SendMessage pour PUSH le bouton pour moi, j'ai essayé de lui envoyer la valeur de la clé de retour (vbKeyReturn) ou même la touche Espace (vbKeySpace) mais l'action jamais aboutit à la fermeture de la boîte de dialogue comme il se doit. Je peux mettre l'accent sur l'onglet entre les boutons de la boîte de dialogue sont activés, mais c'est à peu près tout.Comment envoyer des clics ou des clés d'une application VB6 à une boîte de dialogue Excel?
J'ai essayé d'utiliser SendKeys, mais c'est beaucoup moins fiable et fortement déconseillé dans la documentation actuelle que j'ai trouvée.
Des suggestions? :)
Avez-vous essayé d'envoyer Escape? – stuartd