Saber si un servicio esta corriendo en una IP REMOTA
Buenas tardes.
Hay alguna manera de saber si un servicio esta iniciado en una IP Remota a la cual debo conectarme pero solo si el servicio está iniciado, algo que sea rápido de comprobar y mi aplicación no demore tanto en abrir Porque actualmente tengo un código que lo verifica pero se demora 30 segundos en saber si está iniciado y es demasiada espera para un usuario iniciar una aplicación.
Gracias. |
Como saber el estado de un servicio en una IP REMOTA
Buenas tardes.
Hay alguna manera de saber si un servicio esta iniciado en una IP Remota a la cual debo conectarme pero solo si el servicio está iniciado, algo que sea rápido de comprobar y mi aplicación no demore tanto en abrir Porque actualmente tengo un código que lo verifica pero se demora 30 segundos en saber si está iniciado y es demasiada espera para un usuario iniciar una aplicación. Código Delphi [-] // 26/02/2016 Verifica el estado del servicio, si esta ensendido, apagado, sin instalar, instalado ... //sMachine --> IP Donde se verifica el servicio //sService --> Nombre del servicio //Si lo que retorna es diferente de 4 es porque el servicio no está corriendo //Posibles resultados. {******************************************} {*** Parameters: ***} {*** sService: specifies the name of the service to open {*** sMachine: specifies the name of the target computer {*** ***} {*** Return Values: ***} {*** -1 = Error opening service ***} {*** 1 = SERVICE_STOPPED ***} {*** 2 = SERVICE_START_PENDING ***} {*** 3 = SERVICE_STOP_PENDING ***} {*** 4 = SERVICE_RUNNING ***} {*** 5 = SERVICE_CONTINUE_PENDING ***} {*** 6 = SERVICE_PAUSE_PENDING ***} {*** 7 = SERVICE_PAUSED ***} {******************************************} function ServiceGetStatus(sMachine, sService: PChar): DWORD; var SCManHandle, SvcHandle: SC_Handle; SS: TServiceStatus; dwStat: DWORD; begin dwStat := 0; // Open service manager handle. SCManHandle := OpenSCManager(sMachine, nil, SC_MANAGER_CONNECT); if (SCManHandle > 0) then begin SvcHandle := OpenService(SCManHandle, sService, SERVICE_QUERY_STATUS); // if Service installed if (SvcHandle > 0) then begin // SS structure holds the service status (TServiceStatus); if (QueryServiceStatus(SvcHandle, SS)) then dwStat := ss.dwCurrentState; CloseServiceHandle(SvcHandle); end; CloseServiceHandle(SCManHandle); end; Result := dwStat; Gracias. |
No crees un hilo nuevo para preguntar lo mismo que en el otro.
Y no olvides usar las etiquetas para el código. Saludos. PD: Los he unido. |
Me disculpo es que no me deja eliminar el primer hilo.
|
Cita:
|
La franja horaria es GMT +2. Ahora son las 11:22:56. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi