Форум: "Прочее";
Текущий архив: 2006.09.03;
Скачать: [xml.tar.bz2];
ВнизОписание сервиса Найти похожие ветки
← →
ПЛОВ © (2006-08-04 16:31) [0]Просто написать его в реестр, например
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\DemoService\
Description="text"
или есть какая-нибуть специальная функия для этого?
← →
Jeer © (2006-08-04 16:34) [1]
> или есть какая-нибуть специальная функия для этого?
Даже целый класс - TRegistry.
← →
Eraser © (2006-08-04 16:37) [2]> [0] ПЛОВ © (04.08.06 16:31)
ChangeServiceConfig2
← →
ПЛОВ © (2006-08-04 16:40) [3]Спасибо
← →
sniknik © (2006-08-04 16:45) [4]ChangeServiceConfig2A в advapi32.dll
← →
isasa © (2006-08-04 16:49) [5]Если самовывозом, то можно так. Сорри на D примера нет. В списке служб появится сам.
wprintf(L"Service installing process...\n");
// Open a handle to the SC Manager database.
SC_HANDLE schSCManager = OpenSCManager( NULL, NULL, SC_MANAGER_ALL_ACCESS); // full access rights
//Check handle
if (NULL == schSCManager)
{
LPVOID lpMsgBuf;
DWORD dw = GetLastError();
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM,
NULL, dw, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&lpMsgBuf, 0, NULL );
wprintf(L"OpenSCManager failed. (0x%08X)%s\n", dw, lpMsgBuf);
LocalFree(lpMsgBuf);
return 0;
}
SC_HANDLE schService = CreateService(
schSCManager, // SCManager database
srvName, // name of service
srvDispName, // service name to display
SERVICE_ALL_ACCESS, // desired access
SERVICE_WIN32_OWN_PROCESS, // service type
SERVICE_DEMAND_START, //SERVICE_AUTO_START, // start type
SERVICE_ERROR_NORMAL, // error control type
thData.szPath, // path to service"s binary
NULL, // no load ordering group
NULL, // no tag identifier
NULL, // no dependencies
NULL, // LocalSystem account
NULL); // no password
if (schService == NULL)
{
LPVOID lpMsgBuf;
DWORD dw = GetLastError();
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM,
NULL, dw, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&lpMsgBuf, 0, NULL );
wprintf(L"CreateService failed. (0x%08X)%s\n", dw, lpMsgBuf);
CloseServiceHandle(schSCManager);
LocalFree(lpMsgBuf);
return 0;
}
CloseServiceHandle(schService);
wprintf(L"Service installing succeeded:\n");
wprintf(L"Service display name: \"%s\"\n", srvDispName);
wprintf(L"Service file path: \"%s\"\n", thData.szPath);
return 0;
← →
Misha Uskov © (2006-08-09 17:33) [6]function ChangeServiceConfig2A(hService: SC_HANDLE; dwInfoLevel: DWORD;
var lpInfo): BOOL; stdcall;
procedure TSPService.ServiceAfterInstall(Sender: TService);
var
sdBuf : SERVICE_DESCRIPTION;
h_manager, h_svc: SC_Handle;
begin
h_manager := OpenSCManager("" ,nil, SC_MANAGER_CONNECT);
if h_manager > 0 then
begin
h_svc := OpenService(h_manager, PChar(Name), SERVICE_CHANGE_CONFIG);
if h_svc > 0 then
begin
sdBuf.lpDescription := PAnsiChar(CDescription);
if not ChangeServiceConfig2A(h_svc, SERVICE_CONFIG_DESCRIPTION, sdBuf)
then MessageDlg(SysErrorMessage(getLastError), mtError, [mbOK], 0);
CloseServiceHandle(h_svc);
end;
CloseServiceHandle(h_manager);
end;
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2006.09.03;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.037 c