Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.02.2010, 21:23   #11
KoBRaAndrey
Форумчанин
 
Регистрация: 01.10.2009
Сообщений: 302
По умолчанию

Спасибо это то что мне нужно но:
при запуска ошибка:
Can not access service: 1394ohci.
Но окно запуститься, когда жму обновить следующая ошибка
Access violation at address 004C82FA in module 'SERVICE.exe'. Read of address 00000010.
KoBRaAndrey вне форума Ответить с цитированием
Старый 01.02.2010, 22:26   #12
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

при запуске или компиляции... ? версия delphi 6
Вложения
Тип файла: txt Service.exe.txt (183.0 Кб, 154 просмотров)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 02.02.2010, 21:48   #13
KoBRaAndrey
Форумчанин
 
Регистрация: 01.10.2009
Сообщений: 302
По умолчанию

Скачал вашу программу, при запуске:
Access violation at address 004610AE in module 'Service.exe'. Read of address 00000010.
Видимо не совместимость с windows 7, есть еще способы?
KoBRaAndrey вне форума Ответить с цитированием
Старый 02.02.2010, 22:11   #14
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

либо дорабатывать класс btNTSvcMan, вероятно в win7 функции экспорта либы advapi поменялись, либо советы выше.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 02.02.2010, 23:05   #15
maxionans
Форумчанин
 
Аватар для maxionans
 
Регистрация: 02.01.2010
Сообщений: 254
По умолчанию

Если нужно только получить список сервисов, то хватит такого кода (работает и под Win7):

Код:
function GetServiceList(AList : TStrings) : Boolean;
var
  SCMan : Cardinal;
  Data : Pointer;
  Services : PEnumServiceStatus;
  Returned : Cardinal;
  Needed : Cardinal;
  ResumeHandle : Cardinal;
  I : Integer;
begin
  Assert( Assigned( AList ) );
  AList.Clear;

  Result := False;

  SCMan := OpenSCManager( nil, nil, GENERIC_READ );
  if SCMan = 0 then Exit;

  try
    Services := nil; ResumeHandle := 0;
    EnumServicesStatus(
      SCMan, SERVICE_WIN32, SERVICE_STATE_ALL,
      Services^, 0, Needed, Returned, ResumeHandle
    );

    if Needed > 0 then
      begin
        GetMem( Data, Needed * 2 );
        try
          Services := Data; ResumeHandle := 0;
          Result := EnumServicesStatus(
            SCMan, SERVICE_WIN32, SERVICE_STATE_ALL,
            Services^, Needed, Needed, Returned, ResumeHandle
          );
          if not Result then Exit;

          for I := 0 to Integer(Returned) - 1 do
          begin
            AList.Add( Services^.lpDisplayName );
            Inc( Services );
          end;
        finally
          FreeMem( Data );
        end;
      end;
  finally
    CloseServiceHandle( SCMan );
  end;
end;
Вложения
Тип файла: rar Service Enum.rar (204.8 Кб, 15 просмотров)
maxionans вне форума Ответить с цитированием
Старый 03.02.2010, 21:57   #16
KoBRaAndrey
Форумчанин
 
Регистрация: 01.10.2009
Сообщений: 302
По умолчанию

А можно из этого текста узнать имя службы, или как найти службы?
Например находит - Диспетчер учетных записей
а нужно VaultSvc
KoBRaAndrey вне форума Ответить с цитированием
Старый 03.02.2010, 22:12   #17
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

AList.Add(Services^.lpServiceName + ' - ' + Services^.lpDisplayName);
...
а вообще, в классе btNTSvcMan структура более подробно описана.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 03.02.2010, 22:20   #18
KoBRaAndrey
Форумчанин
 
Регистрация: 01.10.2009
Сообщений: 302
По умолчанию

Спасибо вам + не ставиться пишет:
Вы должны добавить отзыв кому-то ещё, прежде чем сможете снова добавить его raxp.
хоть я уже другим ставил..
KoBRaAndrey вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сервисы (службы) NieL Win Api 2 20.11.2009 14:13
Запущенные процессы. mituhin Безопасность, Шифрование 3 23.06.2008 13:32
про сервисы и формы darkcoder Общие вопросы Delphi 1 11.03.2008 07:28
Сервисы, блин.... Баламут Win Api 6 28.12.2007 01:30
И снова сервисы Баламут Win Api 3 13.12.2007 01:26