Permitir que um atalho na área de trabalho do usuário de uma sessão remota de aplicativo publicado pela Citrix seja acionado por um atalho de teclado

Permitir que um atalho na área de trabalho do usuário de uma sessão remota de aplicativo publicado pela Citrix seja acionado por um atalho de teclado

Estou usando meu chapéu de desenvolvedor no momento, mas esta é mais uma questão de administrador de sistemas em que estou tentando trabalhar com um cliente nosso para resolver um problema. (Alguns nomes e números foram alterados - a ideia/problema continua a mesma)

O cliente possui 10 servidores Citrix. Há talvez 50 funcionários. Cada membro da equipe pode executar entre 3 e 8 cópias de um aplicativo que chamaremos de "B". É um aplicativo publicado. As instâncias do aplicativo B podem estar sendo executadas no mesmo servidor/sessão ou podem estar espalhadas por vários servidores (e, portanto, por várias sessões).

Tenho um aplicativo que chamaremos de "D". Ele está vinculado ao aplicativo B. Especificamente, você pode acionar algo em D que irá raspar a tela de B para o registro atual e trazer os dados correspondentes em D. Portanto, o usuário está em B e deseja exibir informações adicionais sobre o registro atual de B. na tela de D.

D é um aplicativo de instância única - ele conhece todos os bancos de dados B distintos e os combina. Assim, o usuário deve executar apenas um único D por vez.

A maioria de nossos clientes não possui vários servidores ou múltiplas instâncias de B. Portanto, nosso aplicativo D apenas registra uma tecla de atalho global para permitir que o usuário invoque a função na cópia única de D para copiar a cópia única da tela de B.

Neste cliente, essa abordagem não funcionará - não queremos que a área de trabalho do usuário, que é um conglomerado de muitas janelas B publicadas, além de talvez um navegador da web, cliente de e-mail, etc., também fique cheia de uma janela D para cada janela distinta. Servidor Citrix.

Tive a ideia de escrever um pequeno aplicativo stub para D que, quando executado, raspasse a tela B ativa, interagisse com o usuário e depois saísse. Esse stub D, que chamarei de X, poderia estar em todos os servidores Citrix e não consumiria recursos. No entanto, ainda preciso encontrar uma maneira de iniciá-lo.

Tentei criar um atalho na área de trabalho no perfil do usuário nos servidores Citrix, mas parece não funcionar. Minha ideia aqui foi colocar um atalho para X na área de trabalho e definir a tecla de atalho desse atalho (termo muito difícil para Google/Bing!) Para algo como Ctrl+ Alt+ D. Infelizmente isso não parece funcionar. Pode ser que tal comportamento dependa do explorer.exe e, como há um aplicativo sendo publicado, não existe explorer.exe.

Mesmo que funcionasse, preciso ter certeza de que ele está ativado apenas na sessão "atual" do Citrix, que é aquela com a instância B. focada no usuário. Não quero todos os servidores Citrix aos quais o usuário está conectado. acione nosso pequeno aplicativo X stub quando o atalho do teclado for pressionado.

Dada essa situação (obrigado por ler até aqui!) Tenho duas perguntas

  1. Alguém sabe se eudeveser capaz de fazer com que teclas de atalho dentro de atalhos em uma sessão Citrix de aplicativo publicado funcionem? Se sim, o que devo fazer? Além disso, se ajudar a usar o RDP em vez do Citrix, também estaria interessado em opiniões.

  2. Se você sabe como fazer o número 1 funcionar, como posso fazer com que apenas o servidor com a janela em foco responda?

  3. Se o número 1 não funcionar, posso fazer com que nosso cliente modifique a maneira como B é iniciado para ser iniciado por meio de um arquivo em lote. Em seguida, tenho um pequeno aplicativo stub executado em segundo plano ao mesmo tempo em que B é iniciado. X poderia registrar um mutex para evitar ser iniciado várias vezes na mesma sessão. Mas, nessa situação, ainda gostaria de ter alguma opinião sobre como o Citrix (ou MS RDP) pode lidar com atalhos de teclado registrados globalmente. Se o usuário clicar em Ctrl+ Alt+ Disso acaba indo para as diversas cópias do X ou apenas para o X que pertence à sessão do app B com fous?

Tentei cortar os pedaços desnecessários do plano de fundo acima. Por favor, indique se fui ambíguo e se você gostaria de esclarecimentos. Obrigado por toda e qualquer opinião oferecida.

informação relacionada