powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Окрытые приложения Excell
25 сообщений из 39, страница 1 из 2
Окрытые приложения Excell
    #33326523
klyapin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BCB 6.0 Задача следующая: получать данные из Excell.
Но вот прблема...
Есть несколько окрытых приложений Excell из ОФИСА 2003.
Как получить именно открытое сейчас (активное) приложение Excell (не путаем с книгами или листами в одном приложении) а не то, которое было открытым первым.
Или как получить список этих приложений для далнейшего присвоения к Аpp

Пользуюусь этим:

try
{ Variant App=Variant::GetActiveObject("Excel.Application"); }
catch(...) {;}

Помогите!
...
Рейтинг: 0 / 0
Окрытые приложения Excell
    #33326679
Фотография Lelikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приложение всегда одно.
________________________________________________________
Глюк - это высокоорганизованная система не поддающихся определению частиц
...
Рейтинг: 0 / 0
Окрытые приложения Excell
    #33327109
klyapin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Lelikk]Приложение всегда одно.
/quot]

:) Ну это понятно, что его видно. Хочу что-бы программа, активное в определенный момент приложение тоже видела.
...
Рейтинг: 0 / 0
Окрытые приложения Excell
    #33327142
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelikkПриложение всегда одноэто ты здорово придумал
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Окрытые приложения Excell
    #33327666
klyapin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LelikkПриложение всегда одно.


В условии есть несколько окрытых приложений Excell...
...
Рейтинг: 0 / 0
Окрытые приложения Excell
    #33328943
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Карабас Барабас LelikkПриложение всегда одноэто ты здорово придумал
Это не он придумал. Это Микрософт придумал :)
Эксели некоторых версий пытаются вместо запуска новой копии приложения сделать новую рабочую книгу внутри уже запущенного приложения. Но это поведение различается в разных версиях, видимо Микрософты сами не решили что лучше :)
...
Рейтинг: 0 / 0
Окрытые приложения Excell
    #33329469
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чушь не надо нести. Количество открытых приложений Excell напрямыю зависит от того КАК их открывать
...
Рейтинг: 0 / 0
Окрытые приложения Excell
    #33330024
klyapin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gluk (Kazan)Чушь не надо нести. Количество открытых приложений Excell напрямыю зависит от того КАК их открывать

да понятно все это. но что делать если есть несколько окрытых приложений Excell?
...
Рейтинг: 0 / 0
Окрытые приложения Excell
    #33330067
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда открываешь его запоминай в Variant, Получил лист - запомнил его.
В этом случае тебя мало волнует какой жизнью живет Excell. Разьве-что его насильственно закроют :)
...
Рейтинг: 0 / 0
Окрытые приложения Excell
    #33330138
klyapin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gluk (Kazan)Когда открываешь его запоминай в Variant, Получил лист - запомнил его.
В этом случае тебя мало волнует какой жизнью живет Excell. Разьве-что его насильственно закроют :)

Тоже вариант, но это прийдется присать какой - то сервис который отслеживает "поведение екселя в системе", а этого делать совсем не хочется... Проще сказать: надо получить список уже открытых екселей при запуске своего приложения. Может средствами самого Бейсика в экселе можно это сделать, чтобы получить ссылку на необходимй Excel.Application? Но что-то я этого найти не могу...
...
Рейтинг: 0 / 0
Окрытые приложения Excell
    #33330165
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну нафига тебе за ним следить ??? Ты работаешь со своим листом и ниипет
...
Рейтинг: 0 / 0
Окрытые приложения Excell
    #33330232
Tov. Drujba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
klyapinBCB 6.0 Задача следующая: получать данные из Excell.
Но вот прблема...
Есть несколько окрытых приложений Excell из ОФИСА 2003.
Как получить именно открытое сейчас (активное) приложение Excell (не путаем с книгами или листами в одном приложении) а не то, которое было открытым первым.
Или как получить список этих приложений для далнейшего присвоения к Аpp

Пользуюусь этим:

try
{ Variant App=Variant::GetActiveObject("Excel.Application"); }
catch(...) {;}

Помогите!

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
var
  myExcel: Variant;
begin
  try
    myExcel := GetActiveOleObject('Excel.Application');
  except
    on EOLESysError do
      myExcel := CreateOleObject('Excel.Application');
  end;

Код для Дельфи, но думаю суть ясна :) Если необходимо именно активное приложение, то вот тебе щастье.
...
Рейтинг: 0 / 0
Окрытые приложения Excell
    #33330401
klyapin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tov. Drujba Код для Дельфи, но думаю суть ясна :) Если необходимо именно активное приложение, то вот тебе щастье.
Если Вы не заметили. то я написал то-же самое
(
выглядит оно так

try
{ Variant App=Variant::GetActiveObject("Excel.Application"); }
catch(...)
{
try { App=Variant::CreateObject("Excel.Application"); } catch (...) {;}
}

для билдера, но счастья нет...
...
Рейтинг: 0 / 0
Окрытые приложения Excell
    #33330415
klyapin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gluk (Kazan)Ну нафига тебе за ним следить ??? Ты работаешь со своим листом и ниипет

Да нет у меня проблем с листами и книгам
есть проблема с приложениями! Приложений ексель несколько...
...
Рейтинг: 0 / 0
Окрытые приложения Excell
    #33330453
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если ты СМОЖЕШЬ различить эти приложения как пользователь, можешь также разчить их программно :) Если нет - то чего тебе об этом беспокоится ???

