trosevear Posted July 22, 2013 Posted July 22, 2013 Hi I have a script/tool that basically sits in the system tray with a bunch of menu options on it for users, that performs various functions. I have a need to kill an annoying error window should it appear using this same tool (if possible). The issue I have is if I deploy this script on a Terminal or remote desktop server the application is constantly processing 1-5% CPU for each user running it. This creates a resource problem when you get a few users running this. I am hoping someone might have a better way to do this, or be able to explain why this is using CPU all the time and suggest a work around. Basically this code is fixing an issue where an application (Sage ACT!) displays "A generic error occured in GDI+." on a Terminal Server randomly for users. The problem is the vendor has not fixed this in 5 versions on their product. My tool works I am just trying to minimize the resource usage and have not been able to. This is a section of the code: AutoItSetOption ( "WinTitleMatchMode", 3 ) While 1 $nMsg = WinGetState ($ACTWindow) Switch $nMsg Case 0 ;do nothing Case Else WinKill($ACTWindow,"A generic error occurred in GDI+.") EndSwitch $msg = TrayGetMsg() Select Case $msg = 0 ;If $GDI Then ;If WinGetState ($ACTWindow,"A generic error occurred in GDI+.") <> 0 Then ; If _IsVisible ( $ACTWindow ) Then ; EndIf ;EndIf ContinueLoop Case $msg = $ITDefaultLoc ResetRegKey(RegRead($RegHKLM & "\SOFTWARE\ActToday","Preference Default Location"),"Preference Default Location") EndSelect
abberration Posted July 22, 2013 Posted July 22, 2013 What about this? $i = 0 Do If WinExists("A generic error occurred in GDI+.") Then WinKill("A generic error occurred in GDI+.") EndIf Until $i = 1 Easy MP3 | Software Installer | Password Manager
trosevear Posted July 22, 2013 Author Posted July 22, 2013 (edited) Thanks for the suggestion Polymath, (smarter and quicker code) however this yielded the same result, I have actually just created a script with the following code: While 1 If WinExists("Sage ACT!","A generic error occurred in GDI+.") Then WinKill("Sage ACT!","A generic error occurred in GDI+.") EndIf WEnd The processor on this (even on my laptop) uses 25% CPU constantly. Perhaps I am just approaching this the wrong way? Edited July 22, 2013 by trosevear
Solution trosevear Posted July 22, 2013 Author Solution Posted July 22, 2013 OK, thanks to Polymath I believe I have solved this by adding a sleep. While 1 If WinExists("Sage ACT!","A generic error occurred in GDI+.") Then WinKill("Sage ACT!","A generic error occurred in GDI+.") EndIf Sleep(50) WEnd Thanks for your help.
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