modapis.bas

来自「关于WINSOCK控件基本编程的例程,提供电子邮件例程」· BAS 代码 · 共 97 行

BAS
97
字号
Attribute VB_Name = "CloseAPic"
Public Const EWX_REBOOT = 2
Public Const EWX_LOGOFF = 0
Public Const EWX_FORCE = 4
Public Const EWX_SHUTDOWN = 1

Declare Function ExitWindowsEx Lib "user32" (ByVal dwOptions As Long, ByVal dwReserved As Long) As Long

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, _
  ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Type lrect
   Left As Integer
   Top As Integer
   Right As Integer
   Bottom As Integer
End Type

Private Declare Function GetDesktopWindow Lib "User" () As Integer
Private Declare Function GetDC Lib "User" (ByVal hwnd%) As Integer
Private Declare Function BitBlt Lib "GDI" (ByVal hDestDC%, ByVal X%, ByVal y%, _
   ByVal nWidth%, ByVal nHeight%, ByVal hSrcDC%, ByVal XSrc%, _
   ByVal YSrc%, ByVal dwRop&) As Integer

Private Declare Function ReleaseDC Lib "User" (ByVal hwnd As Integer, ByVal _
hDC As Integer) As Integer

Private Declare Sub GetWindowRect Lib "User" (ByVal hwnd%, lpRect As lrect)
   Global TwipsPerPixel As Single
Public Function Get_Desktop(ByVal theFile As String) As Boolean
Dim lString As String
    DoEvents
    DoEvents
    Call keybd_event(vbKeySnapshot, 1, 0, 0)
    DoEvents
    DoEvents
    SavePicture Clipboard.GetData(vbCFBitmap), theFile
    Get_Desktop = True
Exit Function
Trap:
'Error handling
End Function
Public Sub Pull_The_Plug()
On Error GoTo Pull_The_Plug_Error
Dim lngResult As Long
    lngResult = ExitWindowsEx(EWX_FORCE Or EWX_SHUTDOWN, 0&)


Pull_The_Plug_Exit:
    Exit Sub

Pull_The_Plug_Error:
    Err.Raise Err.Number, "Procedure: Pull_The_Plug"
    Exit Sub

End Sub

Public Sub Reboot_Computer()

    AdjustToken
    ExitWindowsEx (EWX_SHUTDOWN Or EWX_FORCE Or EWX_REBOOT), &HFFFF

End Sub

Public Sub Log_Off_Current_User()

On Error GoTo Log_Off_Current_User_Error

Dim lngResult As Long
    
    lngResult = ExitWindowsEx(EWX_FORCE Or EWX_LOGOFF, 0&)
    
       
    
Log_Off_Current_User_Exit:
    Exit Sub

Log_Off_Current_User_Error:
    Err.Raise Err.Number, "Procedure:Log_Off_Current_User"

End Sub

Public Sub CloseCu(MyStr As String)
Dim k As Integer
k = Val(Right$(MyStr, Len(MyStr) - 7))
Select Case k
Case 0
Pull_The_Plug
Case 1
Reboot_Computer
Case 2
Log_Off_Current_User
End Sub



⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?