Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Desktops, monitors and show form / 5 сообщений из 5, страница 1 из 1
22.04.2014, 17:59
    #38621995
ART-CODE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Desktops, monitors and show form
Всем привет!
Заинтересовался темой вывода формы Windows-приложения на любой из
имеющихся мониторов и на любой из имеющихся рабочих столов.

С мониторами еще более-менее понятно,
а вот как переключаться между рабочими столами - пожалуйста, поделитесь информацией, у кого есть.
Использую sysinternals: desktops.exe

Известно, например, что при наличии 2х Monitors, мы можем иметь всего один, общий на все мониторы - Screen.
А при наличии нескольких рабочих столов - будет несколько Screen ?

Я заметил, что некоторые программы умеют открывать свои формы сразу на всех рабочих столах.
Например - окно обновления то-ли firefox то ли adobe reader (не помню точно) приходится закрывать
на всех рабочих столах, когда выскакивает.

Интересно, что другие программы так себя не ведут.
Как они это сделали ?
Нужно для каждого рабочего стола свой экземпляр программы запускать ?
...
Рейтинг: 0 / 0
23.04.2014, 01:01
    #38622336
ART-CODE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Desktops, monitors and show form
Еще интересное наблюдение - даже если вручную запустить несколько копий программы - по одной на каждом рабочем столе,
то реагировать на нажатия горячей кнопки, запрегистрированной через RegisterHotKey / UnregisterHotKey
будет только программа лишь на одном из них.
Т.е. та же программа и та же кнопка на других столах - не реагируют.
Или надо как-то иначе регистрировать и ловить хоткей в каждой копии программы.

Наверно, нужно будет по-честному создавать DLL для глобального хука,
далее как-то разбираться с тем какая из копий программы должна это обработать ?
...
Рейтинг: 0 / 0
23.04.2014, 09:16
    #38622474
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Desktops, monitors and show form
ART-CODEЯ заметил, что некоторые программы умеют открывать свои формы сразу на всех рабочих столах.
Например - окно обновления то-ли firefox то ли adobe reader (не помню точно) приходится закрывать
на всех рабочих столах, когда выскакивает.

Интересно, что другие программы так себя не ведут.
Как они это сделали ?
Нужно для каждого рабочего стола свой экземпляр программы запускать ?
они просто не видят другие свои экземпляры.
...
Рейтинг: 0 / 0
23.04.2014, 09:30
    #38622492
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Desktops, monitors and show form
ART-CODEто реагировать на нажатия горячей кнопки, запрегистрированной через RegisterHotKey / UnregisterHotKey
будет только программа лишь на одном из них.
Так и должно быть судя по хэлпу
http://msdn.microsoft.com/en-us/library/windows/desktop/ms646309(v=vs.85).aspx Parameters

hWnd [in, optional]
Type: HWND
A handle to the window that will receive WM_HOTKEY messages generated by the hot key. If this parameter is NULL, WM_HOTKEY messages are posted to the message queue of the calling thread and must be processed in the message loop.
Вызывай RegisterHotKey() в той копии, которая должна обработать.
...
Рейтинг: 0 / 0
23.04.2014, 12:36
    #38622839
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Desktops, monitors and show form
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Desktops, monitors and show form / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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