Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Программирование игр для компьютеров > С#

С# Средство разработки на платформе .Net

Ответ
 
Опции темы
Старый 20.02.2014, 00:00   #1
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,573
Написано 407 полезных сообщений
(для 863 пользователей)
EnumWindows. Перехват окон, созданных другим процессом

Привет, булка!
Смотри, какая есть задача: Есть win-сервис, который запущен от user1.

А я сижу под юзером user2.

Я запускаю какую-нибудь программу, у неё вылазит окно на рабочий стол. Программа имеет 1 основной процесс, он работает, естественно, от user2.

А мой сервис, работающий под user1 должен это окно обнаружить, и произвести с ним страшные махинации.

Я использую EnumWindows функцию из WinAPI. По-идее, она должна перечислить мне все окна, одно из которых будет как раз то самое окно.

но! не находит. Окно есть, а дебугер говорит, что нет его.

ока, я думал, может юзеру1 прав не дано, чтоб окна от user2 подсматривать. Написал тулзу WinForms, запустил её от имени user1 - прекрасно находит всё, что нужно.

Итак, вопрос: влияет ли на EnumWindows тот факт, что процесс запущен в неинтерактивной среде? И может ли он таки получить список окон, созданных процессами другого пользователя?
__________________
(Offline)
 
Ответить с цитированием
Старый 20.02.2014, 00:08   #2
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,925
Написано 3,414 полезных сообщений
(для 9,328 пользователей)
Ответ: EnumWindows. Перехват окон, созданных другим процессом

Хороший вопрос, я думаю будь это возможно - не было бы смысла в изоляции пользователей. Если мы говорим о Windows Vista и новее, думаю что логично не допускать вмешательства в приложения другого пользователя.

Ответ же наверняка есть в MSDN
__________________
(Offline)
 
Ответить с цитированием
Старый 20.02.2014, 00:38   #3
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: EnumWindows. Перехват окон, созданных другим процессом

ну может как вариант заделать системным сервисом чтобы запускался для всех пользывателей, может у них есть такой доступ
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 06:23.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com