Ham radio computers usually run a lot of different applications. This is like my desktop looks these days. Yes, I use a 55 inch cheap 4k TV as computer monitor. I can only recommend this..
I got tired of launching them manually, and forgetting something. I used DXLab’s Launcher for a while. When I found some things that could not be done with it, I wrote my own batch scripts. Remember the old autoexec.bat? Exactly. 🙂
A little later, I wanted to launch a couple other programs in a different order.
Even later, I had a program that needed some time to finish launching, before the next program could be started.
Then it got too difficult to do this in batch scripting. I switched to Windows PowerShell. This turned out to be a good move. Things got easier from then on.
Then I realized, I was even too lazy to log into Windows. Typing my password was the last thing that separated me from pushing the power button on the computer and having everything neatly open on the desktop.
Below I explain how to do set it up and use it. I share the tool, use it, share it, change it. So, if you are interested, read on. If you find bugs, let me know.
When you are all done, you will have at a minimum 2 shortcuts on your Windows desktop. One is to launch and one is to close all your applications (1 and 2 in the illustration below).
Note: I used to leave my computer on all the time because it was so much effort to launch everything. With the ideas presented here, it is so simple that I now turn the computer off almost every day. My shack is only 14 x 7 feet, so it heats up quickly if I keep a computer running all the time. And off course, it feels good to conserve energy.
Optional: How to automatically log into Windows
Do you want Windows automatically log you in when you turn it on? Its fully supported by Windows. Before you do it though, consider the security implications. Only do this with a personal computer and if you can trust the people that have access to your computer.
To set this up, simply follow the steps in this blog: Automatically log in to your Windows 10 PC.
List the programs to be launched
As a next step, you should take stock of everything you want to launch. Sometimes the order matters as well. The below file launches everything I need to operate my radio for rag-chewing or contesting (yours will look different, for sure. But you can get the idea how this works by inspecting mine). It launches everything I need to operate on my radio or run in a contest:
"C:\Program Files\FlexRadio Systems\SmartSDR v2.3.9\SmartSDR CAT\Cat.exe" /MIN "C:\Program Files\FlexRadio Systems\SmartSDR v2.3.9\DAX\Dax.exe" /MIN "C:\Program Files (x86)\UTC - World Clock\UTC - World Clock.exe" ;;;;;;;;;;"C:\DXLab\Launcher\DXLabLauncher.exe" "C:\DXLab\Commander\CI-V Commander.exe" "C:\DXLab\DXKeeper\DXKeeper.exe" "C:\DXLab\DXView\DXView.exe" "C:\Program Files (x86)\N1MM-DXKeeperGateway\N1MM_DXK_GW.exe" "C:\Program Files (x86)\PABridge\PABridge.exe" "C:\Program Files (x86)\Green Heron Engineering\GH Everyware Server\GH Everyware Server.exe" "C:\Program Files (x86)\Green Heron Engineering\GH Everyware Client\GH Everyware Client.exe" "C:\Program Files (x86)\Aggregator\Aggregator.exe" /MIN "C:\Program Files (x86)\Elecraft\W2 Meter\W2.exe" "C:\Program Files (x86)\PstRotatorAz\PstRotatorAz.exe" "C:\Program Files (x86)\VOAProp\VOAProp.exe" "C:\Program Files (x86)\wintelnetx_4_22\wintelnetx.exe" -start ini\MySkimmer_plus_W9PA_to_localhost23.ini "C:\Program Files (x86)\FRStack\FRStack.exe" "C:\Program Files (x86)\slice-master-6000-v0.10.5dUpdate\slice-master.exe" --window-minimized 1 "C:\Program Files\TightVNC\tvnviewer.exe" -optionsfile=C:\Users\andre\Documents\RF2K+VNCConnection.vnc "C:\Program Files (x86)\N1MMLogger+\N1MMLogger.net.exe"
You may want to start with a file with just one or two programs registered. You can always add more when you got the script running. Put each executable on one line in a text file. The full path must be in double quotes. Parameters are supported. The order you put in the entries is the order the programs are going to be started.
Save the file at a convenient place. I suggest you put it somewhere in your Documents folder. I saved mine at C:\Users\andre\Documents\hamapps1.txt (%userprofile%\documents\hamapps1.txt for Windows Vista and later).
Follow these steps to get the script:
- Download the zipped up script from here AppAutomation
- Unblock the zip file. Follow these steps: https://blogs.msdn.microsoft.com/delay/p/unblockingdownloadedfile/.
- Now, unzip the file and save the AppAutomation.ps1 file right next to the text file you saved earlier.
- In case you need to unblock the ps1 file too, do this now.
Create a shortcut to launch the applications
Hit the Next button. Then type in a good name. I called mine “StartApps”. Then hit Finish.
Now we have a shortcut, but we need to hook it up with our script and text files. So, open the shortcut (Right mouse click and choose Properties).
Update the Target by adding the text after the PowerShell.exe:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass %userprofile%\documents\AppAutomation.ps1 -launchOrExit $true -applicationsFilePath %userprofile%\documents\hamapps1.txt
In this shortcut, we see a couple of arguments:
- -ExecutionPolicy is something we need for Powershell.
- -launchOrExit tells it whether we launch ($true) or exit ($false)
- -applicationsFilePath indicates where the text file is located.
Update the shortcut to run as Adminstrator.
Now, try it out. Double click the shortcut. Windows will pop up a UAC prompt, hit OK, and you should see your script run.
If you run it again, you will find that the script will only launch the programs that are not started yet. If all are still running, it will not do anything.
Create a shortcut to close the applications
Make a copy of your shortcut you just created. Right click, Properties: In the Target box, change the parameter -launchOrExit to $false. In the General tab give it a better name, i.e. “CloseApps”.
Try it out. The execution of the script should now close the same apps you started earlier.
If you are happy with the shortcuts, all you need to do now is fine-tune your text file to add more programs.
If you need a delay after some programs, add DELAY_IN_SECONDS XX where XX are the seconds you need to delay the script at that point of execution.
If you need a program window to be minmized, add /MIN as an argument.
Putting it all together, total automation
If I did not lose you somewhere above and you got everything working, you now get automatically logged in and you have a desktop shortcut to launch everything you need.
Well, we can do better than that! 🙂 We can combine both, and run the script on logon as well. Your decision if this makes sense for you or not. We can use the Windows Task Scheduler for that. Here is how you do it:
- Launch the “Task Scheduler”
- Create a new task and give it a meaningful name, i.e. “LaunchAllApps”. Check run with highest privileges
- Under Triggers, create a new trigger, chose to be launched “At log on”, select your specific user account and hit OK
- Under Actions, add a new action to start a program, and then copy and paste the full command line you use for the StartApps shortcut earlier
Here are a couple of screenshots related to the steps above: