#include "windows.h"
#include "iostream"
#include <string>
using namespace std;
#define SIZE_BUF 4096
void main()
{
ENUM_SERVICE_STATUS Status[SIZE_BUF];
DWORD Size = sizeof(Status);
DWORD Needed = 0;
DWORD Return = 0;
DWORD Handle = 0;
SC_HANDLE Manager;
char *ser_name="nnCron";
Manager = OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS);
if (Manager!=NULL)
{
if (EnumServicesStatus(Manager,SERVICE_WIN32,SERVICE_ACTIVE,
(LPENUM_SERVICE_STATUS)&Status,Size,
&Needed,&Return,&Handle))
{
for (unsigned int x=0; x < Return; x++)
{
cout << Status[x].lpServiceName << endl;
// if(Status[x].lpServiceName==LPSTR(ser_name))
string a=Status[x].lpServiceName;
string b=LPSTR(ser_name);
if(a==b)
MessageBox(NULL, Status[x].lpServiceName, "ok", MB_OK|MB_ICONINFORMATION);
}
}
else cout << "Error Open Manager " << endl;
}
else cout << "Error enum Services" << endl;
}
Поиск службы
Почему не работает заремированная строка:
Код:
...
if(Status[x].lpServiceName==LPSTR(ser_name)){
string a=Status[x].lpServiceName;
string b=LPSTR(ser_name);
if(a==b)
MessageBox(NULL, Status[x].lpServiceName, "ok", MB_OK|MB_ICONINFORMATION);
}
...
if(Status[x].lpServiceName==LPSTR(ser_name)){
string a=Status[x].lpServiceName;
string b=LPSTR(ser_name);
if(a==b)
MessageBox(NULL, Status[x].lpServiceName, "ok", MB_OK|MB_ICONINFORMATION);
}
...
Ты случаем не строки ли сравнить хотел?
Строки сравнивал.