You could have, as I do with my standalone programs, a starter program which then runs the main program.
When said single click reset command is received, it is passed to the starter program which then shuts down CF, waits a predetermined (or user selectable) time and then starts CF up.
Also useful for doing automatic updates.