Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
24.02.2005, 22:33
|
|||
|---|---|---|---|
Раз Ексель, два Ексель... Как подключиться к нужному? |
|||
|
#18+
Собственно говоря, ситуация проста - юзером запущено несколько процессов Екселя (открыто несколько книг), а мне из своего приложения нужно подключиться к последнему Екселевскому окну, с которым работал юзер . Тоесть, по нажатию кнопочки в форме нужно каким то образом определить, какое из окон юзер покинул последним (обозначив там некоторые ячейки), подключиться к нему и выполнить некоторые действа.... Приложение на VB.NET самостоятельное, ничего не знает ни об имени книги, ни об имени листа.... К сожалению, GetObject(, "Excel.Application") в этом случае не помошник (дает ссылку только на первый созданный экземпляр Екселя, которого в принципе даже может и не существовать, потому как уже закрыли). Хотя, если допустить что приложение в течении одной сессии будет работать только с единственным Екселем (и потом они оба будут закрыты) - то этот способ прокатывает нормально. Попробовал посмотреть при помощи Код: plaintext 1. 2. 3. 4. Кто нибудь решал подобную задачу? Или хотя бы в какую сторону копать...... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2005, 02:04
|
|||
|---|---|---|---|
Раз Ексель, два Ексель... Как подключиться к нужному? |
|||
|
#18+
<imho> есть такое ощущение, что список процессов мало поможет. здесь нужна история их перелючения. такую "историю" можно отслеживать, повесив глобальный хук на сообщение WM_ACTIVATEAPP. каждый раз по параметрам фиксируя, из какого приложения было сделано переключение (wParam=FALSE - потеря активности приложением и lParam=ThreadId). </imho> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2005, 14:46
|
|||
|---|---|---|---|
Раз Ексель, два Ексель... Как подключиться к нужному? |
|||
|
#18+
кузятакую "историю" можно отслеживать, повесив глобальный хук на сообщение WM_ACTIVATEAPP. каждый раз по параметрам фиксируя, из какого приложения было сделано переключение (wParam=FALSE - потеря активности приложением и lParam=ThreadId).Скорее всего... Попробуем копнуть в эту сторону.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.02.2005, 18:04
|
|||
|---|---|---|---|
Раз Ексель, два Ексель... Как подключиться к нужному? |
|||
|
#18+
Попробовал разобраться в этой технологии... Однако, не просто... Примеры, которые нарыл показывают как сделать хук на уровне приложения. Тоесть, вижу что получает/теряет фокус только мое окно. А вот переделать так чтоб на уровне системы, чтоб любое оно отслеживалось - что то не получается... Не подкинете ли примерчик? ps: может быть эта задача слишком сложна, чтоб мне самостоятельно ее решить.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.02.2005, 00:41
|
|||
|---|---|---|---|
Раз Ексель, два Ексель... Как подключиться к нужному? |
|||
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.02.2005, 03:42
|
|||
|---|---|---|---|
Раз Ексель, два Ексель... Как подключиться к нужному? |
|||
|
#18+
Andres 1Напрямую глобальные хуки в .NET не поддерживаютсяyes, по описанию MSDN - нужно делать native DLL. однако, не все так однозначно :) например, можно установить глобальный хук из exe (!!!) сборки на перехват WH_KEYBOARD_LL. и вопреки процитированному из MSDN утверждению - этот глобальный хук работает. примеры можно найти в сети и на нашем сайте в разделе C#. эта возможность доступна, т.к. windows при обработке низкоуровневых хуков (WH_XX_LL) переключает контексты выполнения. а вот с фильтрами WH_CALLWNDPROC или WH_CBT для глобальных хуков - практически наверняка работать надо ТОЛЬКО через unmanaged dll. PS вообще хуки - это зло :) могут возникнуть настолько сильные тормоза в работе, что впору задуматься о других путях решения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=20&tablet=1&tid=1437162]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 219ms |
| total: | 378ms |

| 0 / 0 |
