ExitWindowsEx?

May 22, 2008 at 8:05pm
I'm using a Visual C++.net 2005 Express to write a simple app that will turn off my computer but not have a include "windows.h" and I want use API's function ExitWindowsEx.
How can I use this function?
Thanks a lot.
May 22, 2008 at 8:42pm
Add the prototype

extern "C" int stdcall ExitWindowsEx( unsigned int uFlags, unsigned long DWORD );

make sure to link with user32.lib, or dynamically link with user32.dll.

That prototype should work on Win32. Good luck.
May 24, 2008 at 12:07pm
If you need to shutdown or reboot the mochine with ExitWindowsEx(), you need set some flag about it. and bellow is some code I copy from an website, hope this help.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
HANDLE   hToken;     
  TOKEN_PRIVILEGES   tkp;     
      
  //   Get   a   token   for   this   process.     
      
  if   (!OpenProcessToken(GetCurrentProcess(),     
                  TOKEN_ADJUST_PRIVILEGES   |   TOKEN_QUERY,   &hToken))     
          error("OpenProcessToken");     
      
  //   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);     
      
  //   Cannot   test   the   return   value   of   AdjustTokenPrivileges.     
      
  if   (GetLastError()   !=   ERROR_SUCCESS)     
          error("AdjustTokenPrivileges");     
      
  //   Shut   down   the   system   and   force   all   applications   to   close.     
      
  if   (!ExitWindowsEx(EWX_SHUTDOWN   |   EWX_FORCE,   0))     
          error("ExitWindowsEx");
Last edited on May 24, 2008 at 12:08pm
May 24, 2008 at 6:43pm
> how to create a .dll file in c++

Off topic to simply use ExitWindowsEx()
include windows.h and copy MSDN code
http://msdn.microsoft.com/en-us/library/aa376871(vs.85).aspx
Nothing else.
Topic archived. No new replies allowed.