Задать вопрос
@lu1ssuarez

Как передать переменные между программами без обращения к диску?

В программе Excel передает переменные в скомпилированный autoit скрипт и наоборот. Сейчас передача осуществлена через обращения в базу и файлы с переменными на диске. Хочу уйти от использования физ памяти в сторону оперативной. Понимаю, что возможно использовать хранилище в оперативной памяти, но не могу понять механизм взаимодействия и excel, и autoit с программой в ОП. Например, с VBS скриптом-посредником. Через WinAPI я могу запустить, остановить батник, но как делать запросы к скрипту? Реализовать API в нем?

Прошу назвать существующие решения передачи значений переменных без использования дисковой памяти.
  • Вопрос задан
  • 275 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
mindtester
@mindtester Куратор тега Windows
http://iczin.su/hexagram_48
с одной стороны вариантов много, с другой стороны
велосипед не нужно изобретать


1 - Excel, как и все программы MS Office, имеет развитую инфраструктуру OLE Automatin, в том числе доступную практически из всех основных скриптовых инструментов. пример запроса https://duckduckgo.com/?q=AutoIt+OLE+Automatin&t=f...

2 - если запускаете внешний скрипт из самого Excel, вспомните, что всегда можно передать какие то входные параметры. допустим сообщить скрипту путь к книге, имя листа, адрес ячейки/диапазона и тд. потом из скрипта использовать OLE Automatin к этой книге/листу и тд. пример запроса https://duckduckgo.com/?q=AutoIt+%D0%B2%D1%85%D0%B...

ps при необходимости, просто замените в запросах AutoIt на VBS, BAT, WSH, PowerShell, C#, VisualBasic и так далее

pps
Когда писал свой вопрос, думал об аналоге scripting.dictionary с возможностью обращения из другой программы: в процессах висит словарь, одна программа в него пишет, другая - читает. И казалось, что доработка API к существующему словарю - плевое дело.
Excel книга в роли "словаря" (или InMemoryDB) с доступом по OLE - самый простой в освоении вариант

есть и много других. но придется учиться программировать. самая популярная легковесная БД - SQLite. кстати, имеет режим InMemory

какие проблемы? творите! ))
- https://duckduckgo.com/?q=AutiIt+SLQlite&t=ffab&ia=web
- https://duckduckgo.com/?q=Excel+SLQlite&t=ffab&ia=web
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы