首页 > 电脑

VB错误453:找不到DLL入口点GeSystemMenuinUser32

更新时间2018-10-21 09:31:00

Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd _

As Long, ByVal bRevert As Boolean) As Long

 

Private Declare Function GetMenuItemCount Lib "user32" (ByVal _

hMenu As Long) As Long

 

Private Declare Function RemoveMenu Lib "user32" (ByVal _

hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) _

As Long

 

Private Declare Function DrawMenuBar Lib "user32" _

   (ByVal hwnd As Long) As Long

 

Private Const MF_BYPOSITION = &H400&

Private Const MF_REMOVE = &H1000&

 

Private Declare Function GetKeyState Lib "user32" _

   (ByVal nVirtKey As Long) As Integer

Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long

Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long

Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, lParam As Any) As Long

Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (lpvDest As Any, ByVal lpvSource As Long, ByVal cbCopy As Long)

Public Type KEYMSGS

       vKey As Long

       sKey As Long

       flag As Long

       time As Long

End Type

Public Const WH_KEYBOARD_LL = 13

Public Const VK_LWIN = &H5B

Public Const VK_RWIN = &H5C

Public Const HC_ACTION = 0

Public Const HC_SYSMODALOFF = 5

Public Const HC_SYSMODALON = 4

Public Const WM_KEYDOWN = &H100

Public Const WM_KEYUP = &H101

Public Const WM_SYSKEYDOWN = &H104

Public Const WM_SYSKEYUP = &H105

 

Public P As KEYMSGS

Public lHook As Long

 

Private Declare Function GeSystemMenu Lib "user32" (ByVal hwnd _

As Long, ByVal bRevert As Boolean) As Long

 

Private Declare Function GeMenuItemCount Lib "user32" (ByVal _

hMenu As Long) As Long

 

Private Declare Function RemovMenu Lib "user32" (ByVal _

hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) _

As Long

 

Private Declare Function DraMenuBar Lib "user32" _

   (ByVal hwnd As Long) As Long

 

Private Const M_BYPOSITION = &H400&

Private Const M_REMOVE = &H1000&

 

Public Function LowLevelKeyboardProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

    Dim fEatKeystroke As Boolean

 

    If (nCode = HC_ACTION) Then

        If wParam = WM_KEYDOWN Or wParam = WM_SYSKEYDOWN Or wParam = WM_KEYUP Or wParam = WM_SYSKEYUP Then

            CopyMemory P, ByVal lParam, Len(P)

            Select Case P.vKey

            Case vbKeyF4

            If (GetKeyState(vbKeyMenu) And &H8000) <> 0 Then '如果按了Alt+F4键

                fEatKeystroke = True        '就吃了

            End If

            End Select

        End If

    End If

    If fEatKeystroke Then

        LowLevelKeyboardProc = -1

    Else

        LowLevelKeyboardProc = CallNextHookEx(0, nCode, wParam, ByVal lParam)

    End If

End Function

 

Public Sub DisableClose(frm As Form, Optional _

Disable As Boolean = True)

    'Setting Disable to False disables the 'X',

     'otherwise, it's reset

 

    Dim hMenu As Long

    Dim nCount As Long

 

    If Disable Then

        hMenu = GeSystemMenu(frm.hwnd, False)

        nCount = GeMenuItemCount(hMenu)

 

        Call RemovMenu(hMenu, nCount - 1, M_REMOVE Or _

            M_BYPOSITION)

        Call RemovMenu(hMenu, nCount - 2, M_REMOVE Or _

            M_BYPOSITION)

 

        DraMenuBar frm.hwnd

    Else

        GeSystemMenu frm.hwnd, True

 

        DraMenuBar frm.hwnd

    End If

 

End Sub


很明显的,你单词拼错了

GeSystemMenu

正确的是

GetSystemMenu

上一篇:各位大佬,麻烦帮我看看这个程序输出不出来

下一篇:为什么电脑的外置接口只用USB接口而不用SATA接口?SATA不是比USB要快很多吗?