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
  1. Home
  2. General Programming
  3. C#
  4. Shutting down a W2K computer

Shutting down a W2K computer

Scheduled Pinned Locked Moved C#
csharpc++helpquestion
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.
  • C Offline
    C Offline
    converdb
    wrote on last edited by
    #1

    I've got the following problem, I use to call ExitWindowsEx in win98 environments to turn off the pc, but it doesn't work on w2k os, What could I use to turn off/restart the computer on w2k?? (using vb or vc++ or any other .net tool) I prefer not use WMI interfaces, any ideas?? Thanks in advance. Just three words: void main(void)

    M V 2 Replies Last reply
    0
    • C converdb

      I've got the following problem, I use to call ExitWindowsEx in win98 environments to turn off the pc, but it doesn't work on w2k os, What could I use to turn off/restart the computer on w2k?? (using vb or vc++ or any other .net tool) I prefer not use WMI interfaces, any ideas?? Thanks in advance. Just three words: void main(void)

      M Offline
      M Offline
      Mark Conger
      wrote on last edited by
      #2

      Only one I can think of off the top of my head is InitiateSystemShutdownA from ADVAPI32.DLL. Not the prettiest, but that's what I usually use. Mark Conger Sonork:100.28396

      1 Reply Last reply
      0
      • C converdb

        I've got the following problem, I use to call ExitWindowsEx in win98 environments to turn off the pc, but it doesn't work on w2k os, What could I use to turn off/restart the computer on w2k?? (using vb or vc++ or any other .net tool) I prefer not use WMI interfaces, any ideas?? Thanks in advance. Just three words: void main(void)

        V Offline
        V Offline
        VoidMainVoid
        wrote on last edited by
        #3

        You have to get privileges, here is the example for MSVC++, I think it could be easylly maded in C# or you could siply use a dll, here is the code BOOL MySystemShutdown() { HANDLE hToken; TOKEN_PRIVILEGES tkp; // Get a token for this process. if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) return( FALSE ); // Get the LUID for the shutdown privilege. LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); tkp.PrivilegeCount = 1; // one privilege to set tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; // Get the shutdown privilege for this process. AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0); if (GetLastError() != ERROR_SUCCESS) return FALSE; // Shut down the system and force all applications to close. if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0)) return FALSE; return TRUE; } I hope it helps. You can read more about privileges here. Signature... I look for that at home... tomorrow

        C 1 Reply Last reply
        0
        • V VoidMainVoid

          You have to get privileges, here is the example for MSVC++, I think it could be easylly maded in C# or you could siply use a dll, here is the code BOOL MySystemShutdown() { HANDLE hToken; TOKEN_PRIVILEGES tkp; // Get a token for this process. if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) return( FALSE ); // Get the LUID for the shutdown privilege. LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); tkp.PrivilegeCount = 1; // one privilege to set tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; // Get the shutdown privilege for this process. AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0); if (GetLastError() != ERROR_SUCCESS) return FALSE; // Shut down the system and force all applications to close. if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0)) return FALSE; return TRUE; } I hope it helps. You can read more about privileges here. Signature... I look for that at home... tomorrow

          C Offline
          C Offline
          converdb
          wrote on last edited by
          #4

          jero7207 wrote: I hope it helps. Sure, it does. Thanks a lot friend. :-D Just three words: void main(void)

          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