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

📄 smenu.bas

📁 星子行主机控制系统用于主机管理,方便远程操作,通信等功能.更 方便用于局域网,管理速度快,连接简单方便.注意:星子行连接可用 于带路由主机与带路由主机之间连接,非路由与非路由之间连接.带
💻 BAS
字号:
Attribute VB_Name = "Smenu"

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
            Form2.Winsock2.SendData "menu1"
        Case 2003
            Form2.Winsock2.SendData "menu2"
            EnableMenuItem SysMenuHwnd, 2003, MF_GRAYED
            EnableMenuItem SysMenuHwnd, 2004, MF_ENABLED
        Case 2004
            Form2.Winsock2.SendData "menu3"
            EnableMenuItem SysMenuHwnd, 2003, MF_ENABLED
            EnableMenuItem SysMenuHwnd, 2004, MF_GRAYED
            
        Case 2006
          
         
          Form1.Show
          
        Case 2007
             Form2.Winsock2.SendData "menu6"
              
        
        
        Case 2009
        
        Unload Form2
             
        
        Case 2011
             Form2.Winsock2.SendData "menu4"
        Case 2012
             Form2.Winsock2.SendData "menu5"
             
        Case 2014
             Form2.Winsock2.SendData "shutdown1"

        Case 2015
             Form2.Winsock2.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 + -