Diferenciando entre múltiplas janelas de contas runas

2

Em trabalhos anteriores, usei muito runas /user:.. para permitir acesso rápido entre várias contas enquanto fazia login como conta principal. Tanto do lado do servidor quanto nas estações de trabalho. Estamos analisando situações em que, às vezes, um usuário pode ter várias cópias do mesmo aplicativo abertas em diferentes contextos de vários usuários.

Como tal, seria extremamente útil ter algum tipo de fila visual para diferenciar com base no usuário de inicialização.

No passado, eu sempre mudava as cores de fundo do prompt do CMD. Aqui eu preciso disso para aplicações gráficas. Parece que as alterações no esquema de cores no Windows 7/2008 r2 são lidas a partir do usuário conectado no momento, não do perfil específico daquele usuário. Isso parece invalidar minha primeira escolha.

Quais são minhas opções?

Observação: Eu pensei em perguntar isso no SU não aqui .. Não achei que haveria muitos casos de pessoas executando aplicativos com meia dúzia de contas diferentes de uma sessão ativa.

    
por Tim Brigham 08.08.2013 / 23:14

1 resposta

2

Eu encontrei uma maneira de resolver isso via AutoIt. Não é perfeito, mas posso obter a maioria das minhas janelas rotuladas. Meus usuários podem iniciá-lo e executá-lo em segundo plano, conforme necessário.

#Include <Array.au3>
#include <WinAPIEx.au3>
While ( True ) 
    Sleep( 100 )
    Local $PID = 0
    Do
        $handle = WinGetHandle("[ACTIVE]", "") 
        $iPID = WinGetProcess($handle)
    Until $iPID > 0
    Local $aUser = _WinAPI_GetProcessUser($PID)
    $UserName=$aUser[0]
    $title = WinGetTitle ( $handle )
    $result = StringInStr($title, "Owned By")

    If ( $Result == 0 ) Then
        WinSetTitle($handle, "", $title & " - Owned By " & $UserName)
        $title = WinGetTitle ( $handle )
    EndIf  
WEnd
    
por 09.08.2013 / 18:25