Скажи Оммммм и подыши
...
Рейтинг: 0 / 0
Окрытые приложения Excell
    #33330526
Tov. Drujba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
klyapin Tov. Drujba Код для Дельфи, но думаю суть ясна :) Если необходимо именно активное приложение, то вот тебе щастье.
Если Вы не заметили. то я написал то-же самое
(
выглядит оно так

try
{ Variant App=Variant::GetActiveObject("Excel.Application"); }
catch(...)
{
try { App=Variant::CreateObject("Excel.Application"); } catch (...) {;}
}

для билдера, но счастья нет...

Хм, у меня работало. А Ваш код не посмотрел. Извиняюсь.
...
Рейтинг: 0 / 0
Окрытые приложения Excell
    #33330527
klyapin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gluk (Kazan)Если ты СМОЖЕШЬ различить эти приложения как пользователь, можешь также разчить их программно :) Если нет - то чего тебе об этом беспокоится ???

Скажи Оммммм и подыши

в случае если приложений много код
{ Variant App=Variant::GetActiveObject("Excel.Application"); }
catch(...) {;}

возвращает ссылку на открытое первым приложение а не активное в настоящее время....

"Оммммм" + дышу....
...
Рейтинг: 0 / 0
Окрытые приложения Excell
    #33330580
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А Вы сделайте ему Quit и поищите другое

Продолжайте дышать ...
...
Рейтинг: 0 / 0
Окрытые приложения Excell
    #33331419
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
klyapin, почитай вот здесь: http://support.microsoft.com/default.aspx?scid=kb;en-us;288902
Там описано как раз то, что ты хочешь.
...
Рейтинг: 0 / 0
Окрытые приложения Excell
    #33332151
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да не написано там чего он хочет. Он хочет по GetObject открывать не первый попавшийся Excell, а строго определенный. Причем как он его собирается строго определять он не говорит
...
Рейтинг: 0 / 0
Окрытые приложения Excell
    #33332160
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, теперь узрел

Код: plaintext
GetObject("Book2").Application
...
Рейтинг: 0 / 0
Окрытые приложения Excell
    #33332951
klyapin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gluk (Kazan)Да не написано там чего он хочет. Он хочет по GetObject открывать не первый попавшийся Excell, а строго определенный. Причем как он его собирается строго определять он не говорит

Я писал "Как получить именно открытое сейчас (активное) приложение Excell (не путаем с книгами или листами в одном приложении) а не то, которое было открытым первым. ".
Я думаю, что это достаточно строгое определение (в некотором приблежении :) ).

White Owlklyapin, почитай вот здесь: http://support.microsoft.com/default.aspx?scid=kb;en-us;288902
Там описано как раз то, что ты хочешь.

+

Gluk (Kazan)Ага, теперь узрел

Код: plaintext
GetObject("Book2").Application


огромное спасибо за ссылочку.
по моему вопросу там пишется следующее:

GetObject
GetObject is used to attach to a running instance of an automation server. There are a few different ways to call GetObject, but the syntax that is recommended for the Microsoft Office applications is as follows:
set xlApp = GetObject(, "Excel.Application")
If an instance of Microsoft Excel is running when this code is executed, you have access to the running instance's object model through the xlApp variable. If no instance is running, you receive the following trappable run-time error message:
Run-time error '429':
ActiveX component can't create object
If multiple instances of Microsoft Excel are running, GetObject attaches to the instance that is launched first. If you then close the first instance, another call to GetObject attaches to the second instance that was launched, and so forth.

You can attach to a specific instance if you know the name of an open document in that instance. For example, if an instance of Excel is running with an open workbook named Book2, the following code attaches successfully to that instance even if it is not the earliest instance that was launched: Set xlApp = GetObject("Book2").Application

В принципе меня это может устроить, однако есть еще вопрос как получить список workbоо-ков активных, (через список приложений в системе?) и что если есть несколько instance имеют одинаковые имена открытых workbook - ов?
Я понимаю, что данные вопросы довольно непоняты ведь в основном используют импорт в ексель, однако у меня стоит задача экспорта из нескольких книг которые могут быть запущены также из нескольких приложений. :(
...
Рейтинг: 0 / 0
Окрытые приложения Excell
    #33333015
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
klyapinчто если есть несколько instance имеют одинаковые имена открытых workbookСлушай, успокойся, нельзя объять необъятное :) (С)
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Окрытые приложения Excell
    #33333241
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 klyapin

Обратись к разработчикам Excell :)
...
Рейтинг: 0 / 0
Окрытые приложения Excell
    #33333734
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
klyapinВ принципе меня это может устроить, однако есть еще вопрос как получить список workbоо-ков активных, (через список приложений в системе?) и что если есть несколько instance имеют одинаковые имена открытых workbook - ов?
Проще всего через функцию EnumWindows() получить список всех окон, выбрать из них те у которых заголовок начинается с "Microsoft Excel" Потом через FindWindowEx можешь составить список книг открытых в каждой из копий Экселя.
...
Рейтинг: 0 / 0
25 сообщений из 39, страница 1 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / Окрытые приложения Excell
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]