Текущий архив: 2007.08.05;
Скачать: CL | DM;
Вниз
Перебор терминальных сессий Найти похожие ветки
← →
sniknik © (2007-05-25 23:47) [0]Или както по другому... Смысл, мне надо из сервиса посылать сообщения (типа WM_COPYDATA, и др. пользовательские) клиенту (просто программе).
И сервис и клиенты (копии программы) работают только на сервере, к которому народ подключается через "подключение к удаленному рабочему столу", естественно программа запускается в различных терминалах, а сообщение от сервиса приходит только к той которая запущена в консольной сессии (mstsc.exe /CONSOLE).
Что бы такого придумать, чтобы посылать всем запущенным программам? По идее надо перебрать все сессии и в каждой найти "свою" программу, и если найдена продублировать, послать копию сообщения. Но вот как это сделать? Т.к. область для меня новая... в общем есть функции какие то? (перечисление терминалов? типа как есть перечисление десктопов/окон, или нужно как то управлять сервером терминалов (есть API)? С чего начать в общем.
Да, еще. "Обходные" пути, типа переделать передачу на, по сокетам, пайпам и т.д. не предлагать. ;) Думал уже, не получится, программу переделать не могу, не моя (и контора отказывается менять), как есть у нее набор сообщений принимаемых прямо окном, так и останется (в крайнем случае инфа будет только в консоли...), а вот сервис мой, могу менять как заблагорассудится.
← →
Eraser © (2007-05-25 23:52) [1]WTSSendMessage? )
← →
Eraser © (2007-05-25 23:56) [2]ну если серьезно, то думаю с пом. WTSEnumerateSessions перебрать все сессии, и пробовать в каждой искать "свой" процесс-клиент, которому через IPC давать команду "отослать сообщение WM_COPYDATA".
← →
sniknik © (2007-05-25 23:59) [3]Вот оно! WTS... спасибо, действительно есть
WTSSendMessage -> перебор сессий WTSEnumerateSessions -> процессы в сессиях WTSEnumerateProcesses... и т.д.
Теперь найду.
Страницы: 1 вся ветка
Текущий архив: 2007.08.05;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.042 c