What about checking for the Form change events:
A simple test form is 'minimized' by the (X) click and re-activated using TaskManager:
Load Form:
635291025619140000: Got Form1_Resize()
635291025619950000: Got Form1_Resize()
635291025620060000: Got Form1_Resize()
635291025620300000: Got Form1_Resize()
635291025620470000: Got Form1_Activated()
635291025620880000: Got Form1_GotFocus()
Click on (X) to minimize:
635291026059340000: Got Form1_Resize()
635291026059780000: Got Form1_Deactivate()
635291026059950000: Got Form1_LostFocus()
TaskManager SwitchTo:
635291026483820000: Got Form1_Resize()
635291026483910000: Got Form1_Activated()
635291026484010000: Got Form1_GotFocus()
Press Win-Symbol of Form (shows Start screen):
635291026724060000: Got Form1_Deactivate()
635291026724960000: Got Form1_LostFocus()
Click (X) in Start screen:
635291027163520000: Got Form1_Resize()
635291027163610000: Got Form1_Activated()
635291027163710000: Got Form1_GotFocus()
Click (X) of Form:
635291027673050000: Got Form1_Resize()
635291027673470000: Got Form1_Deactivate()
635291027673660000: Got Form1_LostFocus()
Re-Launched externally:
635291028243720000: Got Form1_Resize()
635291028243900000: Got Form1_Activated()
635291028244010000: Got Form1_GotFocus()
You see you always get Deactivated+LostFocus or Activated+GotFocus. You can use Deactivated+LostFocus to catch for the form will be minimized/hidden.
Is that what you are looking for?