Aller au contenu

Problème avec un SendKey


Sforzendo

Messages recommandés

Bonjour tout le monde,

Voila, j'ai un soucis avec une de mes macros dont je n'arrive pas à me sortir...

 

 

En gros, dans notre société on dispose d'un emplacement sur le serveur dans lequel sont rangées toute les macros pour Catia.

Et donc elles sont toutes composées comme ceci:

-L'executable au format CatScript qui sont tous dans le même dossier et qui vont incrémenter une base de donnée puis surtout lancer le programme utile.

-Et le programme utile au format CatVba qui est rangé dans un dossier spécifique avec tout ce qu'il lui faut pour fonctionner correctement (Fichier Catia, Excel,...)

 

 

Mon développement (Dans le CatVba) effectue une série d'opération dont celui qui marche moyens qui est un désassemblage lié à un SendKey.

 

AppActivate "CATIA V5"
CATIA.RefreshDisplay = True
For A = 1 To B: Next A
SendKeys "{enter}", True
part1.Update

 

 

Et voici le code de lancement de la macro (CatScript):

Dim params()
CATIA.SystemService.ExecuteScript"c:\user\popol.catvba", catScriptLibraryTypeVBAProject, "Popol", "CATMain", params

 

 

 

Voici le truc étrange:

Le code fonctionne très bien lorsqu'il est lancé depuis l'éditeur Visual Basic.

Mais lorsqu'il est lancé depuis l'executable... tout fonctionne SAUF le Sendkey...

Et rien n'y fait, tempo de 5s, boucle avec 300000 sendkey, rien... Comme s'il était bloqué.

 

(Catia V5R19)

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Alors j'avance doucement mais je ne sais pas si c'est la bonne direction.

Il semblerai que le problème vienne des fenetres actives.

 

Quand je lance le programme depuis VB, c'est l'éditeur qui est actif et donc il déroule tout son code.

 

Or quand je le lance via l'executable, le code se bloque sur "CATIA.StartCommand ("Désassemblage")"

Le code à la suite ne va pas être pris en compte. Et donc pas de SendKeys...

 

AppActivate "CATIA V5"
CATIA.StartCommand ("Désassemblage")
CATIA.RefreshDisplay = True
SendKeys "{enter}", True
DoEvents

 

Et la question qui tue, il y a t'il un moyen d'ouvrir l'éditeur VisualBasic et le rendre actif avec un code VB??

Avec une fonction du genre AppActivate???

 

Pour info:

http://www.gtwiki.org/mwiki/index.php?title=Tricks_to_using_SendKeys_in_DP_VBA

http://v5vb.wordpress.com/2010/01/20/startcommand/

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Pour celui qui passera par la, j'ai trouvé la solution:

Il n'y en a malheuresement pas...

 

Extrait de la doc DS sur la commande :

Sub StartCommand(CATBSTR iCommandId)

Starts a CATIA command.

Role:This method starts a command and executes it untill its first interaction. Please notice interactions such as selections you could add after in your macro will not work. StartCommand is useful to execute one-shot (not interactive) commands, it is not safe for interactive commands.

Parameters:

iCommandId

The id of the command to be started. This id can be the name of the command or its alias.

 

Il faut donc passer par une API...

Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité