Форум Beholder http://beholder.ru/bb/ | |
Использование FindWindow в контексте службы http://beholder.ru/bb/viewtopic.php?f=10&t=12089 |
Страница 1 из 1 |
Автор: | Dsob [ 17 мар 2011, 11:43 ] |
Заголовок сообщения: | Использование FindWindow в контексте службы |
Есть такой код: Код: 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 ? |
Автор: | hd44780 [ 22 мар 2011, 13:09 ] |
Заголовок сообщения: | |
Там этот IIS м.б. размазан по куче служб... IIS Admin по идее вообще за обычную работу сервера не отвечает. Винда какая? Я, правда, не пытался, но попробуй засунуть FindWindow в свою Win-службу. Если win-служба найдет окно, то сделай между Win-службой и Web-приложением обычный remoting и через него рули. Кстати, ты что, будешь держать комп с тюнером за паролем? или нет? |
Автор: | Dsob [ 23 мар 2011, 08:01 ] |
Заголовок сообщения: | |
Пришлось мне создать отдельное приложение, которое слушает порт и в зависимости от принятого сообщения передает команды окну Beholder. В IIS реализовал посылку сообщений на этот порт. Windows XP. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |