Русский
English
Главная
RastrWin
Программа
Последние изменения
Часто задаваемые вопросы
Аннотация
Лицензирование и защита от копирования
Права Windows для пользователя RastrWin
Курсы
Компонентная архитектура
Интерфейс
Инструкция по установке
Документация, видео, презентации
Свидетельство о регистрации
RastrKZ
RastrMDP
RastrOS
ZamerSeti
Архив
Bars-Lincor
Расчетная модель
Система моделирования
Последние изменения
Программа
Инструкция пользователя
Инсталляция
RUStab
Загрузка
Последние изменения
Поддержка
Поддержка
Форум
Техподдержка
Персональная
Макро студия
Макро студия
Автоматизация
Работа с SQL
Оценка параметров ЛЭП и ТР
Эффективность размыкания сети
Анализ напряжений в Excel
Автоматизация с "AutoIt"
Создание графа сети из режима
Передача графики в SVG
Вариантные расчеты
Импортозамещение
О нас
О компании
Фотогалерея
Пользователи
Отчеты об использовании своего имущества
Реквизиты
Поддержка
Форум
Техподдержка
Персональная
Авторизация
Запомнить меня на этом компьютере
Забыли свой пароль?
Регистрация
Поиск по сайту
Подписка
Новости Bars- Lincor
Новости RastrWin
Общие новости
Новости RUStab
Изменение параметров
Hits
66985641
4228
Hosts
3541077
661
Visitors
53213052
2878
13
Главная
/
Поддержка
/
Форумы
/
Макро
Форум «Макро»
Версия для печати
Список форумов
Новые темы
Список тем
Поиск по форумам
Помощь
Войти
Регистрация
Тема: «
Макро + Rastr3
» в форуме:
Макро
Просмотров: 10577
Иван Почечуев
Постоянный посетитель
Всего сообщений:
175
Дата регистрации:
24.06.2010
Создано:
27.08.2012 17:22:34
Доброго времени суток , с грусть заметил что излюбленный способ остановки макросов из растра 2 через msgbox("") и нажатие на кнопку стоп в растре 3 не работает, вопрос в том как теперь можно прекратить работу макроса во время его выполнения ?
Профиль
Наверх
Вадим
Гость
Создано:
27.08.2012 18:27:08
можно просто написать quit
когда программа дойдет до этого, то выдаст сообщение несоответствие типа и завершится..
можно что угодно писать, лишь бы вышла ошибка
Наверх
Вадим
Гость
Создано:
27.08.2012 19:01:34
можно даже вешать различные условия на выход типа if i=3 then quit, как только i станет 3 программа аварийно завершится )
Наверх
Иван Почечуев
Постоянный посетитель
Всего сообщений:
175
Дата регистрации:
24.06.2010
Создано:
29.08.2012 14:55:48
Может кто подскажет как в макросе выполнить действия 1)закрыть все окна
2)обновить данные в excel
Профиль
Наверх
Вадим
Гость
Создано:
29.08.2012 16:47:28
самый простой метод:
использовать утилиты типа AutoIt или autohotkey: запись движений мыши и клавиатуры, выполнение поставить на горячие клавиши
непростой метод:
посмотреть в сторону SendCommandMain
Наверх
Евгений Машалов
Администратор
Всего сообщений:
1046
Дата регистрации:
23.04.2007
Создано:
29.08.2012 17:25:17
Обновить данные в Excel через ДРВ ? Если да, и растр на второй платформе, то написано в
Пользовательский интерфейс
-Динамический обмен с MS Excel
--Интеграция с Microsoft Excel
---ServeRTD
Профиль
Наверх
Вадим
Гость
Создано:
30.08.2012 19:49:29
Закрытие окон можно сделать через winapi
для вызова функций использовал DynamicWrapperX (http://www.script-coding
.com/dynwrapx.html)
по скрипту: сначала просматриваются все открытые окна, ищется в заголовке Rastr, далее в найденном окне ищутся и закрываются все дочерние окна
Код
const WM_CLOSE=&H10
Set DX = CreateObject("DynamicWrap
perX")
DX.Register "user32", "EnumWindows", "i=pl"
DX.Register "user32", "EnumChildWindows", "i=hpl"
DX.Register "user32", "SendMessage", "i=huul", "r=l"
DX.Register "user32", "GetWindowTextW", "i=hWl" ' Вариант Unicode.
' DX.Register "user32", "GetWindowText", "i=hSl" ' Вариант ANSI.
Set RefMain = GetRef("CbkEnumWin") ' Получение ссылки на функцию.
Set RefChild = GetRef("CbkEnumChildWin")
' Получение ссылки на функцию.
pCbkFuncMain = DX.RegisterCallback(RefMa
in, "i=hl", "r=l") ' Регистрация CbkEnumWin
' как функции обратного вызова
' и получение указателя.
pCbkFuncChild = DX.RegisterCallback(RefCh
ild, "i=hl", "r=l")
WinList = ""
Title = Space(256) ' Буфер под заголовок окна (выходная строка).
DX.EnumWindows pCbkFuncMain, 0 ' Вызов EnumWindows с передачей ей указателя на
' callback-функцию.
'msgbox "Список окон:" & vbcrlf & winlist
' ................ Собственно callback-функция .......................
Function CbkEnumWin(hwnd, lparam)
DX.GetWindowTextW hwnd, Title, 256
' DX.GetWindowText hwnd, Title, 256 ' Вариант ANSI.
If Len(Title) > 0 Then ' Если длина заголовка больше 0, заносим в список.
if (instr(1,title,"Rastr")>0
) then
DX.EnumChildWindows hwnd,pCbkFuncChild, 0
end if
End If
CbkEnumWin = 1 ' Если вернуть 0, вызовы прекратятся.
End Function
Function CbkEnumChildWin(hwnd, lparam)
DX.GetWindowTextW hwnd, Title, 256
' DX.GetWindowText hwnd, Title, 256 ' Вариант ANSI.
If (Len(Title)> 0) Then ' Если длина заголовка больше 0, заносим в список.
if (instr(1,Title,"Ready")=0
) then DX.Sendmessage hwnd, WM_CLOSE, 0, 0
winlist=winlist & Title & vbcrlf
End If
CbkEnumChildWin = 1 ' Если вернуть 0, вызовы прекратятся.
End Function
Наверх
Михаил Одинцов
Постоянный посетитель
Всего сообщений:
148
Дата регистрации:
22.07.2008
Создано:
30.08.2016 13:14:08
Попробовал в версии 1.77.0.34965 запустить свой старый макрос (он в экселе, много строк - пока не стал пихать его в сообщение) с автоматикой и на строке
kod = Rastr.RunAutomatic(1, 1)
теперь выдается ошибка что Methods RunAutomatic of object IRastr failed.
При этом например метод расчета режима и другие методы работает. Также работает макрос с автоматикой, если запускаешь из под Растр, а со сторонних программ не работает.
Хотелось бы уточнить что, связанное с автоматикой и их работой с макросами, изменилось в новых версиях.
Сам файл автоматики в шаблоне amt, (dwf -я так понимаю автоматика для динамики?), в растре работоспособность проверена. Файл автоматики и шаблон загружается. Не могу найти зацепку и понять в чем проблема.
Профиль
Наверх
Евгений Машалов
Администратор
Всего сообщений:
1046
Дата регистрации:
23.04.2007
Создано:
30.08.2016 15:59:59
Если в Растре работает, а во внешней программе нет - скорее всего что-то с шаблонами, т.к. Растр загружает их при старте, а внешняя программа нет. Проверьте по списку в протоколе после старта Растр.
Если не поможет, из внешней программы перед RunAutomatic сделайте Rastr.Save "all","" из этот "all" можете сами загрузить без шаблона в Растр и попробовать RunAutomatic, и если снова не работает - присылайте на mashalov@niipt-ems.ru.
Профиль
Наверх
Читают тему
гостей:
1
, пользователей:
0
, из них скрытых:
0
Список форумов
Новые темы
Список тем
Поиск по форумам
Помощь
Войти
Регистрация
Программный комплекс «RastrWin»
© «RastrWin», 1988-2019