Jump to content


Photo

Controlar ejecucion de una aplicacion desde un servicio

servicio

  • Please log in to reply
3 replies to this topic

#1 seba_13680

seba_13680

    Member

  • Miembros
  • PipPip
  • 27 posts

Posted 14 March 2017 - 02:18 PM

Buenas tardes a todos¡

Me pueden dar una mano con alguna respuesta y orientacion con una consulta

 

Necesito mantener una aplicacion constantemente en los clientes para poder hacer unas tareas, con la ventaja de evitar

el programador de tarea de windows

y quisiera poder adaptar el siguiente programa a un servicio y poder tratarlo como tal y no tener que ejecutarlo de la manera

 

watchdog "C:\Windows\notepad.exe"


delphi
  1. program watchdog;
  2.  
  3. uses
  4. Windows, SysUtils, PsApi, ShellApi;
  5.  
  6. function CuantosSon(Path: String): Integer;
  7. var
  8. Procesos: array[1..1024] of DWORD;
  9. Needed, i: DWORD;
  10. Process: THandle;
  11. ModName: array[0..MAX_PATH] of Char;
  12. begin
  13. Result:= 0;
  14. if EnumProcesses(@Procesos,SizeOf(Procesos),Needed) then
  15. begin
  16. for i:= 1 to (Needed div Sizeof(DWORD)) do
  17. begin
  18. Process := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ,
  19. FALSE,Procesos[i]);
  20. if Process <> 0 then
  21. begin
  22. if GetModuleFileNameEx(Process,0,ModName,SizeOf(ModName)-1)>0 then
  23. begin
  24. if StrIComp(ModName,PChar(Path)) = 0 then
  25. inc(Result);
  26. end;
  27. CloseHandle(Process);
  28. end;
  29. end;
  30. end;
  31. end;
  32.  
  33. begin
  34. if ParamCount < 1 then
  35. Exit;
  36. if not FileExists(ParamStr(1)) then
  37. Exit;
  38. while TRUE do
  39. begin
  40. if CuantosSon(ParamStr(1)) < 1 then
  41. ShellExecute(0,nil,PChar(ParamStr(1)),nil,nil,SW_SHOW);
  42. // Aqui pones el retardo que quieras
  43. Sleep(1000);
  44. end;
  45. end.

Desde ya muchas gracias a todos y saludos¡ 


  • 0

#2 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4107 posts
  • LocationMadrid - España

Posted 14 March 2017 - 02:47 PM

En primer lugar, nunca está de más citar la fuente del código que expones

En segundo lugar, no se debe preguntar dos veces la misma cuestión

 

 

Saludos.


  • 0

#3 seba_13680

seba_13680

    Member

  • Miembros
  • PipPip
  • 27 posts

Posted 14 March 2017 - 03:47 PM

Buenas tardes Escafandra, no estaba al tanto sobre citar el codigo fuente, no lo sabia ...

y con respecto al segundo punto las respuestas me llevaron hacia el foro Platino pero no obtuve mas respuestas

me disculpo, no estaba al tanto ni sabia como continuar

Saludos ...

Sigo investigando


  • 0

#4 seba_13680

seba_13680

    Member

  • Miembros
  • PipPip
  • 27 posts

Posted 14 March 2017 - 03:56 PM

Buenas tardes Escafandra, no estaba al tanto sobre citar el codigo fuente, no lo sabia ...

y con respecto al segundo punto las respuestas me llevaron hacia el foro Platino pero no obtuve mas respuestas

me disculpo, no estaba al tanto ni sabia como continuar

Saludos ...

Sigo investigando

 

http://delphiaccess....cución/?p=41903


  • 0





Also tagged with one or more of these keywords: servicio

IP.Board spam blocked by CleanTalk.