![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Заблокирован
Регистрация: 24.06.2009
Сообщений: 28
|
![]()
Хотел запросто получить ссылки на все Excel.Application.
По наивности думал как-то пробиться через Process.GetProcessesByName("excel") . Мало того, что задуманное не получилось – удивило то, что 1. для скрытых Excel в VB .NET «Process.MainWindowHandle = 0» ! Взял API FindWindowEx и AccessibleObjectFromWindow. FindWindow видит все хэндлы. Но 2. чтобы получит ссылку на Excel, используя AccessibleObjectFromWindow, нужен хэндл окна книги – окна класса "EXCEL7". Без окон "XLMAIN" и "XLDESK" Excel'я не может быть, но при этом окна "EXCEL7" может (если нет открытых книг) не быть вовсе! Как получить ссылку на такой Excel? Буду согласен с теми, кто (как и я) считает, что такие Excel надо сразу убивать… С этого момента можно перейти к еще одной особенности: 3. если Excel создан с помощью «New Excel.Application», почему-то его окна по отношению к (например) API «ShowWindow» или «SendMessage», порой ведут себя не как другие окна "XLMAIN"… Другие – это открытые «руками» или командой «Open»… Бардак! Если никто не поможет получить ссылки на все/любые Excel.Application, пожалуюсь главврачу… |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
![]()
Надо спасать от врачей
Код:
Таким образом получаю список процессов в комбобокс ,и когда закнчиваю работать с EXCEL убиваю его принудительно,другие методы не помагают Вопрос интересный,надо покопать в этом направлении
Анализ,обработка данных Недорого
|
![]() |
![]() |
![]() |
#3 |
Заблокирован
Регистрация: 24.06.2009
Сообщений: 28
|
![]()
Нужны-то не процессы, а ссылки на Excel.Application, чтобы использовать свойства/методы Excel.
VB9 Код:
Последний раз редактировалось пасечник; 22.12.2009 в 23:51. |
![]() |
![]() |
![]() |
#4 |
Новичок
Джуниор
Регистрация: 16.11.2015
Сообщений: 2
|
![]()
Будьте добры, подскажите пожалуйста, если я создаю объект "excel.application", как мне узнать Id процесса, с учетом того, что на момент создания другие процессы excel могли быть запущены, то есть Process.GetProcessesByName("EXCEL") .id может найти не тот процесс?
Последний раз редактировалось Pabloa; 16.11.2015 в 12:59. |
![]() |
![]() |
![]() |
#5 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]() Код:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#6 |
Новичок
Джуниор
Регистрация: 16.11.2015
Сообщений: 2
|
![]() |
![]() |
![]() |
![]() |
#7 |
2 the Nation Glory
Старожил
Регистрация: 27.05.2014
Сообщений: 3,289
|
![]()
ну а строкой
Код:
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы. |
![]() |
![]() |
![]() |
#8 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
однако... (у меня на компьютере) так:
Код:
и зачем это нужно? когда xlApp - это приложение со всеми его свойствами и методами. что такого особого Вам даст xlID???
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как программировать на VS2008 не используя .NET | TLVAleXZ | Общие вопросы .NET | 9 | 27.10.2009 02:10 |
Как запретить запуск программы на VBA Excel 2003 в Excel 2007 | kovalevskivf | Microsoft Office Excel | 2 | 15.05.2009 16:47 |
не получается связать две формы использую с++ в проекте Windows Application Form (не MFC) VS2008 | molodoy-pirat | Windows Forms | 2 | 23.04.2009 10:27 |
настроить при открытии Excel 2003 в окошке "Тип файлов" вывод пункта "Все файлы (*.*)" по умолчанию? | Unior | Microsoft Office Excel | 2 | 01.03.2009 02:42 |
Хелп! Перестали работать все ссылки в excel | nniikkmmeenn | Microsoft Office Excel | 4 | 20.05.2008 16:57 |