Is there a way in Windows XP to run a task every time a computer resumes from suspend/hibernate? On workstation unlock would also work.
There is a partial solution working under WinXP. It requires you to create suspend/hibernation script and always hibernate the comp this way instead of pushing laptop button / through Windows menu.
- Download psshutdown: it is in packages of PsTools or SysInternals Suite
.batfiles as follows, and put them on desktop (or better put them somewhere else and create shortcuts on desktop / quick launch):
psshutdown.exe -d -t 00 chkdsk
psshutdown.exe -h -t 00 chkdsk
chkdsk will be invoked just after you return from suspend/hibernate (notice however, if you have to provide password to unlock after standby/hibernation,
chkdsk will start in background before you unlock Windows).
Of course, you have to provide full path to psshutdown.exe, or add the folder where you unpack it to
PATH (or, unpack to
%WINDIR% or other folder like that).
NOTE: You can disable power button / sleep button in
Control Panel > Power Options: Set to 'Do nothing' .
However I don't know if you can disable standby from Windows menu.
A dirty hack to disable hibernation from
Start > Turn Off Computer is to change hibernate.bat to:
powercfg.exe /hibernate on psshutdown.exe -h -t 00 powercfg.exe /hibernate off
so you enable hibernation from command line, hibernate, and immediately disable it after you come back from hibernation.
Hibernate Trigger should do the trick.
From their documentation:
Hibernate Trigger is a small program that will detect whenever the system is put into suspend or hibernation mode. When the system starts going into suspend, Hibernate Trigger will halt the Suspend operation and execute a command of your choice. Also, when the system resumes, hibernate will execute a command of your choice.
Lock and Load does what I’m looking for.
Lock and Load is an application that allows you to listen to various windows events, and execute an arbitrary number of commands as a response.
I don't think there is an exact trigger for that, but perhaps there is a workaround.
Assuming your user account is password protected, just use the trigger "On workstation unlock", so the command is run whenever the user logs back in from hibernate/sleep. Although, the down side is that if the user(s) regularly lock whenever they leave the PC on, it will also be run upon unlocking after that.