На прошлых работах я использовал много runas /user:..
для обеспечения быстрого доступа между несколькими учетными записями при входе в систему в качестве основной учетной записи. Как на стороне сервера, так и на рабочих станциях. Мы рассматриваем ситуации, когда иногда у пользователя может быть несколько копий одного и того же приложения, открытого в разных контекстах с несколькими пользователями.
Таким образом, было бы чрезвычайно полезно иметь какую-то визуальную очередь, чтобы различать запускающего пользователя.
Раньше я всегда просто менял цвета фона подсказки CMD. Здесь он мне нужен для приложений с графическим интерфейсом. Похоже, что изменения цветовой схемы в Windows 7/2008 r2 читаются от текущего пользователя, вошедшего в систему, а не от профиля этого конкретного пользователя. Похоже, это сводит на нет мой первый выбор.
Какие у меня варианты?
Примечание: Я действительно думал о том, чтобы спросить об этом на SU, а не здесь ... Не думал, что будет много случаев, когда люди запускают приложения под полдюжиной разных учетных записей из одного активного сеанса.
Я нашел способ решить эту проблему с помощью AutoIt. Это не идеально, но я могу пометить большинство своих окон. Мои пользователи могут запускать это и запускать в фоновом режиме по мере необходимости.
#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