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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Библиотека функций > DwgRuLispLib: Запуск скрипт-файлов *.js и *.vbs

DwgRuLispLib: Запуск скрипт-файлов *.js и *.vbs

Ответ
Поиск в этой теме
Непрочитано 26.01.2008, 22:46 #1
DwgRuLispLib: Запуск скрипт-файлов *.js и *.vbs
Supermax
 
Руководитель фирмы
 
Москва
Регистрация: 28.03.2007
Сообщений: 1,831

Код:
[Выделить все]
;;; ************************************************************************
;;; * Библиотека DWGruLispLib Copyright ©2007  DWGru Programmers Group
;;; *
;;; * DwgRu-WScript-Exec
;;; *
;;; * 14/01/2008 Версия 0003.    Андрей Лазебный (Supermax)
;;; ************************************************************************
;;; Функция выполняет переданный аргументом скрипт-файл сценария, создавая новый дочерний процесс. 
 ;;; Синтаксис:
 ;;; (dwgru-wscript-exec <WScriptFile> <WCchoice>)
 ;;; Аргументы:
 ;;;  WScriptFile - (строка) Полный путь и имя скрипт-файла с расширением  *.js или *.vbs а также параметры командной строки wscript.exe
 ;;;  Параметры командной строки не обязательны их значение получаем запуском (DwgRu-WScript-Exec "//?")
 ;;;  WCchoice - (строка или nil) "" или nil - запуск скрипт-файла через WScript.ехе; "C" - запуск скрипт-файла через СScript.ехе (С - латинское)
;;; Возврат:
 ;;; Вла-объект, который позволяет контролировать ход выполнения запущенного приложения 
 ;;; и обеспечивает доступ к потокам StdIn, StdOut и StdErr этого приложения.

