在过去的工作中,我使用了很多runas /user:..
方法来允许在以主帐户登录时快速访问多个帐户。无论是在服务器端还是在工作站上。我们正在研究这样的情况:有时用户可能会在不同的多个用户上下文中打开同一应用程序的多个副本。
因此,拥有某种视觉队列来根据启动用户进行区分会非常有用。
过去我总是只更改 CMD 提示符的背景颜色。在这里我需要它用于 GUI 应用程序。看起来 Windows 7 / 2008 r2 上的颜色方案更改是从当前登录的用户读取的,而不是从该特定用户的个人资料读取的。这似乎使我的第一选择无效。
我有什么选择?
笔记: 我确实考虑过在 SU 上询问这个问题,而不是在这里。没想到会有很多人们在一个活动会话中使用六个不同帐户运行应用程序的情况。
答案1
我确实找到了一种通过 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