Windows – Automatize Ninite installation without Ninite pro with Autoit

Introduction:

Before you start to use it: If you use it as a business member, please buy Ninite PRO . It is a valuable tool & can be add more comfort way for SW installation then what I will explain now.

What is Ninite?

Ninite is a great tool to install always up-to-date application without junk & extra search toolbar. It can be detect your CPU-type (x86 / x64), language (OS language). For more information, please visit Ninite’s official site.

What is the problem?

Ninite haven’t got command-line option for home-use. It is understandable as if you need command-line option & silent installation means that you are a professional user / business member. But I didn’t want a paid version full-featured Ninite PRO. I didn’t want to pay for a tons of features, what I will not use.

What I want?

When I install a new computer, I want to install up-to-date applications silently. If you store installers as offline-data (like pendrive or optical-media)  you need maintenance periodically. It will be a wearing task from time to time. So I need a solution 🙂

Solution:

To implement this solution you must to know a little bit about autoit. Please install it as I will share the source-code and you must to compile it!

What you need to have:

  • Downloaded ninite installer from official ninite site.
  • This script what I will explain.
  • Working internet connection when you install application with ninite’s solution
  • Disabled UAC (or start it with administrative privileges)

Autoit script:

#region ---Au3Recorder generated code Start (v3.3.7.0) ---
#
#region --- Internal functions Au3Recorder Start ---
Func _Au3RecordSetup()
Opt('WinWaitDelay',100)
Opt('WinDetectHiddenText',1)
Opt('MouseCoordMode',0)
EndFunc

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

_AU3RecordSetup()
#endregion --- Internal functions Au3Recorder End ---

_WinWaitActivate("Ninite","Finished. <a>Share N")
Sleep (1500)
Send("{TAB}{TAB}{SPACE}")
#endregion --- Au3Recorder generated code End ---

Please save this script as autoit source file –> xyz.au3

Theory of operation:

The script is simple. It calls WinWaitActivate function. It will be wait, until you have a “Ninite” window with “Finished. <a>Share N” text. If this case is true, autoit script will generate two tab & one space button keystroke. This is like you click to “close”. I used between WinWaitActivate & action (send keystroke) sleep to make sure window is active.

Limitations:

  • You couldn’t start more installer in parallel-mode as the detection, when Ninite installer was finished couldn’t handle more window from the same process (Ninite) .
  • If you have previously installed, same app what you want to install now with ninite, the autoit script will not work, as the text of window will be not the same. It is not a common-case on a fresh-installed computer.

Usage of it:

I start the script’s exe (complied autoit script) from batch file. When script’s exe was closed (which closed ninite’s window, when finished the application installation), the batch file’s run was finished. So you can start the next-one installation.

Hint:

I download the ninite installers as standalone installation file (I always insert one application before I download it). If you download ninite installation collection you lost ability to select standalone applications / application sets to your need.

Leave a Reply