Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Как в Delphi узнать, запущен ли Word или Excel

Ответить
Настройки темы
Delphi - Как в Delphi узнать, запущен ли Word или Excel

Аватара для Kroc

Пользователь


Сообщения: 73
Благодарности: 0

Профиль | Отправить PM | Цитировать


FindWindow()не катит, т.к. нужно знать точное название заголовка. Если
перебирать все окна, и сравнивать по части строки заголовка - как-то некрасиво.
Кто знает метод поинтересней?

Отправлено: 00:57, 14-10-2004

 

Модер


Сообщения: 1716
Благодарности: 17

Профиль | Сайт | Отправить PM | Цитировать


Kroc
Поискать по имени файла процесса?
Поискать по имени КЛАССА окна?
Поискать в Running Object Table (не уверен, впрочем, что они там регистрируются)?

Вопрос на засыпку: если я в своей программе создаю объект Word.Application и он создается в МОЕМ процессе, при этом ни одного окна с ним связанного нет, это считается, что WORD запущен?

-------
Васкецов Сергей
http://registry.oszone.net


Отправлено: 13:32, 14-10-2004 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Kroc

Пользователь


Сообщения: 73
Благодарности: 0

Профиль | Отправить PM | Цитировать


vasketsov
Цитата:
по имени файла процесса
Если применить CreateToolhelp32Snapshot , а затем перебирать с помощью
Process32First и Process32Next ? *Так опять перебирать... Или ещё как?
Цитата:
Поискать по имени КЛАССА окна?
Да уж...(см. свой же вопрос). Нужно вычислить именно запущённое в ЛЮБОЙ форме приложение Оффиса.
Цитата:
Поискать в Running Object Table
Как? Ну, допустим, вызвал я GetRunningObjectTable, получил указатель на ROT, а
дальше... что-то смутно понимаю как это сделать.

Вот я что придумал:
перехватить ошибку OleSysError при
GetActiveOleObject('Excel.Application'); // так же с Word
вообще-то работает...

Отправлено: 00:09, 15-10-2004 | #3


Модер


Сообщения: 1716
Благодарности: 17

Профиль | Сайт | Отправить PM | Цитировать


Kroc
1. Сомневаюсь, что будет работать, если Word запущен на другом WindowStation/Desktop и к нему нет доступа.
2. Чую, что задача немного не та решается, например, может надо просто узнать, что определенный файл используется, и т.п.

-------
Васкецов Сергей
http://registry.oszone.net


Отправлено: 18:27, 15-10-2004 | #4


Аватара для Kroc

Пользователь


Сообщения: 73
Благодарности: 0

Профиль | Отправить PM | Цитировать


vasketsov
Вообще-то задача такая:
Написал "надстройку для модели COM" для Ворда  и Экселя, чтобы одновременно с их запуском подгружать мой ехешник. Так вот ехешничку и надо подконнектиться...
Всё бы ничего, но при таком запуске как раз одновременности и нет  Я засекал время, подключение происходит только через 3-4 секунды после запуска обоих программ.

Отправлено: 00:51, 16-10-2004 | #5


Аватара для Kroc

Пользователь


Сообщения: 73
Благодарности: 0

Профиль | Отправить PM | Цитировать


Нормальные герои идут кривым путём
uses ... ComObj,...
...
var
   ExAp : Variant;
begin
 try    
//если не найден, вызывается исключение
   ExAp := GetActiveOleObject('Excel.Application');

    except

 end;
...
Аналогично с Word.

Тему можно закрыть...Спасибо всем.

Отправлено: 00:26, 27-10-2004 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Как в Delphi узнать, запущен ли Word или Excel

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Узнать имя пользователя, от которого запущен процесс vitalisvv AutoIt 4 16-09-2009 01:16
Как восстановить демо версию Word, Excel serg-v Ноутбуки 2 26-05-2008 21:33
Delphi - Delphi: Как узнать параметры, с которыми запускаласьпрограмма? HrUser Программирование и базы данных 2 19-09-2005 07:18
перенос графика из excel в word Naug Программирование и базы данных 1 24-09-2004 12:00
Delphi - Как в Delphi узнать, есть процесс в памяти или нет? [mzd] Программирование и базы данных 5 15-09-2003 12:46




 
Переход