(gile) Posté(e) le 18 juillet 2006 Posté(e) le 18 juillet 2006 Jeff Mishler donne ici un moyen en vlisp bien pratique pour jongler avec les fichier et dossiers (créer, supprimer, copier, déplacer ...). D'après une rapide recherche dans CADxp, seuls quelques VBAistes utilisent Scripting.FilesystemObject. Par exemple, pour copier le contenu d'un dossier dans un autre (si le dossier de destination n'existe pas, il est créé) : (defun CopyFolder (source destination / fso) (setq FSO (vlax-create-object "Scripting.FilesystemObject")) (if (= -1 (vlax-invoke fso 'folderexists source)) (vlax-invoke fso 'copyfolder source destination) ) (vlax-release-object fso) ) [Edité le 18/7/2006 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Patrick_35 Posté(e) le 18 juillet 2006 Posté(e) le 18 juillet 2006 Waou..., c'est génialCela ouvre des horizons, reste à savoir où trouver ces instructions comme le "Scripting.FilesystemObject" Après quelques recherches, j'ai trouvé pour le fun(vlax-invoke-method (vlax-get-or-create-object "WScript.Shell") "SendKeys" "{CAPSLOCK}") (vlax-invoke-method (vlax-get-or-create-object "WScript.Shell") "SendKeys" "{NUMLOCK}") ps: dans le lisp que tu donnes, il y a un And qui est inutile @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
(gile) Posté(e) le 18 juillet 2006 Auteur Posté(e) le 18 juillet 2006 ps: dans le lisp que tu donnes, il y a un And qui est inutile Merci, je n'ai pas voulu copier bêtement celui donné par Jeff Mishler, alors je l'ai un peu modifié en faisant une bétise (je corrige). J'avoue ne pas comprendre quelles peuvent être les utilisations de WScript.Shell (à part activer ou désactiver le pavé numérique), j'ai fait un (vlax-dump-object ...) qui ne m'apprend pas gand chose ... _$ (vlax-dump-object (vlax-get-or-create-object "WScript.Shell") T) ; IWshShell3: Shell Object Interface; Valeurs de propriétés:; CurrentDirectory = ...Contenu indexé masqué...; Méthodes prises en charge:; Exec (2)T_$ [Edité le 18/7/2006 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Patrick_35 Posté(e) le 18 juillet 2006 Posté(e) le 18 juillet 2006 Ce qui est intérressant, c'est que tu peux simuler les touches, donc lancer une appli et lui faire ce que tu veuxPour plus d'info, regarde dans l'aide avec sendkeys @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
(gile) Posté(e) le 18 juillet 2006 Auteur Posté(e) le 18 juillet 2006 Ok, merci. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
BTO Posté(e) le 8 août 2006 Posté(e) le 8 août 2006 Bonjour, J’utilise régulièrement cette technologie car elle permet de faire à peu prés ce qu'on veut, Un fichier d'aide existe : chercher Script56.CHM avec google, il doit être disponible sur le site de Microsoft. A ma connaissance c'est Tony Tanzillo avec sa routine BrowseForFolder (voir son site) qui a popularisé cette technologie et effectivement Jeff Mishler (et d'autres) en fait un usage intensif. voici un exemple d'une utilisation (qui est une partie d'un ensemble de routines, donc seule elle n'a pas de sens) Bruno Toniutti ;FONCTION : copie un fichier avec respect de :; la date d'origine du fichier copier; controle des status lecture seule et/ou en cours d'édition du fichier destination; identification de la session pour un fichier en cours d'édition;;LANCEMENT PAR : (CopyFileServer source target);;PROPRIETE : BERIM;;REALISATION : Bruno TONIUTTI BTO Responsable CAO DAO;;VERSION : 1.051109 première version; 1.051110 ajout de l'identification de la session pour un fichier en cours d'édition; 1.051114 utilisation de vl-filename-base (débugué avec la 2006); 1.051115 correction de la construction du fichier dwl; +optimisation mineure;;REMARQUE : 1.051115 testée sous AutoCAD MAP 3D 2006 Win XP Pro sp2; L'identification des sessions fonctionne aussi avec AutoCAD LT 2005 2006; Du fait de l'usage de vl-filename-base, nécessite AutoCAD >= 2006 pour être OK avec fichier terminé par " .dwg";;-------------------------------------------------------------------------------------------------------------- (defun CopyFileServer (oldPathFileName newPathFileName / catch idDwl dwl objWsh objFile idFile success message) (setq success nil) (if (findfile oldPathFileName) (progn (setq objWsh (vlax-create-object "Scripting.FileSystemObject")) (if (findfile newPathFileName) (if (setq idFile (open newPathFileName "a")) (progn (close idFile) (vlax-invoke-method objWsh 'CopyFile oldPathFileName newPathFileName :vlax-true) (setq message "copy is OK") (setq success T) ) (progn (setq objFile (vlax-invoke-method objWsh 'GetFile newPathFileName)) (if (eq 1 (logand 1 (vlax-get objFile 'Attributes))) (setq message "target file is read only") (progn (setq dwl (strcat path_job "\\" (vl-filename-base newPathFileName) ".dwl")) (if (findfile dwl) (progn (setq idDwl (open dwl "r")) (setq message (strcat "target file is open by " (read-line idDwl))) (close idDwl) ) (setq message "target file is opened by unknown user") ) ) ) (vlax-release-object objFile) ) ) (progn (vlax-invoke-method objWsh 'CopyFile oldPathFileName newPathFileName :vlax-true) (setq message "copy is OK") (setq success T) ) ) (vlax-release-object objWsh) ) (setq message "source file not found") ) (mapcar '(lambda (x) (set x nil)) '(catch oldPathFileName newPathFileName idDwl dwl objWsh objFile idFile)) (list success message))
tyrese69_ Posté(e) le 9 août 2006 Posté(e) le 9 août 2006 Bonjour à tous, Une autre particularité des FSO, c'est l'accés aux infos des bulles de l'explorateur, en yincluant les propriétés des fichiers AutoCAD par exemple ! Daniel OLIVES
Tramber Posté(e) le 9 août 2006 Posté(e) le 9 août 2006 Oh les gars, je suis largué, notamment à propos des sendkeys et des infos-bulles. Je crois comprendre, mais elle fait aussi la vaisselle cette famille de fonction ? Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Patrick_35 Posté(e) le 9 août 2006 Posté(e) le 9 août 2006 Salut TramberRegarde ces liensSecrets Windows.comIntroduction à VScriptApprendre le VBScriptLe langage VBScriptTutorial VBScriptTutorial JavaScript-VBScriptDictaticiel VBScriptProgrammation VBScript @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
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