⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 samenu.bas

📁 星子行V2.0(源码)公开星子行V3.0以上版本,都是由星子行V1.0和星子行V2.0的核心结合而开发成的! 星子行V1.0是单反接正法,星子行V2.0是多反接法,星子行V3.0以上版本都是多反
💻 BAS
字号:
Attribute VB_Name = "Samenu"

Option Explicit
Public Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long

Public Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public 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

Public Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) _
As Long
Public Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal _
wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As Any) As Long
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal _
lpDirectory As String, ByVal nShowCmd As Long) As Long
Public Declare Function SetMenuItemBitmaps Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal hBitmapUnchecked As Long, ByVal hBitmapChecked As Long) As Long
Public Declare Function EnableMenuItem Lib "user32" (ByVal hMenu As Long, ByVal wIDEnableItem As Long, ByVal wEnable As Long) As Long
Public Declare Function BringWindowToTop Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long

Declare Function 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) As Long



' 常数声明

Public Const HWND_TOPMOST = -1
Public Const SWP_NOSIZE = &H1

Public Const MF_BYPOSITION = &H400&
Public Const MF_GRAYED = &H1&

Public Const MF_REMOVE = &H1000&
Public Const MF_BYCOMMAND = &H0&

Public Const WM_SYSCOMMAND = &H112
' 单击控制框产生此消息
Public Const MF_SEPARATOR = &H800&
' 为菜单加一条分隔线
Public Const MF_STRING = &H0&
' 在菜单中加一个字符串
Public Const GWL_WNDPROC = (-4)
Public Const MF_ENABLED = &H0&


' 全局变量
Public OldWindowProc As Long
' 保存默认的窗口函数地址
Public SysMenuHwnd As Long
' 保存系统菜单句柄
Public Const WM_KEYDOWN = &H100
Public Const WM_MOUSEMOVE = &H200








Public Function SubClass1_WndMessage(ByVal hwnd As Long, ByVal Msg As Long, ByVal wp As Long, ByVal lp As Long) As Long
   
 On Error GoTo er
   
   Select Case Msg
   
   
  
   Case WM_SYSCOMMAND

    Select Case wp
        Case 2001
            Rscreen.Scmnet6.SendData "menu1"
        Case 2003
            Rscreen.Scmnet6.SendData "menu2"
            EnableMenuItem SysMenuHwnd, 2003, MF_GRAYED
            EnableMenuItem SysMenuHwnd, 2004, MF_ENABLED
        Case 2004
            Rscreen.Scmnet6.SendData "menu3"
            EnableMenuItem SysMenuHwnd, 2003, MF_ENABLED
            EnableMenuItem SysMenuHwnd, 2004, MF_GRAYED
            
        Case 2006
          
         
          Ascreen.Show
          
        Case 2007
             Rscreen.Scmnet6.SendData "menu6"
              
        
        
        Case 2009
        
        Unload Rscreen
             
        
        Case 2011
             Rscreen.Scmnet6.SendData "menu4"
        Case 2012
             Rscreen.Scmnet6.SendData "menu5"
             
        Case 2014
             Rscreen.Scmnet6.SendData "shutdown1"

        Case 2015
             Rscreen.Scmnet6.SendData "shutdown2"

        Case Else
            SubClass1_WndMessage = CallWindowProc(OldWindowProc, hwnd, Msg, wp, lp)
            Exit Function
        End Select

         SubClass1_WndMessage = True
    
         Exit Function

    
    Case Else

       SubClass1_WndMessage = CallWindowProc(OldWindowProc, hwnd, Msg, wp, lp)
         '如果消息不是WM_SYSCOMMAND,就调用默认的窗口函数处理
       Exit Function
End Select

Exit Function

er:
MsgBox "发送命令失败!"


End Function



⌨️ 快捷键说明

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