none
Ver la misma instancia de un programa con todos los usuarios windows RRS feed

  • Pregunta

  • Desarrollé una aplicación en Visual Studio con C# y WPF (.Net 4.7.2). Por ciertas razones necesito que en windows server todos los usuarios vean la ejecución de la misma instancia del programa.

    Ejemplo de lo que sucede actualmente:

    Inicia sesión usuario A:
    1) Abre el software
    2) Es capaz de ver la interfaz
    3) Es capaz de ver el proceso corriendo en el administrador de tareas.

    Inicia sesión usuario B:
    1) No abre el software (ya que este sabe que fué abierto por el usuario A).
    2) Es capaz de ver el proceso corriendo en el administrador de tareas.
    3) No es capaz de ver la interfaz de la instancia del programa. (<---- Esto es lo que necesito poder hacer)

    ¿Tal vez haya algo que se pueda hacer dentro de la codificación del software, o bien dentro de las configuraciones del windows server?
    viernes, 13 de marzo de 2020 13:22

Todas las respuestas

  • Lo qué ocupas es ocultar el proceso del task manager? Te entendí bien?
    viernes, 13 de marzo de 2020 14:49
    Moderador
  • hola

    >>No abre el software (ya que este sabe que fué abierto por el usuario A).

    como lo sabe ?

    >>No es capaz de ver la interfaz de la instancia del programa

    pero si ejecuta la aplicacion deberia ejecutarse para ese usuario

    No se si sera la misma instancia, pero deberia ejecutarse una nueva para ese usuario B

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 13 de marzo de 2020 15:58
  • ¿Tal vez haya algo que se pueda hacer dentro de la codificación del software, o bien dentro de las configuraciones del windows server?

    Me temo que no hay ninguna manera sencilla de solucionarlo. Windows crea un escritorio virtual distinto por cada usuario, y los "aísla" el uno del otro por razones de seguridad. Por tanto, no es factible para el usuario B ver la interfaz que la instancia de la aplicación está mostrando sobre el escritorio del A.

    Yo sugeriría fragmentar la aplicación en dos partes: Una parte "servidora" que tenga las porciones que deban rodar en exclusiva (me imagino que alguna debe existir porque sino no estarías impidiendo que haya más de una instancia), y ejecutar esta parte como Servicio Windows. Y luego una parte "cliente" que presente la interfaz de usuario, y que se comunique con la parte servidora mediante algún mecanismo de comunicación inter-procesos. Lógicamente, esta parte cliente sí que se diseña de forma que puedan ejecutarse varias instancias, para que puedan lanzar sendas instancias el usuario A y el B, cada uno en su escritorio.

    viernes, 13 de marzo de 2020 16:36