nibbles1 Pour la gloire de NFT | Bonjour,
je dois envoyer des commandes personnalisées à un service maison.
Le service a été créé via
Code :
- OpenSCManager(lpHostName, SERVICES_ACTIVE_DATABASE, SC_MANAGER_ALL_ACCESS);
|
et
Code :
- hService = CreateService(hManager,
- lpServiceName,
- service.lpInfo->lpDisplayName,
- SERVICE_USER_DEFINED_CONTROL,
- service.lpInfo->dwServiceType,
- service.lpInfo->dwStartType,
- service.lpInfo->dwErrorControl,
- service.lpInfo->lpBinaryPathName,
- service.lpInfo->lpLoadOrderGroup,
- NULL,
- service.lpInfo->lpDependencies,
- service.lpInfo->lpServiceStartName,
- service.lpInfo->lpPassword);
|
Quand je tente d'y accéder via
Code :
- SERVICE_STATUS ServiceState;
- m_hSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
- m_hServiceUpdate = NULL;
- if (m_hSCManager) {
- m_hServiceUpdate = OpenService(m_hSCManager, SERVICE_UPDATE_NAME, SERVICE_USER_DEFINED_CONTROL);
- if (m_hServiceUpdate) {
- if (ControlService(m_hServiceUpdate, 200, &ServiceState) == TRUE) {
- } else {
- // erreur("ControlService failed (%d)n", GetLastError());
- }
- } else {
- // erreur ("OpenService failed (%d)n", GetLastError());
- CloseServiceHandle(m_hSCManager);
- m_hSCManager = NULL;
- }
- } else {
- // erreur ("OpenSCManager failed (%d)n", GetLastError());
- }
|
avec SERVICE_USER_DEFINED_CONTROL, j'obtiens une erreur 1064 (ERROR_EXCEPTION_IN_SERVICE).
avec SC_MANAGER_CONNECT ou SC_MANAGER_ALL_ACCESS, j'obtiens une erreur 5 (ERROR_ACCESS_DENIED).
Une idée pour communiquer avec ce service ?
Qu'est-ce qui ne va pas, la façon dont le service est créé ou l'accès par la suite ?
Merci pour votre aide. Message édité par nibbles1 le 27-04-2011 à 14:41:21
|