Текущее время: 28 мар 2024, 17:39 • Часовой пояс: UTC + 3 часа
Сообщения без ответов | Активные темы

Использование FindWindow в контексте службы

Начать новую темуОтветить на тему Страница 1 из 1 [ Сообщений: 3 ]
Версия для печати Пред. тема | След. тема
АвторСообщение
Сообщение Добавлено: 17 мар 2011, 11:43. Заголовок сообщения:  Использование FindWindow в контексте службы
Зарегистрирован:
    16 мар 2011, 14:18
Сообщения: 4
Есть такой код:
Код:
protected void Button1_Click(object sender, EventArgs e)
        {
       
            const string WIN_CLASS = "TMain";
            const string APP_NAME = "BeholdTV";

            ctl01.Text = "";
            IntPtr hWnd = FindWindow(WIN_CLASS, APP_NAME);
            if (hWnd.Equals(IntPtr.Zero))
            {
                ctl01.Visible = true;
                ctl01.Text = "Не возможно найти проигрыватель: ";
                return ; }

            const int WM_USER = 0x0400; // Standard, from Windows.h
            const int WM_BHCMD = WM_USER + 200;

            SendMessageA(hWnd, WM_BHCMD, WM_USER + 201, DropDownList1.SelectedIndex + 1);
             
        }

Если данный код исполняется как обычное приложение, тогда FindWindow находит окно и им можно управлять.
Если этот код я использую в WEB приложении (ASP), опубликовав страницу в IIS, то функция FindWindow не находит окна.
(причем в режиме отладки в Visual Studio все ок)
Я так понимаю, что в данной ситуации процедура запускается под системной учетной записью в контексте службы, для которой запрещено взаимодействие с рабочим столом.
Я поставил для служб IIS Admin и Веб-публикации галочки Разрешить взаимодействие с рабочим столом. Однако это тоже не помогло.
Что можно в данной ситуации сделать ? Поможет ли использование процедуры GetProcessesByName ?
Профиль 
Сообщение Добавлено: 22 мар 2011, 13:09. Заголовок сообщения: 
Эксперт
Аватара пользователя
Зарегистрирован:
    23 мар 2007, 14:32
Сообщения: 4034
Откуда: РФ, ДНР, Донецк
Там этот IIS м.б. размазан по куче служб...
IIS Admin по идее вообще за обычную работу сервера не отвечает.
Винда какая?

Я, правда, не пытался, но попробуй засунуть FindWindow в свою Win-службу.
Если win-служба найдет окно, то сделай между Win-службой и Web-приложением обычный remoting и через него рули.

Кстати, ты что, будешь держать комп с тюнером за паролем? или нет?
Behold TV 609FM, Behold TV X7
Intel Core i7-4770K, ASUS Z87-K, RAM 32 GB, NVidia GT630 2GB.
Win7, на 10 худо-бедно пахал только X7 влагодаря аппаратному кодировщику.
Профиль 
Сообщение Добавлено: 23 мар 2011, 08:01. Заголовок сообщения: 
Зарегистрирован:
    16 мар 2011, 14:18
Сообщения: 4
Пришлось мне создать отдельное приложение, которое слушает порт и в зависимости от принятого сообщения передает команды окну Beholder.
В IIS реализовал посылку сообщений на этот порт.
Windows XP.
Профиль 
Показать сообщения за:  Поле сортировки:    
Начать новую темуОтветить на тему  Страница 1 из 1  [ Сообщений: 3 ]  
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения
Найти:  
Перейти: