rudi Posted March 17, 2008 Posted March 17, 2008 Hello,I'm stuck, and propably this is an ugly and not efficent way to do what I aim at, so maybe it's better first to tell what I want to do:Given is a ERP system, that has to be made accessible through Terminal Server Session from the Internet (VPN tunnel), but when accessed this way only one certain user shall be able to login (restricted access inside ERP).So I thought about watching the running instances of that ERP system, if found, get the user, if the user isn't "hotline" then immediately kill that one.Here is my "50 + something" approach I'm still not happy about at all:if WinExists("[REGEXPTITLE:b 2® - Enterprise Resource Planning - Firma 1 - Benutzer: (.*) - Session-ID:.*]") Then ; b2 is running with status "logged in" at least once $B2List = WinList("[REGEXPTITLE:b 2® - Enterprise Resource Planning - Firma 1 - Benutzer: (.*) - Session-ID:.*]") ; get name(s) of user(s) MsgBox(0,"",$B2List[0][0] & " b2 Instanzen sind geöffnet.") for $i = 1 to $B2List[0][0] if StringRegExp($B2List[$i][0],"b 2® - Enterprise Resource Planning - Firma 1 - Benutzer: (hotline) - Session-ID:.*",0) Then ; do nothing, user "hotline" is OK. Else WinKill($B2List[$i][1]) ; winkill doesn't kill immediatly + silently. ; ProcessKill() does, but how to get the PID from the "HWND" WinList() returns??? EndIf Next EndIfTired - any help appreciated - Rudi. Earth is flat, pigs can fly, and Nuclear Power is SAFE!
PsaltyDS Posted March 17, 2008 Posted March 17, 2008 Terminal Server allows management of which users can access which applications. Why is any unauthorized user able to see the app at all? Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law
Kip Posted March 17, 2008 Posted March 17, 2008 (edited) ; winkill doesn't kill immediatly + silently. ; ProcessKill() does, but how to get the PID from the "HWND" WinList() returns??? $Pid = WinGetProcess("Untitled - Notepad") ProcessClose($Pid) Edited March 17, 2008 by kip MailSpons: Fake SMTP server for safe email testing Dutch postcode & address API.
rudi Posted March 17, 2008 Author Posted March 17, 2008 Hi.Terminal Server allows management of which users can access which applications. Why is any unauthorized user able to see the app at all? No, no: I obviously didn't phrase my question precisely enough:The User can ONLY access the allowed applications. But within the ERP program it is possible to login to the ERP system with a user that shall not be used, as too much information is accessible /modifyable. The ERP program's title bar presents who is curently logged in to the ERP system. And if there is somebody else logged in but "hotline" then I need to kill that window. (e.g. no prices outside the campus LAN among others limitations that have to be enforced).Regards, Rudi. Earth is flat, pigs can fly, and Nuclear Power is SAFE!
rudi Posted March 17, 2008 Author Posted March 17, 2008 (edited) Hello, Thanks! , now it does the trick if WinExists("[REGEXPTITLE:b 2® - Enterprise Resource Planning - Firma 1 - Benutzer: (.*) - Session-ID:.*]") Then ; b2 is running with status "logged in" at least once $B2List = WinList("[REGEXPTITLE:b 2® - Enterprise Resource Planning - Firma 1 - Benutzer: (.*) - Session-ID:.*]") ; get name(s) of user(s) MsgBox(0,"",$B2List[0][0] & " b2 Instanzen sind geöffnet.") for $i = 1 to $B2List[0][0] if StringRegExp($B2List[$i][0],"b 2® - Enterprise Resource Planning - Firma 1 - Benutzer: (hotline) - Session-ID:.*",0) Then ; do nothing, user "hotline" is OK. Else ProcessClose(WinGetProcess($B2List[$i][1])) ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< EndIf Next EndIf Now I can start to play around with array checking (dimensions) and @error handling. What do you think in general about this approach? (There might be a different, much more efficent way for such a "watchdog") Regards, Rudi. Edited March 17, 2008 by rudi Earth is flat, pigs can fly, and Nuclear Power is SAFE!
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now