Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo llamar a un programa de consola en un programa de servicio de Windows

Cómo llamar a un programa de consola en un programa de servicio de Windows

1. El servicio está aislado de otros programas de usuario y normalmente se ejecuta en la sesión 0.

2. El directorio de trabajo del servicio es el directorio del sistema (System32, SysWOW64), y lo mismo ocurre con las aplicaciones iniciadas a través del servicio.

3. La implementación más simple es: crear una tarea programada en el sistema operativo (usando el programador de tareas)

4. actualizar el programa Si no se requiere la interacción del usuario, simplemente puede agregar "System.IO.Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);" en la primera línea de la función principal (Main) de "Update"

5 Si realmente desea implementarlo a través del programa de servicio y el programa de actualización requiere la interacción del usuario, entonces necesita usar la función "CreateProcessAsUser" en Win32API y, en consecuencia, también necesita usar "WTSEnumerateSessions". y "WTSQueryUserToken".

Consulte la siguiente página web:

blogs.com/datacool/p/CreateProcessAsUser_Win_api.html

blogs.com/gnielee/archive/2010/04 /07/ session0-isolation-part1.html

blogs.com/gnielee/archive/2010/04/08/session0-isolation-part2.html

/windows/win32/ api/processthreadsapi /nf-processthreadsapi-createprocessasusera

/previous-versions/aa379608(v=vs.85)