Jump to content
ur

How to implement timeout

Recommended Posts

ur

I have automated an install process by using the below code.

 

Func _WinWaitActivate($title,$text,$timeout=0)
    WinWait($title,$text,$timeout)
    If Not WinActive($title,$text) Then WinActivate($title,$text)
    WinWaitActive($title,$text,$timeout)
EndFunc

$win1 = "Text 1"
$win2 = "Text 2"

_WinWaitActivate($win1,"WARNING: This progra")
Send("{ALTDOWN}n{ALTUP}");Send("{SPACE}")
_WinWaitActivate($win1,"I DISAGREE and &do n")
Send("{UP}n")
_WinWaitActivate($win1,"Customer Information")
Send("{ALTDOWN}n{ALTUP}");Send("{TAB}{TAB}n")
_WinWaitActivate($win1,"Click Next to instal")
Send("{ALTDOWN}n{ALTUP}");Send("n")
_WinWaitActivate($win1,"This feature require")
Send("{ALTDOWN}n{ALTUP}");Send("{TAB}n")
_WinWaitActivate($win1,"Ready to Install the")
Send("{ALTDOWN}i{ALTUP}");Send("i")
_WinWaitActivate($win1,"The InstallShield Wi")
Send("{ALTDOWN}f{ALTUP}");Send("f")
_WinWaitActivate($win2,"You must restart you")
Send("{ALTDOWN}n{ALTUP}");Send("n")

Now if any new screen comes in the middle of installation, like some VC++ installation error or like that.

The AutoIT is waiting in the background.

Is there any way to skip the new screens with just "enter" and continue the installation??

Share this post


Link to post
Share on other sites
Subz

If its installshield why use send keys?  Use silent uninstall strings, also a number of InstallShield setups will allow you to create a response file so that it's preconfigured.  Whats the name of the program?

Share this post


Link to post
Share on other sites
ur
7 minutes ago, Subz said:

If its installshield why use send keys?  Use silent uninstall strings, also a number of InstallShield setups will allow you to create a response file so that it's preconfigured.  Whats the name of the program?

Thanks @Subz for the help.

But we want to test the installation in all scenarios before releasing it to end users.

Silent, we have done already.

This part is for GUI, as to check all the GUI screens are coming as expected.

Share this post


Link to post
Share on other sites
Subz

"This part is for GUI, as to check all the GUI screens are coming as expected." don't really understand as users shouldn't see any Gui during the installation

Share this post


Link to post
Share on other sites
ur

I didn't get your question @Subz

Why users shouldn't see the GUI??If they install using normal GUI mode.

 

 

Edited by ur

Share this post


Link to post
Share on other sites
Subz

Normally when I package software for deployment, I would do the following:

  1. Check for processes running, ask user to close if open, or if required force close the application
  2. Check for previous installations
    • True - Check Version
      • Same or Newer Version - Perform a repair of the software or Exit Script
      • Older Version - Uninstall previous installations
  3. Install pre-requisites for software, VC++, .Net etc...
  4. Install software product
  5. Configure software product - User profile settings etc...

 

Edited by Subz

Share this post


Link to post
Share on other sites
Subz

What I meant by my question above was, if you have configured the package correctly the user should never have to run the installer manually.  If they did I would normally have the script from my last post in the same installation directory so they just run this, I normally call it something like JavaRuntimeInstaller.exe with the actual Java Runtime exes in the same folder for x86 and x64 just as an example.

Share this post


Link to post
Share on other sites
ur

Hi @Subz

I think this going out of the conversation, sorry if I miss any information to specify previously while creating the thread.

The scenario with process steps you mentioned above is for end user deployment using some tool like SCCM.

But in my case, we are releasing our product installer in our website and the enduser may deploy as you mentioned if needed for multiple machines or he can install only on few machines using the GUI screens when you launch the setup file.

We need to test both GUI installation and silent installation before releasing in our website.

So, can you give any other suggestion for GUI installation instead of the silent installation (as that part is already handled). 

Edited by ur

Share this post


Link to post
Share on other sites
Subz

All of the vendors I deal with normally have the silent install and installation instructions, I've never seen a third option for clicking the buttons, I wouldn't recommend setting up an installer with send keys as there are just so many possibilities of failure, for example a user clicks another window, or another application takes focus.

