Работа IAS с Excel

Системная платформа - продукт для комплексной автоматизации процессов предприятия от Wonderware.

Работа IAS с Excel

Сообщение skom » Пн ноя 01, 2010 1:31 pm

Добрый день, читая документацию по IAS я встретил несколько примеров работы с Excel:
-- с помощью библиотеки импортированных типов;
-- с помощью функции CreateObject.

1. Мы используем 2 пример, и существует одна проблема -- как закрыть процесс excel.exe с учётом того, что может быть открыто несколько процессов (как документов на сервере, так и процессов для формирования отчётов в IAS). Т.е. надо как-то при старте процесса запомнить его PID, и убить процесс по нему. Вопрос в том как это сделать при использовании функции CreateObject?

2. Где взять эту библиотеку импортированных типов для работы с Excel? Или её надо самому скомпилировать например на c#? Есть ли вообще где-нибудь стандартные библиотеки, доступные для скачивания? Ведь, как я понимаю, пример приведён в документации, то всё это где-то есть в электронном виде?
skom
 
Сообщения: 173
Зарегистрирован: Вт окт 02, 2007 5:25 pm

Сообщение Klinkmann_Msk » Пн ноя 08, 2010 8:34 am

To skom:

System.Diagnostics.Process.Id
Вроде он должен возвращать PID
Klinkmann_Msk
 
Сообщения: 819
Зарегистрирован: Пт сен 18, 2009 10:12 am

Сообщение skom » Ср ноя 10, 2010 12:13 pm

Klinkmann_Msk писал(а):To skom:

System.Diagnostics.Process.Id
Вроде он должен возвращать PID


Надо знать handle окна, нам надо убить одно окно из набора.
skom
 
Сообщения: 173
Зарегистрирован: Вт окт 02, 2007 5:25 pm

Сообщение Klinkmann_Msk » Ср ноя 10, 2010 12:16 pm

To skom:

Насколько я помню, Handle присваивается при выполнении CreateObject?
Klinkmann_Msk
 
Сообщения: 819
Зарегистрирован: Пт сен 18, 2009 10:12 am

Сообщение skom » Ср ноя 10, 2010 1:55 pm

Klinkmann_Msk писал(а):To skom:

Насколько я помню, Handle присваивается при выполнении CreateObject?


при выполнении

app = CreateObject("Excel.Application");

в app содержится указатель на область памяти, в котором располагается объект Excel.Application, а не handle окна. Я так понимаю.

т.е. если я делаю так:

app1 = CreateObject("Excel.Application");
app2 = CreateObject("Excel.Application");
app3 = CreateObject("Excel.Application");

как мне убрать из памяти процесс app2, чтобы и 1 из 3 процессов excel закрылся. Вот в чём проблема.
skom
 
Сообщения: 173
Зарегистрирован: Вт окт 02, 2007 5:25 pm


Вернуться в Wonderware System Platform

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10