Как из lisp запустить еxe?
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как из lisp запустить еxe?

Как из lisp запустить еxe?

Ответ
Поиск в этой теме
Непрочитано 11.01.2010, 15:46 #1
Как из lisp запустить еxe?
tinik_89
 
Регистрация: 23.12.2009
Сообщений: 23

Как из lisp запустить еxe?
Просмотров: 9557
 
Непрочитано 11.01.2010, 16:14
#2
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от tinik_89 Посмотреть сообщение
Как из lisp запустить еxe?
имхо догадаться и самому в общем-то не сложно - я с первого же раза попал на нужную команду.
Сторонее приложение можно запустить из коммандной строки автокада с помощью команды start.
Как это выполнить на лиспе - уже не должно составить труда. Например запускаем ворд:
Код:
[Выделить все]
(command "_start" "winword")
путь к winword.exe не указываю, поскольку он указан в системной переменной операционной системы. Но можно указывать и полный путь, не забыв заменить в строке каждый '\' на '\\' или на '/'.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 11.01.2010 в 16:23.
hwd вне форума  
 
Непрочитано 12.01.2010, 10:03
#3
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


1. Пост #2
2. startapp
3. С помощью wscript.shell. Правда нужен уже VLISP
Код:
[Выделить все]
(vl-load-com)
;;;Вариант 1
(setq arg "C:\\test.txt") ;_аргументы
(vlax-invoke-method (setq f (vlax-get-or-create-object "wscript.shell"))
    "run"
    (strcat "notepad.exe " arg)
    1
    :vlax-true) ;_ end of vlax-invoke-method
  (vlax-release-object f)

;;;Вариант 2
(setq arg "C:\\test.txt") ;_аргументы
(vlax-invoke-method (setq f (vlax-get-or-create-object "wscript.shell"))
    "run"
    (strcat "notepad.exe " arg)
    1
    :vlax-false) ;_ end of vlax-invoke-method
  (vlax-release-object f)
Обрати внимание в варианте 1 пока не закроешь блокнот, Автокад будет не доступен (Т.е. ждем окончания процесса)
4. Библиотека doslib
5. См #13
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 14.07.2011 в 14:36. Причина: Добавлен п.5
VVA вне форума  
 
Непрочитано 24.06.2011, 13:56
#4
kontrR


 
Регистрация: 24.06.2011
Сообщений: 8


Господа, очень хочется открывать нужные СНиПы из меню Автокада , но почему то строка
(STARTAPP "winword.exe C:/Program Files/AutoCAD 2007/NORMSPIA/snip31012003.doc")
не помогает. Ворд открывается, но пишет что требуемый файл либо не найден, либо не доступен, либо используется другим приложением...
В чем подвох? Заранее благодарен..
kontrR вне форума  
 
Непрочитано 24.06.2011, 14:26
#5
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


аргумент командной строки передавай отдельным параметром (startapp "winword.exe" "xxx.doc")
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 24.06.2011, 14:40
#6
kontrR


 
Регистрация: 24.06.2011
Сообщений: 8