Just my 2 cents.

Share this post


Link to post
Share on other sites
ur
1 minute ago, Subz said:

All of the vendors I deal with normally have the silent install and installation instructions, I've never seen a third option for clicking the buttons, I wouldn't recommend setting up an installer with send keys as there are just so many possibilities of failure, for example a user clicks another window, or another application takes focus.

Just my 2 cents.

I agree with you.

But I think you don't understand the scenario.

We are not giving for one particular customer.

It is for multiple customers.

As we are giving both silent and UI mode installation, we need to do prior testing before delivery in both the cases.

If there is a silent installation means it doesn't mean we should not test or support UI mode installation, right?

So coming to the present issue, can we skip any extra UI screens by clicking on enter button or something like that? to continue the installation.

Share this post


Link to post
Share on other sites
Subz

You would have to run the installer on a clean machine, find out what windows popup and use an If WinExists(...) Then do something.  Still doesn't make much sense to me, if the script is for your own use only, shouldn't you know what prereqs will pop-up and keeping an eye on the install to check for issues?

Share this post


Link to post
Share on other sites
ur

The project ism file is same, but the data or files changes on daily basis, so to automate that testing part I need this.

And the winexists logic i didn't understand, can you please elaborate it

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • autotin
      By autotin
      Hello I am a first time user of AutoIT with little coding experience and I would REALLY really appreciate your help.
      I work in a warehouse where I am responsible for data entry along with a slew of other different tasks such as auditing and managing paperwork. Most of my time is tied up entering info to close receipts of product orders (8-12+ hours for thousands of products). The quantity actually produced by the warehouse is sometimes different from the quantity listed on the reciept (in this case 20). I need to change all the build qty for sublocation "1-WIP" from 20 to the actual quantity 22 and set all other numbers as 0. The form is an iframe coded with jQuery and freezes for 1-2 seconds after every entry and refreshes. As such, it doesn't allow me to use tab and I need to click and type every incorrect field.
      I have attached an image as an example from the webapp, FinaleInventory.
      I'm thinking that I probably need a macro that has a message box entry where I can type the corrected number entry I want. Then it uses image/character recognition (Tesseract?) to find "WIP" sublocation =,   Move the mouse over to the right to "Quantity" relative to location of WIP If quantity number = entry, then move to next "WIP" image (Not quite sure how to make Tesseract "find next") Elseif quantity number ≠ entry then click quantity number of "WIP" and type corrected entry Scroll down Loop until bottom of page I would greatly appreciate any help, ideas or pointers for this project. Thank you!
      -A newbie scripter

    • Pagi
      By Pagi
       
      <a href="index.php=4143b27b41db0a40c499202865c3e24d" class="menuitem " target="\_self"> "Menu Item 1" </a>
      Can you tell me if it´s possible to click this menu button? If yes, how? Cause I have no idea, I think i should use _IETagNameGetCollection
    • mar3011
      By mar3011
      hello, I want to set in the inputbox field random key from the keyboard to which the function will be assigned, for example F4 function start notepad ALT + A function start notepad for one function. Thank you for any help.  
    • JuanFelipe
      By JuanFelipe
      Cambiar a español Hello friends, I need help with a problem I have, I want to know if there is any way to update a GUI already running, that is I have a GUI of a certain size and with a button I would like to enlarge it:
      example: $ form1 = GUICreate ("", 200,100,0,0)   When you press the button, the gui increases its size, and actuates the new size.
    • BogdanNicolescu
      By BogdanNicolescu
      While 1 / / / A whole bunch of codes found in help and here: https://www.autoitscript.com/autoit3/docs/ / / / WEnd OR:

       
      HotKeySet("{ESC}", "Terminate") While 1 MouseClick("Right",674,422) MouseClick("Left",673,447) Sleep(2000) / / / A whole bunch of codes found in help and here: https://www.autoitscript.com/autoit3/docs/ / / / MouseClick("Left",675,339) SLeep(3000) WEnd Func Terminate()     Exit 0 EndFunc  
      Sorry if i should't let this here to be found by newbies like me -.-'
×