By saying “Graceful” close, I mean allowing the users to save any un saved data before exiting the application. It is equivalent to clicking on “CLOSE” button at the right top corner. The advantage with this method when compared “stop-process” is, it allows the user to save data and hence there is no data lose.
This option came handy to me several time.
Code:
Get-Process notepad | % { $_.CloseMainWindow() }
The above code will get list of notepad processes running in your PC and prompts you to save data for the processes which have unsaved content. The notepad processes which don’t have anything to save will get closed normally.
Hope this helps you…
Comments on this entry are closed.
I don’t know the first thing about Powershell, although someday I hope to learn it. In the meantime, I’ve been looking for a script that will
1. pass a ‘close’ command to a running program (wlmail.exe) (the program’s own close routine first destroys the UI, then conducts some internal housekeeping before the process ends);
2. display a message box saying that WLMail is saving your data;
3. remove that message box when the process ends normally.
The script would ideally be invoked by, say, clicking a button on the desktop that is created when the wlmail.exe process starts.
Is this feasible, do you think?
ITS NICE TO USE
Ok Nice when in command prompt but it does not work when you schedule the task in windows task scheduler
% { $_.CloseMainWindow() } return false in this case and the application is stil open.
Any idea about that problem?
Best regards,
RiOt
Hi Riot,
You can use:
Get-Process anything | ? { $_.CloseMainWindow() | Out-Null }
I believe the reason it doesn’t work for you is because the scheduled task runs under one user account and the task you are trying to close is running under a different user account whereas when you are running from the command prompt both the command prompt and the task you are trying to close are running under the same user account. I have the same problem and have not (yet) found a solution for it.
Thank you for this!
I need it for Firefox on an keyboardless Infoscreen. If you kill the firefox-process rather than shutting it down gracefully, next time firefox comes up with an apology because it thinks it has crashed. And there is nobody at the infoboard to enter “ok”….
This was exactly what I needed in order to close a GUI window while allowing the service to continue running in the background and system tray icon. Thank you!
We are glad that it is helpful