Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Службы в Windows 
:(
    Опции темы
AntiInt
Дата 7.9.2009, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 15.5.2009

Репутация: нет
Всего: нет



Подскажите,пожалуйста,как иметь возможность видеть установленные на данном компьютере службы, запускать/останавливать службы,настраивать параметры запуска служб?Заранее благодарен!

PM MAIL   Вверх
jonie
Дата 7.9.2009, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 7
Всего: 118



Код

     #include <stdio.h>
     #include <Windows.h>

     void main()
     {
          //Open the Service Control Manager
          SC_HANDLE sc = ::OpenSCManager (NULL,NULL,SC_MANAGER_ENUMERATE_SERVICE);

          //Check if OpenSCManager returns NULL. Otherwise proceed
          if (sc != NULL)
          {
               printf("Opened SCM using OpenSCManager \n");
               ENUM_SERVICE_STATUS service_data, *lpservice;
               BOOL retVal;
               DWORD bytesNeeded,srvCount,resumeHandle = 0,srvType, srvState;

              srvType = SERVICE_WIN32;
              srvState = SERVICE_STATE_ALL;

              //Call EnumServicesStatus using the handle returned by OpenSCManager
              retVal = ::EnumServicesStatus (sc,srvType,srvState,&service_data,sizeof(service_data),
&bytesNeeded,&srvCount,&resumeHandle);

              DWORD err = GetLastError();
              //Check if EnumServicesStatus needs more memory space
              if ((retVal == FALSE) || err == ERROR_MORE_DATA)
              {
                     DWORD dwBytes = bytesNeeded + sizeof(ENUM_SERVICE_STATUS);
                     lpservice = new ENUM_SERVICE_STATUS [dwBytes];
                     EnumServicesStatus (sc,srvType,srvState,lpservice,dwBytes,
                             &bytesNeeded,&srvCount,&resumeHandle);
              }

              printf("Count of NT Services using EnumServicesStatus : %d\n\n",srvCount);

              for(int i=0;i<srvCount;i++)
              {
                    printf("%s\n",lpservice[i].lpDisplayName);
              }
         }

         //Close the SC_HANLDE returned by OpenSCManager
         CloseServiceHandle(sc);

     }

© http://www.codersource.net/win32_enumservicesstatus.html


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
AntiInt
Дата 9.9.2009, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 15.5.2009

Репутация: нет
Всего: нет



А как можно настраивать пареметры запуска служб?

PM MAIL   Вверх
smoke_man
Дата 9.9.2009, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 447
Регистрация: 25.1.2007
Где: Рязань

Репутация: 5
Всего: 17



Посмотри здесь


--------------------
0x2b|~0x2b
PM MAIL ICQ GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0833 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.