Написание Windows Service

  • Автор темы 3test
  • Дата начала
Статус
Закрыто для дальнейших ответов.
3

3test

Гость
#1
Мне нужно написать службу, которая после запуска отображала б окно и выводила б в него некоторую информацию...

Как я понял, для этого нужно прописать в LPSERVICE_STATUS :

dwServiceType=SERVICE_WIN32_OWN_PROCESS | SERVICE_INTERACTIVE_PROCESS;

Я попробовал вывести в отдельном потоке MessageBox


Код:
DWORD WINAPI ThreadProc(LPVOID lpParameter) {

MessageBox(NULL,"thread","thread",MB_OK);

ExitThread(0);
}

но, он не был отображен...

В MSDN также написано, что для интерактивной службы значение в реестре
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows\NoInteractiveServices
должно равно 0, что у меня выполняется....

В том, что сама служба (не интерактивная) работает - я уверен...

Не подскажете в чем может быть проблема?

Или где можно посмотреть пример интерактивной службы Windows с GUI...

Средство разработки: Microsoft Visual Studio .NET 2003
ОС: Windows 2000 SP4
 

Kmet

Well-Known Member
Java Team
25.05.2006
1 036
8
#3
Вообще то будующие интерактивных служб весьма туманно, по не потвержденным данным в Viste их поддержка будет отсутствовать. Да и вообще, подобная организации приложения считается плохим тоном с точки зрения стабильности, так надо надо учитывать пачку тонких нюансов при смене пользователя, переходе в спящий режим и т.д.
Общепринятой практикой считается, неинтерактивный сервис и маленькое приложения для диалога с пользователем, которые оргнизуют межпроцессорное взаимодействие, например, через пайпы. Подобную организацию использует MySql.

Если нужен обязательно интерактивный сервис, по посмотри GNU проект UltraVNC, на мой взгляд реализованно очень не плохо(хотя без плясок с бубнами и не обошлось).
 
Статус
Закрыто для дальнейших ответов.