Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2012, 18:29   #1
Djeki
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 136
По умолчанию Передать в День.exe два массива переменных и получить обратно

Уважаемые знатоки Экселя .. Столкнулся со следующей задачей : запустить из VBA экзэшник - например День.exe и передать ему пару - тройку массивов переменных для обработки, а так же пару значений Boolean. После обработки принять от экзешника эти массивы и переменные Boolean. Закрыть из VBA этот экзэшник и удалить.
Пока у меня получается:
1.Запустить:
Shell Name - всё работает, где Name - полный путь экзэшника;
2. Копирую из VBA в буфер обмена WIN - один массив переменных, а хотелось бы несколько массивов. Как это можно сделать?
3. Обратно получить в VBA несколько обработанных экзэшником массивов. Как это сделать?
4. Закрыть и удалить этот экзэшник..

Спасибо за ответ.
Djeki вне форума Ответить с цитированием
Старый 23.06.2012, 18:47   #2
Djeki
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 136
По умолчанию

Можно эту задачу решить так: из VBA создать файл TXT и записать туда массив, во второй созданный файл записать второй массив, и т.д. Из экзэшика записать в эти файлы обработанные массивы. Но нет ли пути короче? .
Djeki вне форума Ответить с цитированием
Старый 24.06.2012, 13:10   #3
Djeki
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 136
По умолчанию

Остался один вопрос:
Я запустил экзешник, а как его закрыть ??
Путь "C:\Documents and Settings\Евгений\Рабочий стол\День.exe"
Djeki вне форума Ответить с цитированием
Старый 24.06.2012, 16:07   #4
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Код:
Sub Killer()
        Dim Process As Object
        For Each Process In GetObject("winmgmts:").ExecQuery("Select * from Win32_Process")
                If Process.Caption Like "День*" Then
                        Process.Terminate
                End If
        Next
End Sub
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 24.06.2012, 16:54   #5
Djeki
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 136
По умолчанию

Спасибо уважаемый doober .. Проверил - работает..
Djeki вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разобрать,отредактировать и собрать обратно exe файл. Sintez_ice Помощь студентам 13 14.11.2012 20:46
Текущая дата минус один день в cmd.exe royun Операционные системы общие вопросы 1 15.11.2011 14:24
Передача массива из main() в функцию и обратно. Си Pecho Помощь студентам 1 31.08.2011 23:06
Через командную строку передать два слова и целое число N. gas777 Общие вопросы C/C++ 5 23.06.2011 19:59
Два одномерных массива A и B. Сформировать два новых массива. Паскаль. Где ошибка в коде? Tomny Помощь студентам 1 27.03.2011 16:47