Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Corba";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];

Вниз

Подключение GetObject om к уже запущенному Excel   Найти похожие ветки 

 
Fktrc ©   (2005-01-23 21:44) [0]

Хотя вопрос и не по delphi, но все же близко к теме конференции...

Люди умные, объясните, что происходит, ибо "нич-чего не понимаю"(С). Ситуация: WSH 5.6, Excel 2003. Имеется следующий JS-скрипт:[code]var Excel;
var WSH = new ActiveXObject("WScript.Shell");

while(!Excel){
  try {
     // пытаемся подключиться к запущенному экземпляру Excel
     Excel = GetObject("", "Excel.Application");
  } catch(a) {
     WScript.Sleep(1000);
  }
}
WScript.Echo("Excel closing...");
Excel.Application.Quit();[/code]Вроде все правильно - в бесконечном цикле ожидаем запуска Excel. Если к нему удалось подключиться, выходим из цикла, выдаем сообщение "Excel closing..." и после его закрытия закрываем Excel. Результаты же запуска скрипта озадачивают не на шутку!

Первый вариант запуска: Сначала запускаем Excel. Затем запускаем скрипт. Он отрабатывает, как и должен - подключается к Excel, выдает сообщение и закрывает Excel.

Второй вариант, ради которого, собсно, и затевался сыр-бор: сначала запускаем скрипт. Он, как и положено, крутится в цикле, периодически пробуя подключиться к Excel. Запускаем Excel. Ждем... (Excel запущен и активен!) еще ждем... и еще ждем... . Нифига. Но стоит переключиться из окна Excel на любое другое окно (да хоть мышкой по панели задач щелкнуть), как тут же выскакиваем окошко "Excel closing...".
То есть такое впечатление, как будто сразу после запуска Excel его OLE сервер неактивен или не создан. Но как только окно Excel теряет фокус, то OLE сервер тут же создается, либо активизируется, позволяя подключиться к себе...

Казалось бы, бред полный. Но факты - упрямая вещь. Кто поопытнее меня, разъясните, в чем замес. А то я уже просто не знаю что и думать...


 
Fktrc ©   (2005-01-24 09:13) [1]

Fktrc ©   (23.01.05 21:44)
По великой запарке неправильно тему написал, правильно будет не "к уже запущенному Excel", а просто к Excel, так как на момент запуска скрипта его еще нет...


 
Sancho ©   (2005-01-28 15:21) [2]

var Ex = new ActiveXObject("Excel.Application");



Страницы: 1 вся ветка

Форум: "Corba";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.059 c
14-1129645154
Rem
2005-10-18 18:19
2005.11.06
Кто придумывает анекдоты?


2-1129388903
Боян Георгиев
2005-10-15 19:08
2005.11.06
Как завершить програму без обекта Application


1-1129182769
Andruid
2005-10-13 09:52
2005.11.06
Алгоритм простейшего элемента нейросетей - компаратора


4-1125583313
AngelFire
2005-09-01 18:01
2005.11.06
Получение уровня привелегий процесса


3-1127233408
Galiaf
2005-09-20 20:23
2005.11.06
Поиск в столбце Name.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский