Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
CODE PROJECT For Those Who Code
  • Home
  • Articles
  • FAQ
Community
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. How to detect a system shutdown?

How to detect a system shutdown?

Scheduled Pinned Locked Moved C / C++ / MFC
databasedesignhelptutorialquestion
4 Posts 3 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • H Offline
    H Offline
    heman154
    wrote on last edited by
    #1

    Is there a way to query windows to determine if a system shutdown is imminent? I have a user interface application which provides the option to execute an upgrader application. This upgrader application deletes some system files and then transfers new system files in place. The problem is that due to driver install (upgrade files are stored on a pcmcia card and windows asks to shutdown after the drivers are loaded sometimes), windows will sometimes send a messagebox asking for the unit to be restarted, which is very bad if the user selects ok when systems files have been deleted and not replaced yet. I've already put a handler function for the WM_QUERYENDSESSION message in the upgrader app (which works fine), but I still need to trap the condition in which the WM_QUERYENDSESSION message is sent before the upgrader application starts (in which case, the application missed this message). If I can find out if the shutdown is imminent, I can prevent the file transfer. Thanks, Himanshu

    2 1 Reply Last reply
    0
    • H heman154

      Is there a way to query windows to determine if a system shutdown is imminent? I have a user interface application which provides the option to execute an upgrader application. This upgrader application deletes some system files and then transfers new system files in place. The problem is that due to driver install (upgrade files are stored on a pcmcia card and windows asks to shutdown after the drivers are loaded sometimes), windows will sometimes send a messagebox asking for the unit to be restarted, which is very bad if the user selects ok when systems files have been deleted and not replaced yet. I've already put a handler function for the WM_QUERYENDSESSION message in the upgrader app (which works fine), but I still need to trap the condition in which the WM_QUERYENDSESSION message is sent before the upgrader application starts (in which case, the application missed this message). If I can find out if the shutdown is imminent, I can prevent the file transfer. Thanks, Himanshu

      2 Offline
      2 Offline
      224917
      wrote on last edited by
      #2

      If any application returns zero for the WM_QUERYENDSESSION message the session will not be ended. To determine if the system is shutting down , Handle WM_ENDSESSION message and a non zero value for "lParam" says the system is shutting down.
      There is no spoon. suhredayan

      H 1 Reply Last reply
      0
      • 2 224917

        If any application returns zero for the WM_QUERYENDSESSION message the session will not be ended. To determine if the system is shutting down , Handle WM_ENDSESSION message and a non zero value for "lParam" says the system is shutting down.
        There is no spoon. suhredayan

        H Offline
        H Offline
        heman154
        wrote on last edited by
        #3

        Thanks for the suggestion, but I don't think that will be sufficient for my case. I need to know before the upgrader app gets WM_ENDSESSION. The reason is that the the message could come at some finite time after I have started, and if the timing is right, then I could be somewhere in between deleting and replacing the system files (The upgrader actually updates a remote module that takes a total of ~40 minutes, so it wouldn't be essy closeout the processing in OnEndSession). I would like to use some sort of API fcn that I could call before I start the transfer, so that I know I can guarantee that windows is not shutting down before the upgrade starts. It looks like there might not be one available. I guess I'll try to use another application to capture the QueryEndSession and then have the information available to the Upgrader at startup. Thanks, Himanshu

        D 1 Reply Last reply
        0
        • H heman154

          Thanks for the suggestion, but I don't think that will be sufficient for my case. I need to know before the upgrader app gets WM_ENDSESSION. The reason is that the the message could come at some finite time after I have started, and if the timing is right, then I could be somewhere in between deleting and replacing the system files (The upgrader actually updates a remote module that takes a total of ~40 minutes, so it wouldn't be essy closeout the processing in OnEndSession). I would like to use some sort of API fcn that I could call before I start the transfer, so that I know I can guarantee that windows is not shutting down before the upgrade starts. It looks like there might not be one available. I guess I'll try to use another application to capture the QueryEndSession and then have the information available to the Upgrader at startup. Thanks, Himanshu

          D Offline
          D Offline
          David Crow
          wrote on last edited by
          #4

          heman154 wrote: I need to know before the upgrader app gets WM_ENDSESSION. The WM_ENDSESSION message is sent only if all applications respond to the WM_QUERYENDSESSION message with a non-zero value. So, as long as you are handling the WM_QUERYENDSESSION message, you're fine.


          "Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow

          1 Reply Last reply
          0
          Reply
          • Reply as topic
          Log in to reply
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes


          • Login

          • Don't have an account? Register

          • Login or register to search.
          • First post
            Last post
          0
          • Categories
          • Recent
          • Tags
          • Popular
          • World
          • Users
          • Groups