Fraid Posté(e) le 19 janvier 2018 Posté(e) le 19 janvier 2018 Bonjour, Je lance des petites applications dans certains de mes lisp et attend le retour de cette façon (startapp "C:\\Data\\appli.exe") (while (= (findfile "C:\\Data\\retour.txt") nil) (princ) ) donc tant que le fichier de retour n'est pas ecrit on reste coincé dans le while.cela fonctionne. (a coup de delay bien placés)comme c'est souvent des invites utlisateurs cela peut etre assez long mais du coup y a t'il un accès continue au disque dur pendant le while?et si l'appli échoue dans l’écriture le while continue....j'avais pensé à utiliser le registre windows, est ce mieux?il y a aussi le presse papier mais la c'est plus compliqué...connaissez vous d'autre manière? merci https://github.com/Fraiddd
bonuscad Posté(e) le 19 janvier 2018 Posté(e) le 19 janvier 2018 connaissez vous d'autre manière? Bonjour, Avec CECI? (defun Sleep (n / lastCmdecho ) (setq lastCmdecho (getvar "cmdecho")) (setvar "cmdecho" 0) (eval (list 'VL-CMDF "_.delay" n ) ) (setvar "cmdecho" lastCmdecho ) ) (defun C:ExternalApplication ( / *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nC:ExternalApplication:*error*: " ) (princ msg ) (princ "\n") ) ) ) (setq path "C:\\Windows\\") (setq app (strcat "Notepad.exe" ) ) (print (strcat "Run " (strcat path app ) ) ) (setq Shell (vlax-get-or-create-object "Wscript.Shell")) (setq AppHandle(vlax-invoke-method Shell 'Exec (strcat path app ) )) (while ( = (vlax-get-property AppHandle 'Status ) 0) (Sleep 1000) )` (vlax-release-object Shell) (print "Process finished" ) ) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Fraid Posté(e) le 19 janvier 2018 Auteur Posté(e) le 19 janvier 2018 Merci terrible le vlax-invoke-method Shell 'Exec, pensait bien que cela existais le sleep me laisse intérogatif, vais regarder cela de plus près :unsure: https://github.com/Fraiddd
Fraid Posté(e) le 19 janvier 2018 Auteur Posté(e) le 19 janvier 2018 le sleep est il juste une façon propre de faire un delay?sinon je n'avais vu du premier oeil, vlax-get-or-create-objectpour instancier un objet je pensais que c'etais seulement vlax-create ou vlax-get pas les 2eternel decouvrance.... https://github.com/Fraiddd
Patrick_35 Posté(e) le 19 janvier 2018 Posté(e) le 19 janvier 2018 Salut Je ne sais pas quelle valeur tu attends en retour, mais tu peux aussi verifier si le process est toujours actif. Un exemple qui détruit un process en cours... (defun kill(qui / item meth1 meth2 obj WMI) (setq WMI (vlax-create-object "WbemScripting.SWbemLocator") meth1 (vlax-invoke WMI 'ConnectServer nil nil nil nil nil nil nil nil) meth2 (vlax-invoke meth1 'ExecQuery "Select * from Win32_Process") ) (vlax-for item meth2 (and (setq obj (vlax-get item 'CommandLine)) (vl-string-search (strcase qui) (strcase obj)) (if (vl-catch-all-error-p (vl-catch-all-apply 'vlax-invoke (list item 'Terminate))) (vlax-invoke item 'Terminate) ) ) ) (foreach item (list WMI meth1 meth2) (vlax-release-object item) ) )Par exemple(kill "PDFCreator.exe") @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Fraid Posté(e) le 19 janvier 2018 Auteur Posté(e) le 19 janvier 2018 Merci très utile aussi de killer un process généralement les retours sont des String écrit dans un ptit fichier txtfacile à lire et à écrire.ou des fois c'est sans retour du coup je lui fait faire un texte commememes applis sont en java6 mois que je suis devenus un adeptej'avais essayer quasiment tout les autres langage orienté objet j'abandonnais rapidement incapable de comprendre l'instanciation.maintenant je ne comprend pas pourquoi je ne comprenais pas. https://github.com/Fraiddd
lecrabe Posté(e) le 19 janvier 2018 Posté(e) le 19 janvier 2018 Hello Fraid Mais après qq Bieres, c plus facile de comprendre ! LA SANTE et Bonne Annee, Bye, lecrabe Autodesk Expert Elite Team
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant