|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
16.01.2008, 14:05 | #1 | |
Объекты СОМ в AutoCAD
Руководитель фирмы
Москва
Регистрация: 28.03.2007
Сообщений: 1,831
|
||
Просмотров: 39451
|
|
||||
От блин! Спасибо Profan!
Должно быть: ; IWshShell3: Shell Object Interface (тут я не уверен) ; Значения свойств: ; CurrentDirectory = ...Индексированное содержимое не выводится... ; Environment = "System" ; SpecialFolders = Путь к папке ; Поддерживаемые методы: ; ExpandEnvironmentStrings (1) ; Popup (4) ; SendKeys (1) ; Run (3) ; Exec (1) ; AppActivate (1) ; RegDelete (1) ; RegRead (1) ; RegWrite (3) ; LogEvent (3) ; CreateShortcut (1) T Чувствуете разницу? Меня смущает IWshShell3 Боюсь, что объект перехватывается не той dll-кой. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,847
|
http://msdn2.microsoft.com/en-us/lib...3k(VS.85).aspx
http://msdn2.microsoft.com/en-us/lib...h7(VS.85).aspx http://msdn2.microsoft.com/en-us/lib...xf(VS.85).aspx Хотя и под VS 2005, но объект WScript не менялся, насколько я понял.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
А по человечески сказать что сделать нельзя?
Такое ощущение, что WScript.Shell несколько в разных dll-ках и происходит тот кошмар, о котором гудят на форумах по скриптам. Где этот гад IWshShell3 лежит? И как его временно заткнуть? Последний раз редактировалось Supermax, 16.01.2008 в 15:07. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,847
|
AutoCAD 2005:
Код:
Код:
Код:
А по ссылкам (особенно последней) можно посмотреть вообще все методы, которые существуют в WScript.Shell. Там и Run упоминается, в частности.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Если на VBA написать:
Код:
Хотя свойства показывает, что одно и методов не наблюдает. В реале свойств 3 см. выше. VBA лезет не в system32, а в свою директорию а в system 32 лежит тоже wshom.ocx если его переименовать, то создается вновь. Слегка ошибся в названии wshom.ocx Последний раз редактировалось Supermax, 16.01.2008 в 16:14. |
||||
|
||||
Все! И в лиспе заработало.
(setq oWsh (vlax-create-object "WScript.Shell")) (vlax-invoke-method oWsh "Popup" "Вы точно хотите грохнуть винчестер?" "3" "Убийца винчестеров" "0") ;(шутка) Оказывается описанное здесь: http://www.script-coding.info/WSH/WshShell.html#3.11. В описании метода Popup не годится для использования из под AutoLISP-а. Исправления для этого случая выделены красным. Синтаксис: Popup(<Text>,<SecondsToWait>,<Title>,<Type>) Назначение: выводит на экран модальное окно сообщения. Параметры: <Text> - необязательный строка, текст сообщения. <SecondsToWait> - обязательный, (а там необязательный)число. Количество секунд, по истечении которого окно будет автоматически закрыто. <Title> - необязательный, строка. Текст заголовка окна сообщения. <Type> - обязательный (там тоже необязательный), число. Комбинация флагов, определяет тип кнопок и значка. Возможные значения флагов: 0 - кнопка ОК. 1 - кнопки ОК и Отмена. 2 - кнопки Стоп, Повтор, Пропустить. 3 - кнопки Да, Нет, Отмена. 4 - кнопки Да и Нет. 5 - кнопки Повтор и Отмена. 16 - значок Stop. 32 - значок Question. 48 - значок Exclamation. 64 - значок Information. Описание: возвращает целое значение, с помощью которого можно узнать, какая кнопка быля нажата пользователем. Возможные значения: -1 - таймаут. 1 - кнопка ОК. 2 - кнопка Отмена. 3 - кнопка Стоп. 4 - кнопка Повтор. 5 - кнопка Пропустить. 6 - кнопка Да. 7 - кнопка Нет. Если вы хотите увидеть рядом с сообщением значек Information и при этом чтобы было Стоп, Повтор, Пропустить, то есть 2, то надо сложить 64+2 и там написать 66. Пример: (vlax-invoke-method oWsh "Popup" "Цена проги 100$" "3" "Прайс-лист" "66") Последний раз редактировалось Supermax, 16.01.2008 в 19:29. |
||||
|
||||
Увы, в думпе видим фигу, а на деле и свойства все читаются (проверил) и методы работают. Более того, метод Exec имеет только один аргумент, а в думпе написано 2. Вот, какие пироги.
О последней ссылки Kpblc-a: Это для английской версии Windows и во многом применимо только для VBA. Для лиспа, как видим из вышеописанного надо проверять всех атрибуты на обязательность и не обязательность. По другим объектам скорее всего тоже. Последний раз редактировалось Supermax, 16.01.2008 в 19:33. |
||||
|
||||
Следующая заковыка.
ADODB.dll ---------------------------------------------------- ADODB.Connection создается ADODB.Stream создается ADODB.Recordset создается ADODB.Command создается ADODB.Field создается только после использования метода Open объекта ADODB.Recordset ADODB.Fields создается только после использования метода Open объекта ADODB.Recordset Последний раз редактировалось Supermax, 19.01.2008 в 16:28. |
||||
|
||||
Цитата:
Если открывал, то код в студию... |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,847
|
Для работы с ADO достаточно использовать библиотеку ADOLisp (http://fleming-group.com/, да и здесь на форуме уже несколько раз мелькала). В документации по ней описывается все что только можно
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Елпанов Евгений
(vl-load-com) (setq svr (vlax-get-or-create-object "ADODB.Recordset")) ; сздаем объект (vlax-dump-object svr T); распечатываем Dump (vl-catch-all-apply '(lambda () (vlax-release-object svr))); освобождаем объект. Во его свойства и методы: Код:
http://www.w3schools.com/ado/met_rs_open.asp http://translate.google.com/translat...006-40,GGLR:en Я хотел что-нибудь открыть, да так и не решил что. Последний раз редактировалось Supermax, 17.01.2008 в 12:58. |
||||
|
||||
Цитата:
потом его необходимо открыть, передав ему все 5 аргументов... Пока ты его не откроешь, у тебя нет выбранных данных! Сам посуди, если ты создал объект Recordset , он же даже не знает, из какого файла тебе нужны данные. А поле Fields - это и есть выбранные sql запросом данные из конкретной базы данных, из конкретной таблицы и отобранные конкретным фильтром... Вот мой самый старый вариант программы, чтения базы данных. Даю именно этот вариант - в нем очень подробные коментарии по аргументам... Код:
Последний раз редактировалось Елпанов Евгений, 30.08.2011 в 00:55. |
||||
|
||||
Цитата:
Все остальные варианты еще более специализированы, к тому же, почти без комментариев.. |
||||
|
||||
Наш человек! Я тоже не любитель библиотек. Правда DLL это как бы спуск на ярус ниже. Ближе к ассемблеру. Их функции на ОС заточены и без них много не напишешь. Вон в 9-ом посте какие крутые окошки можно вызывать, а на лиспе я только одну функцию знаю - alert, которая примитив-примитивом
Пошли дальше: CDOEX.DLL ----------------------------------------- CDO.Addressee CDO.Appointment CDO.Attendee CDO.CalendarMessage CDO.Configuration CDO.DropDirectory CDO.Folder CDO.Item CDO.Message CDO.NNTPEarlyConnector CDO.NNTPFinalConnector CDO.NNTPPostConnector CDO.Person CDO.SMTPConnector Описание тут: Collaboration Data Object http://pda.computerra.ru/index.php?a...=26296&id=7627 только для Windows 2000. Во всяком случае, у меня нет программы, работающей с этой dll-кой и устанавливаться под XP она не желает. Вот ее описание: |
||||
|
||||
cdosys.dll
----------------------------------------------- CDO.Message CDO.DropDirectory CDO.Configuration CDO.DLL ------------------------------------------------- MAPI.Session Не рекомендую проводить эксперементы с MAPI.Session и CDO.Message с включенны интернетом и на работе с сетью. Я лчно сервак фирмы на пол часа подвесил. Тоже работают под XP и вот их описания: |
||||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
запуск программы из AutoCADа | kminas | Программирование | 19 | 15.06.2012 13:42 |
AutoCAD 2005 не открывает бесплатные 3Д объекты | LenkA | AutoCAD | 3 | 11.02.2009 01:52 |
Уже работаю в AutoCAD 2006, но нужна книжка чтобы знать все тонкости работы с 2D графикой. | Unt0nich | Поиск литературы, чертежей, моделей и прочих материалов | 17 | 06.05.2008 17:58 |
AUTOCAD 2006 | Aragorn | AutoCAD | 14 | 01.04.2005 00:55 |
Что нового в AutoCAD 2005 | ilka_t | AutoCAD | 40 | 19.05.2004 16:48 |