Forum Discussion

jlucas's avatar
jlucas
New Contributor
15 years ago

How do you minimize TestComplete after execution begins?

At the start of my script I am using a user form to enter runtime parameters. I selected the option to minimize TC during execution, but the user form makes TC reappear. I have been unable to find a command to programmatically minimize TC after the form is hidden.


Thanks


JL


  • giriprasasd100's avatar
    giriprasasd100
    Occasional Contributor
    Hi Jeff,



    You can minimize TestComplete window by  writing a small line of code.

    When you browse through the object browser in TestComplete, you can find its main window object from Sys.Process() tree...

    ---> Sys.Process("TestComplete").Window("TfrmTCMainForm", '*', 1)

    Once you get this object u can minimize or maximize the window as you wish.




    Since you are using forms, you need to write the following code in to Form's OnHide event:

    ---> Sys.Process("TestComplete").Window("TfrmTCMainForm", '*', 1).Minimize()





    Hope it helps you...

  • jlucas's avatar
    jlucas
    New Contributor

    Thanks Giri, that worked great except for the single quotes on the *, but I caught that right away.


    Jeff


  • stevereiss's avatar
    stevereiss
    Occasional Contributor
    Hi!



    I ran into the same problem with a User Form bringing TestComplete back to its restored state.  The code works fine in TC, but will fail if the suite is run in TestExecute because the process name ('TestComplete') will NOT be found. 





    I've tried to use a Try..Except block and Log.LockEvents / Log.UnlockEvents :



      try  



        Log.LockEvents();         (* turn OFF logging *)



        Sys.Process('TestComplete').Window('TfrmTCMainForm', '*', 1).Minimize();



        Log.UnlockEvents();       (* turn ON logging *)

        

      except

      end;



    This will still trigger an error condition when run in TestExecute....



    Is there some other way to have a special case for TestExecute so there
    will not be an Error in the logs due to this condition?



    Thanks!



    Steve
  • AlexKaras's avatar
    AlexKaras
    Champion Level 3
    Hi Steve,



    Try this (DelphiScript) instead of your try block:

      p := Sys.WaitProcess('TestComplete')

      if (p.Exists) then

        p.Window('TfrmTCMainForm', '*', 1).Minimize();

  • stevereiss's avatar
    stevereiss
    Occasional Contributor
    Alexi,



    Thank you for the reply!  The WaitProcess() call was the exact thing that I was missing... The call to process() was NOT the way to go for this task.



    Thanks again!



    Steve