home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.lang.visual.basic      MS Visual Basic discussions, NOT dot-net      10,840 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 8,914 of 10,840   
   Maarten to All   
   shutdown   
   28 Oct 04 09:28:12   
   
   From: gurkjaan@hotmail.com   
      
   hallow all   
      
   earlier i posted a question about shutingdown a computer.   
   there was  someone who helped me with the code? i don't know anymore who he   
   was.   
   i remember there was an error in the code, and i had to add a couple of   
   lines.   
    i've forgot to save this fixed module meightbe you can help me again giving   
   me the code to add.   
      
   here is the code:(not working)   
      
   Private Declare Function GetCurrentProcess Lib "kernel32" () As Long   
   Private Declare Function OpenProcessToken Lib "advapi32" ( _   
           ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, _   
           TokenHandle As Long) As Long   
   Private Declare Function LookupPrivilegeValue Lib "advapi32" _   
           Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, _   
           ByVal lpName As String, lpLuid As LUID) As Long   
   Private Declare Function AdjustTokenPrivileges Lib "advapi32" ( _   
           ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, _   
           NewState As TOKEN_PRIVILEGES, ByVal BufferLength As Long, _   
           PreviousState As TOKEN_PRIVILEGES, ReturnLength As Long) As Long   
   Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As _   
           Long, ByVal dwReserved As Long) As Long   
   Private Declare Function GetVersionEx Lib "kernel32" Alias _   
           "GetVersionExA" (ByRef lpVersionInformation As OSVERSIONINFO) _   
           As Long   
      
   Public Const EWX_LOGOFF = 0   
   Public Const EWX_SHUTDOWN = 1   
   Public Const EWX_REBOOT = 2   
   Public Const EWX_FORCE = 4   
   Public Const EWX_POWEROFF = 8   
   Public Const EWX_FORCEIFHUNG = 16   
      
   Private Const TOKEN_QUERY = 8   
   Private Const TOKEN_ADJUST_PRIVILEGES = 32   
      
   Private Const SE_PRIVILEGE_ENABLED = 2   
      
   Private Const ANYSIZE_ARRAY = 1   
   Private Const VER_PLATFORM_WIN32_NT = 2   
      
   Type OSVERSIONINFO   
       dwOSVersionInfoSize As Long   
       dwMajorVersion As Long   
       dwMinorVersion As Long   
       dwBuildNumber As Long   
       dwPlatformId As Long   
       szCSDVersion As String * 128   
   End Type   
      
   Public Type LUID   
       LowPart As Long   
       HighPart As Long   
   End Type   
      
   Public Type LUID_AND_ATTRIBUTES   
       pLuid As LUID   
       Attributes As Long   
   End Type   
      
   Public Type TOKEN_PRIVILEGES   
       PrivilegeCount As Long   
       Privileges(ANYSIZE_ARRAY) As LUID_AND_ATTRIBUTES   
   End Type   
      
   Public Sub quitWindows(which As Long)   
       Dim n As Long   
      
       If IsWinNT Then EnableShutDown   
       n = ExitWindowsEx(which, &HFFFF) '((which Or EWX_FORCE), &HFFFF)   
       If n Then   
           Dim x As String * 256   
           FormatMessage FORMAT_MESSAGE_FROM_SYSTEM, 0, Err.LastDllError, _   
                   0, x, 256, 0   
       Else   
           Unload frmBackground   
       End If   
   End Sub   
      
   Public Function IsWinNT() As Boolean   
       ' Detect if the program is running under Windows NT   
       Dim myOS As OSVERSIONINFO   
      
       myOS.dwOSVersionInfoSize = Len(myOS)   
       GetVersionEx myOS   
       IsWinNT = (myOS.dwPlatformId = VER_PLATFORM_WIN32_NT)   
   End Function   
      
   Private Sub EnableShutDown()   
       ' Set the shut down privilege for the current application   
       Dim hProc As Long, hToken As Long, mLUID As LUID   
       Dim mPriv As TOKEN_PRIVILEGES, mNewPriv As TOKEN_PRIVILEGES   
      
       hProc = GetCurrentProcess()   
       OpenProcessToken hProc, TOKEN_ADJUST_PRIVILEGES + TOKEN_QUERY, _   
               hToken   
       LookupPrivilegeValue "", "SeShutdownPrivilege", mLUID   
       mPriv.PrivilegeCount = 1   
       mPriv.Privileges(0).Attributes = SE_PRIVILEGE_ENABLED   
       mPriv.Privileges(0).pLuid = mLUID   
      
       ' enable shutdown privilege for the current application   
       AdjustTokenPrivileges hToken, False, mPriv, 4 + (12 * _   
               mPriv.PrivilegeCount), mNewPriv, 4 + (12 * _   
               mNewPriv.PrivilegeCount)   
   End Sub   
      
      
      
    kind regards Maarten   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca