Run an application with PowerShell and wait until it is finished
You can do something like:
Start-Process myprogram.exe -NoNewWindow -Wait
Or if you would like a more concise mechanism, there's always the Out-Null
hack:
myprogram.exe | Out-Null
Piping will wait for the program to terminate, and hence we pipe to Out-Null
As for finding an app, this SO question covers how to do this. Here is another article demonstrating this method.
You might also want to look at this article on how to make Powershell interact with Windows Search and this one, which is what the Start Button uses.