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,916 of 10,840   
   Jack to Maarten   
   Re: shutdown   
   28 Oct 04 10:06:21   
   
   From: luckyjack69@hotmail.com   
      
   thats a lot of code to shutdown a machine.   
      
   here is some code for you, this does a few things   
   no 1 it makes the program a service so you wont be able to see it by   
   pressing cntrl-alt-del   
   no 2 if the username and password dont match then it shuts down the computer   
   it is a little app i wrote to stop others using my pc   
   you going to have to add a few controls to a form............i let u work   
   that out   
      
   **************************** start of code   
       Option Explicit   
       Const EWX_LOGOFF = 0   
       Const EWX_SHUTDOWN = 1   
       Const EWX_REBOOT = 2   
       Const EWX_FORCE = 4   
       Const HWND_TOPMOST = -1   
       Const HWND_NOTOPMOST = -2   
       Const SWP_NOSIZE = &H1   
       Const SWP_NOMOVE = &H2   
       Const SWP_NOACTIVATE = &H10   
       Const SWP_SHOWWINDOW = &H40   
       Private Declare Sub SetWindowPos Lib "User32" (ByVal hWnd As Long, ByVal   
   hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long,   
   ByVal cy As Long, ByVal wFlags As Long)   
       Private Declare Function ExitWindowsEx Lib "User32" (ByVal uFlags As   
   Long, ByVal dwReserved As Long) As Long   
       Dim iTry As Integer   
       Dim lTime As Long   
       Dim lTimeLenth As Long   
       Dim strRet As String   
       Dim regserv   
       Const RSP_SIMPLE_SERVICE = 1   
       Const RSP_UNREGISTER_SERVICE = 0   
       Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long   
       Private Declare Function RegisterServiceProcess Lib "kernel32" (ByVal   
   dwProcessID As Long, ByVal dwType As Long) As Long   
   Public Sub MakeMeService()   
       Dim pid As Long, reserv As Long   
       pid = GetCurrentProcessId()   
       regserv = RegisterServiceProcess(pid, RSP_SIMPLE_SERVICE)   
   End Sub   
      
   Public Sub UnMakeMeService()   
       Dim pid As Long, reserv As Long   
       pid = GetCurrentProcessId()   
       regserv = RegisterServiceProcess(pid, RSP_UNREGISTER_SERVICE)   
   End Sub   
      
   Private Sub cmdCancel_Click()   
       ShutDown   
   End Sub   
      
   Private Sub cmdOK_Click()   
       If iTry > 2 Then   
           ShutDown   
       End If   
       If LCase(txtUsername) = "my user name" Then   
           If LCase(txtPassword.Text) = "my password" Then   
               Unload Me   
               End   
           End If   
       End If   
       iTry = iTry + 1   
   End Sub   
      
   Private Sub Form_Activate()   
       SetWindowPos Me.hWnd, HWND_TOPMOST, 500, 0, 0, 0, SWP_NOACTIVATE Or   
   SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE   
       lTimeLenth = 2500   
       progTime.Max = lTimeLenth   
   End Sub   
      
   Private Sub Form_Load()   
       MakeMeService   
   End Sub   
      
   Private Sub Form_Unload(Cancel As Integer)   
       UnMakeMeService   
   End Sub   
      
   Private Sub tmrMain_Timer()   
       lTime = lTime + 1   
       progTime.Value = (lTimeLenth - lTime)   
       lblTime.Caption = (lTimeLenth - lTime)   
       Me.Refresh   
       DoEvents   
       If lTime = lTimeLenth Then   
           ShutDown   
       End If   
   End Sub   
      
   Private Sub ShutDown()   
       strRet = ExitWindowsEx(EWX_FORCE Or EWX_SHUTDOWN, 0)   
   End Sub   
      
      
      
   **************************** end of code   
      
      
      
      
      
   "Maarten"  wrote in message   
   news:41809f9e$0$15733$ba620e4c@news.skynet.be...   
   > 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