(defun dwgru-wscript-exec ( WScriptFile WCchoice / svr svr1)
  (setq svr (vlax-get-or-create-object "WScript.Shell"))
  (if (or  (= WCchoice nil) (= WCchoice ""))
      (setq svr1 (vlax-invoke-method svr "Exec" (strcat "WScript " WScriptFile)))
      (if (= (strcase WCchoice) "C") 
        (setq svr1 (vlax-invoke-method svr "Exec" (strcat "CScript " WScriptFile)))
        (progn (vlax-invoke-method svr "Popup" 
           "Не правильно указан аргумент WCchoice! \n nil или \"\" - запуск скрипт-файла через WScript.ехе 
           \"C\" - запуск скрипт-файла через СScript.ехе" "30" 
           "Ошибка в аргументе функции dwgru-wscript-exec" "48")
         (quit))
      ); конец if-2
    ); конец if-1
   (vl-catch-all-apply '(lambda () (vlax-release-object svr)))
   (print svr1)
  ); конец defun 

;;;*********************** Дальнейшее функцией не является *********************
;;; Источник описания метода Exec: http://www.script-coding.info/WSH/WshShell.html#3.4.
;;; Пример использования: 
;;; Создаем блокнотом файл fst.js в корне диска С:\ 
;;; В файле всего одна строка WScript.Echo("Привет!"); 
;;; Запускаем функцию (setq script (DwgRu-WScript-Exec "C:\\fst.js" ""))
;;; Смотрим свойства и методы данного объекта (vlax-dump-object script T)
;;; Освобождаем объект (vl-catch-all-apply '(lambda () (vlax-release-object script)))

Вложения
Тип файла: rar fst.rar (94 байт, 567 просмотров)
Тип файла: lsp DwgRu-WScript-Exec.lsp (2.4 Кб, 533 просмотров)


Последний раз редактировалось Supermax, 29.01.2008 в 15:29.
Просмотров: 26544
 
Автор темы   Непрочитано 27.01.2008, 12:28
#2
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Kpblc! Если ты сносишь прикрепленные файлы, то будь добр, делай это как цивилизованный человек, а не как хакер! Лень что ли пару строчек написать?
Supermax вне форума  
 
Непрочитано 27.01.2008, 15:26
#3
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Стоп. Так там не было прикрепленных файлов... Я просто объединил 2 сообщения и добавил тэги code. Если снес, прошу прощения - честно, не со зла. Сможешь повторить?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 27.01.2008, 17:24
#4
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Да повторить не проблема, только вот на ум пришло добавить необязательный признак, чтобы можно было выбирать чем запускать WScript или CScript. WScript ес-с-но по умолчанию.
Supermax вне форума  
 
Автор темы   Непрочитано 29.01.2008, 14:27
#5
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Изменил первый пост. Теперь функция работает как с WScript, так и с CScript.
Supermax вне форума  
 
Автор темы   Непрочитано 29.01.2008, 15:17
#6
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Код:
[Выделить все]
;;; ************************************************************************
;;; * Библиотека DWGruLispLib Copyright ©2007  DWGru Programmers Group
;;; *
;;; * DwgRu-WScript-Run
;;; *
;;; * 14/01/2008 Версия 0001.    Андрей Лазебный (Supermax)
;;; ************************************************************************
;;; Функция выполняет переданный аргументом скрипт-файл сценария, создавая новый независимый процесс. 
 ;;; Синтаксис:
 ;;; (dwgru-wscript-Run <WScriptFile> <WindowStyle> <WaitOnReturn> <WCchoice>)
 ;;; Аргументы:
 ;;; < WScriptFile> - (строка) Полный путь и имя скрипт-файла с расширением  *.js или *.vbs а также параметры командной строки wscript.exe
 ;;;  Параметры командной строки не обязательны их значение получаем запуском (DwgRu-WScript-Run "//?" "0" "" "")
 ;;; <WindowStyle> - (строка) число. Определяет вид окна запускаемого приложения. Некоторые возможные значения: 
 ;;;  0 - Не отображает окно. 
 ;;;  1 - Активизирует и отображает окно. 
 ;;;  2 - Активизирует окно и отображает его в свёрнутом виде. 
 ;;;  3 - Активизирует окно и отображает его в максимизированном виде. 
 ;;; <WaitOnReturn> - (строка) булево (число). 
 ;;; True - сценарий возобновит работу только после завершения вызванного процесса. 
 ;;; False (по умолчанию) - управление передаётся сразу обратно в сценарий. 
 ;;; если параметр "WaitOnReturn" установлен в True, метод возвращает код выхода вызванного приложения. Иначе метод всегда возвращает ноль.
 ;;;  <WCchoice> - (строка или nil) "" или nil - запуск скрипт-файла через WScript.ехе; "C" - запуск скрипт-файла через СScript.ехе (С - латинское)
;;; Возврат:
 ;;; Вла-объект, который позволяет контролировать ход выполнения запущенного приложения 
 ;;; и обеспечивает доступ к потокам StdIn, StdOut и StdErr этого приложения.

(defun dwgru-wscript-run ( WScriptFile WindowStyle WaitOnReturn WCchoice / svr svr1)
  (setq svr (vlax-get-or-create-object "WScript.Shell"))
  (if (or  (= WCchoice nil) (= WCchoice ""))
      (setq svr1 (vlax-invoke-method svr "Run" (strcat "WScript " WScriptFile " " WindowStyle " " WaitOnReturn)))
      (if (= (strcase WCchoice) "C") 
        (setq svr1 (vlax-invoke-method svr "Run" (strcat "CScript " WScriptFile " " WindowStyle " " WaitOnReturn)))
        (progn (vlax-invoke-method svr "Popup" 
           "Не правильно указан аргумент WCchoice! \n nil или \"\" - запуск скрипт-файла через WScript.ехе 
           \"C\" - запуск скрипт-файла через СScript.ехе" "30" 
           "Ошибка в аргументе функции dwgru-wscript-exec" "48")
         (quit))
      ); конец if-2
    ); конец if-1
   (vl-catch-all-apply '(lambda () (vlax-release-object svr)))
   (print svr1)
  ); конец defun 

;;;*********************** Дальнейшее функцией не является *********************
;;; Источник описания метода Run: http://www.script-coding.info/WSH/WshShell.html#3.4.
;;; Пример использования: 
;;; Создаем блокнотом файл fst.js в корне диска С:\ 
;;; В файле всего одна строка WScript.Echo("Привет!"); 
;;; Запускаем функцию (setq script (DwgRu-WScript-Run "C:\\fst.js" "0" "False" "c"))
;;; Смотрим свойства и методы данного объекта (vlax-dump-object script T)
;;; Освобождаем объект (vl-catch-all-apply '(lambda () (vlax-release-object script)))
Вложения
Тип файла: lsp DwgRu-WScript-Run.lsp (3.2 Кб, 492 просмотров)

Последний раз редактировалось Supermax, 29.01.2008 в 15:30.
Supermax вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Библиотека функций > DwgRuLispLib: Запуск скрипт-файлов *.js и *.vbs

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск