Programming: How to prevent shutdown using VB?

Page 2 of 2 FirstFirst 12

  1. Posts : 32
    Windows 7
    Thread Starter
       #11

    Dwarf said:
    I've asked for more help. :)
    Thanks for your help! :)
      My Computer


  2. Posts : 32
    Windows 7
    Thread Starter
       #12

    Dwarf said:
    Can you post the code so that we can have a look at it. Parts may need to be rewritten and reorganised.
    This is for my i-cafe software
      My Computer


  3. Posts : 32
    Windows 7
    Thread Starter
       #13

    WindowsStar said:
    How about this?

    Code:
     
    Public Sub Handler_SessionEnding(ByVal sender As Object, ByVal e As Microsoft.Win32.SessionEndingEventArgs) 
            If e.Reason = Microsoft.Win32.SessionEndReasons.Logoff Then 
                MessageBox.Show("User is logging off") 
            ElseIf e.Reason = Microsoft.Win32.SessionEndReasons.SystemShutdown Then 
                MessageBox.Show("System is shutting down") 
            End If 
        End Sub 
     
     Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load 
            AddHandler Microsoft.Win32.SystemEvents.SessionEnding, AddressOf Handler_SessionEnding 
        End Sub
    or

    SystemEvents.SessionEnding Event (Microsoft.Win32)

    or a quick google:

    Code:
    ' Original Code
    ' Created by E.Spencer - This code is public domain.
    ' Routines for running an app as an NT service.
    '
    ' modified/rehashed by G.Crisp
    ' code modified to just detect and cancel windows shutdown - only a few unused bits deleted
    '
    'orginal code available from
    'http://www.ilook.fsnet.co.uk/vb/vbntserv.htm
    '
    Public Const GWL_WNDPROC = (-4)
    Public Const WM_ENDSESSION = &H16
    Public Const WM_QUERYENDSESSION = &H11
    Public WndProc As Long
    Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    ' exiting from windows
    '-------------------------------------------------------
    Public Declare Function ExitWindowsEx Lib "user32.dll" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
    'EWX_FORCE = 4 Force any applications to quit instead of prompting the user to close them.
    'EWX_LOGOFF = 0 Log off the network.
    'EWX_POWEROFF = 8 Shut down the system and, if possible, turn the computer off.
    'EWX_REBOOT = 2 Perform a full reboot of the system.
    'EWX_SHUTDOWN = 1
    'call this from your form
    Public Sub Hook(Lwnd As Long)
    Dim uProcess As Long
    WndProc = SetWindowLong(Lwnd, GWL_WNDPROC, AddressOf WindowProc)
    End Sub
    Public Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    If uMsg = WM_QUERYENDSESSION Then
       'MsgBox "hw:" + CStr(hw) + " uMsg:" + CStr(uMsg) + " wParam:" + CStr(wParam)
       WindowProc = False 'send don't shut down
       'run code do what you want, then call ExitWindowsEx etc up to you
       Exit Function
    ElseIf uMsg = WM_ENDSESSION Then
       'MsgBox "hw:" + CStr(hw) + " uMsg:" + CStr(uMsg) + " wParam:" + CStr(wParam)
       WindowProc = False
       'run code
       Exit Function
    End If
    WindowProc = CallWindowProc(WndProc, hw, uMsg, wParam, lParam)
    End FunctionForm
    Form

    Code:
    Private Sub Form_Load()
    Hook (Me.hwnd)
    End Sub
    I have tested it, but the result still same with my previous code. Windows screen dialog still appear when we try to shutdown. And your code make my another code freeze if mouse pointer in hover of my form.
      My Computer


 
Page 2 of 2 FirstFirst 12

  Related Discussions
Our Sites
Site Links
About Us
Windows 7 Forums is an independent web site and has not been authorized, sponsored, or otherwise approved by Microsoft Corporation. "Windows 7" and related materials are trademarks of Microsoft Corp.

© Designer Media Ltd
All times are GMT -5. The time now is 09:58.
Find Us