Aller au contenu

Empêcher l'affichage de l'historique de l'invite de commande


Messages recommandés

Posté(e)

Bonjour à tous, 

J'espère tout le monde va bien.

J'ai créé un lisp qui retourne la liste des imprimantes système par le biais de la commande _-plot, qui permet d'afficher les imprimantes système dans l'historique de l'invite de commande (un bon gros F2 quoi) que j'enregistre pour extraire la liste.

Bref. 

Le problème que le F2 n'est pas très silencieux, et je n'arrive pas à l'empêcher. 

Auriez-vous une solution autre que de ne passer par une commande ? 🙂

Merci beaucoup !

Matt.

"Chacun compte pour un, et nul ne compte pour plus d'un."

Posté(e)

Bonjour Eric, merci pour votre réponse.

Nope ça ne change rien. C'est vrai que j'aurais dû noter que j'avais déjà testé. 

Voici le code, si vous voulez vous faire une idée. Pour info je suis sur BricsCad.

;; retourne la liste des imprimantes système
;; Voir pour empêcher l'affichage de la fenêtre d'historique de commande
(defun printerList ( / qaflags f pos line l )
	
	(setvar 'cmdecho 0)
	(setvar 'logfilemode 1)
	
	;Réinitialiser le .log
	(setq f (open (getvar 'LogFileName) "w"))
	(write-line "" f)
	(close f)
	
	;écrire la liste dans l'historique de commande
	(command "_LOGFILEON")
	(setvar 'qaflags 2)
	(setvar 'cmdecho 1)
	(command "_-plot" "_y" "" "?" nil)
	(setvar 'cmdecho 0)
	(setvar 'qaflags 0)
	(command "_LOGFILEOFF")
	(setq f (open (getvar 'LogFileName) "R"))
	(while (setq line (read-line f))
		(while (setq pos (vl-string-search "\"" line nil))
			(setq line (vl-string-subst "" "\"" line pos))
		)
		(if (eq (substr line 1 2) "  ")
			(setq l (cons (vl-string-subst "" ".pc3" (vl-string-subst "" "  " line)) l))
		)
	)
	(close f)
	(setvar 'logfilemode 0)
	(setvar 'cmdecho 1)
	l
)

 

"Chacun compte pour un, et nul ne compte pour plus d'un."

Posté(e)

Petite solution en fin de fonction :

 

; Fermer Fenetre Texte
	(defun CloseWindowText ()
		(textscr) ; Basculer sur fenêtre de texte
		(vlax-invoke-method (vlax-get-or-create-object "WScript.Shell") "SendKeys" "%{F4}")) ; Fermer fenêtre de texte

 

Posté(e)

Merci SF.Designer, ça fonctionne losqu'on a un écran (la touche est F2). Pour deux écrans, c'est plus compliqué haha. Apparemment F2 ne bascule pas si 2écrans ou plus. Les fantaisies de BriscsCad. 

Sinon j'ai trouvé un code purement activeX, pour celleux que ça intéresse :

(vlax-safearray->list 
	(vlax-variant-value 
		(vla-GetPlotDeviceNames 
			(vla-Get-ActiveLayout 
				(vla-get-ActiveDocument 
					(vlax-get-Acad-object)
				)
			)
		)
	)
)

PS : Tout à fait, Fraid, c'est la même chose sur AutoCAD.

"Chacun compte pour un, et nul ne compte pour plus d'un."

Posté(e)

Bonjour Patrick, et merci pour votre réponse. 

Non pas essayé mais le fonctionnement de cette routine est basé sur l'affichage des imprimantes disponibles dans l'historique depuis la commande _-plot. Nomutt supprime cet affichage.

"Chacun compte pour un, et nul ne compte pour plus d'un."

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é