Цитата:
Сообщение от Дима_ Посмотреть сообщение
аргумент командной строки передавай отдельным параметром (startapp "winword.exe" "xxx.doc")
(STARTAPP "winword.exe" "C:/Program Files/AutoCAD 2007/NORMSPIA/snip31012003.doc")
То же самое, не работает(((
kontrR вне форума  
 
Непрочитано 24.06.2011, 14:58
#7
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


C:/Program Files/AutoCAD 2007/NORMSPIA/snip31012003.doc замени на C:\\Program Files\\AutoCAD 2007\\NORMSPIA\\snip31012003.doc
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 24.06.2011, 15:04
#8
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 6,009


Цитата:
Сообщение от Дима_ Посмотреть сообщение
(STARTAPP "winword.exe"
путь к winword.exe укажи
"C:\\Program Files\\Microsoft Office\\OFFICE11\\WINWORD.EXE"
Nike вне форума  
 
Непрочитано 24.06.2011, 15:10
#9
kontrR


 
Регистрация: 24.06.2011
Сообщений: 8


(STARTAPP "winword.exe" "C:\\Program Files\\AutoCAD 2007\\NORMSPIA\\snip31012003.doc")

Не хочет.(( может дело в Ворде?

RE: путь к winword.exe укажи

Да Ворд то открывается, но как новый документ, и выдает сообщение что требуемый файл либо найден, либо не доступен, либо используется другим приложением...

Последний раз редактировалось kontrR, 24.06.2011 в 15:16.
kontrR вне форума  
 
Непрочитано 24.06.2011, 15:51
#10
tokhot

Проектирование
 
Регистрация: 17.11.2004
г. Москва
Сообщений: 328


Путь должен быть без пробелов
tokhot вне форума  
 
Непрочитано 24.06.2011, 15:54
#11
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 6,009


(setq
doc_path "\"C:\\Program Files\\AutoCAD 2007\\NORMSPIA\\snip31012003.doc\""
app_path "\"C:\\Program Files\\Microsoft Office\\OFFICE11\\WINWORD.EXE\""
)

(startapp app_path doc_path)
Nike вне форума  
 
Непрочитано 24.06.2011, 16:00
#12
kontrR


 
Регистрация: 24.06.2011
Сообщений: 8


Цитата:
Сообщение от Nike Посмотреть сообщение
(setq
doc_path "\"C:\\Program Files\\AutoCAD 2007\\NORMSPIA\\snip31012003.doc\""
app_path "\"C:\\Program Files\\Microsoft Office\\OFFICE11\\WINWORD.EXE\""
)

(startapp app_path doc_path)

Вот это работает, спасибо большое)))

(setq
doc_path "\"C:\\Program Files\\AutoCAD 2007\\NORMSPIA\\snip31012003.doc\"")
(startapp "WINWORD.EXE" doc_path)

И вот это тоже..

Последний раз редактировалось kontrR, 24.06.2011 в 16:09.
kontrR вне форума  
 
Непрочитано 24.06.2011, 17:44
#13
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Запуск приложения, которое зарегестрировано для данного типа файла (за расширением)
Код:
[Выделить все]
(defun vva-xopen (name / di na sh)
;; get from Patrick_35
;; http://www.theswamp.org/index.php?topic=29548.0 
;;;Usage 
;;;(setq my_file (vva-xopen "c:/test.txt")) 
;;;(setq my_file (vva-xopen "c:/test.avi")) 
;;;(setq my_file (vva-xopen "c:/test.3gp")) 

  (and   (setq name (findfile name)) 
   (setq sh (vlax-create-object "Shell.Application")) 
   (setq di (vlax-invoke sh 'Namespace (vl-filename-directory name))) 
   (setq na (vlax-invoke di 'parsename (strcat (vl-filename-base name) (vl-filename-extension name)))) 
   (vlax-invoke-method na 'invokeverbex "open") 
  ) 
  (vlax-release-object sh) 
  na 
)
Использование
Код:
[Выделить все]
(setq
 doc_path "C:\\Program Files\\AutoCAD 2007\\NORMSPIA\\snip31012003.doc")
 (vva-xopen  doc_path)
Вариант от {Smirnoff}

Код:
[Выделить все]
(defun OpenFile(FileFullName / ShellApp)
  (vl-load-com)
  (if
    (setq ShellApp
      (vla-getInterfaceObject
        (vlax-get-acad-object)
        "Shell.Application"))
    (progn
  (if(findfile FileFullName)
  (vlax-invoke-method ShellApp 'ShellExecute FileFullName)
  (princ(strcat "\n** File " FileFullName " not found! **"))
    ); end if
  (vlax-release-object ShellApp)
  (setq ShellApp nil)
  ); end progn
    ); end if
  (princ)
  ); end of OpenFile
Пример
Код:
[Выделить все]
(OpenFile "C:\\Documents and Settings\\Alexander\\Мои документы\\Documentation\\Test.doc")
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 04.05.2014 в 09:39.
VVA вне форума  
 
Непрочитано 24.06.2011, 18:33
#14
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


что мешает скомпилить из ворда чм файл и запускать стандартной (help <filename>)?
gomer вне форума  
 
Непрочитано 14.07.2011, 12:36
#15
Tonic


 
Регистрация: 26.06.2007
Воронеж
Сообщений: 151


VVA, отличный совет! У меня отказался запускаться exe-шник методом использования wscript.shell (не во всех версиях AutoCAD), а этот, последний метод, идёт "на ура".
Tonic вне форума  
 
Непрочитано 14.07.2011, 18:51
#16
kontrR


 
Регистрация: 24.06.2011
Сообщений: 8


Цитата:
Сообщение от gomer Посмотреть сообщение
что мешает скомпилить из ворда чм файл и запускать стандартной (help <filename>)?
Еще бы знать, как это сделать.. И кстати, а таблицы скомпилируются?
kontrR вне форума  
 
Непрочитано 14.07.2011, 19:28
#17
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от kontrR Посмотреть сообщение
кстати, а таблицы скомпилируются?
Еще как!
gomer вне форума  
 
Непрочитано 15.07.2011, 09:18
#18
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от kontrR Посмотреть сообщение
Еще бы знать, как это сделать..
Не знаешь сам, спроси у гугла
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как из lisp запустить еxe?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как получить LISP код фрагмента? DY LISP 32 17.02.2020 07:58
Как при помощи Lisp добраться до элементов не активного или вообще закрытого листа DWG? back1981 LISP 3 23.10.2009 19:39
Как можно из LISP запросить у юзера выделить произвольные элементы и затем вызвать аналог WMFOUT для сохранения их в изображении? lexluther LISP 4 12.08.2009 11:44
LISP. Как определить вставку блока с xclip? Apelsinov LISP 4 18.02.2009 14:03
Как вывести текст в model из приложения написанного на lisp? paradoxvaha AutoCAD 3 16.04.2007 03:54