📄 modaddressof.vb
字号:
Option Strict Off
Option Explicit On
Imports System.Runtime.InteropServices
Module modAddressOf
' *** Den Artikel zu diesem Modul finden Sie unter http://www.aboutvb.de/khw/artikel/khwaddressof.htm ***
Private Const GWL_WNDPROC As Short = -4
Private Const GWL_USERDATA As Short = (-21)
Private Const WM_SIZE As Short = &H5s
Public Const WM_USER As Short = &H400s
'程序中使用的变量
Public srvport As Short '服务端口
Public waittime As Short '轮询时间
Public redcolor As Short
Public greencolor As Short
Public bluecolor As Short
Public colorflag As Short
Public LineCount As Short
Public SysAutoM As Short
Public oldwindow As Long
'最大接收缓冲区
Const MAX_RECEIVE_BUF As Short = 1024
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Ansi)> _
Public Structure user_info
'<VBFixedArray(12)> Dim m_userid() As Byte '终端模块号码
<VBFixedArray(11), MarshalAs(UnmanagedType.ByValArray, SizeConst:=12)> _
Dim m_userid() As Byte
'<VBFixedArray(4)> Dim m_sin_addr() As Byte '终端模块进入Internet的代理主机IP地址
'<VBFixedArray(3), MarshalAs(UnmanagedType.ByValArray, SizeConst:=4)> _
Dim m_sin_addr As Integer
Dim m_sin_port As Short '终端模块进入Internet的代理主机IP端口
'<VBFixedArray(4)> Dim m_local_addr() As Byte '终端模块在移动网内IP地址
'<VBFixedArray(3), MarshalAs(UnmanagedType.ByValArray, SizeConst:=4)> _
Dim m_local_addr As Integer
Dim m_local_port As Short '终端模块在移动网内IP端口
'<VBFixedArray(20)> Dim m_logon_date() As Byte '终端模块登录时间
<VBFixedArray(19), MarshalAs(UnmanagedType.ByValArray, SizeConst:=20)> _
Dim m_logon_date() As Byte
'<VBFixedArray(20)> Dim m_update_date() As Byte '用户更新时间
<VBFixedArray(19), MarshalAs(UnmanagedType.ByValArray, SizeConst:=20)> _
Dim m_update_date() As Byte
Dim m_status As Byte '终端模块状态, 1 在线 0 不在线
'UPGRADE_TODO: 必须调用“Initialize”来初始化此结构的实例。 单击以获得更多信息:“ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1026"”
Public Sub Initialize()
'UPGRADE_WARNING: 数组 m_userid 的下限已从 1 更改为 0。 单击以获得更多信息:“ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1033"”
ReDim m_userid(11)
'UPGRADE_WARNING: 数组 m_sin_addr 的下限已从 1 更改为 0。 单击以获得更多信息:“ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1033"”
'ReDim m_sin_addr(3)
'UPGRADE_WARNING: 数组 m_local_addr 的下限已从 1 更改为 0。 单击以获得更多信息:“ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1033"”
'ReDim m_local_addr(3)
'UPGRADE_WARNING: 数组 m_logon_date 的下限已从 1 更改为 0。 单击以获得更多信息:“ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1033"”
ReDim m_logon_date(19)
'UPGRADE_WARNING: 数组 m_update_date 的下限已从 1 更改为 0。 单击以获得更多信息:“ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1033"”
ReDim m_update_date(19)
End Sub
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Ansi)> _
Public Structure data_record
'<VBFixedArray(11)> Dim m_userid() As Byte '终端模块号码
<VBFixedArray(11), MarshalAs(UnmanagedType.ByValArray, SizeConst:=12)> _
Dim m_userid() As Byte
'<VBFixedArray(19)> Dim m_recv_date() As Byte '接收到数据包的时间
<VBFixedArray(19), MarshalAs(UnmanagedType.ByValArray, SizeConst:=20)> _
Dim m_recv_date() As Byte
'<VBFixedArray(MAX_RECEIVE_BUF - 1)> Dim m_data_buf() As Byte '存储接收到的数据
<VBFixedArray(MAX_RECEIVE_BUF - 1), MarshalAs(UnmanagedType.ByValArray, SizeConst:=MAX_RECEIVE_BUF)> _
Dim m_data_buf() As Byte
Dim m_data_len As Short '接收到的数据包长度
Dim m_data_type As Byte '接收到的数据包类型,0x09:用户数据包 0 不认识类型
'UPGRADE_TODO: 必须调用“Initialize”来初始化此结构的实例。 单击以获得更多信息:“ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1026"”
Public Sub Initialize()
'UPGRADE_WARNING: 数组 m_userid 的下限已从 1 更改为 0。 单击以获得更多信息:“ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1033"”
ReDim m_userid(11)
'UPGRADE_WARNING: 数组 m_recv_date 的下限已从 1 更改为 0。 单击以获得更多信息:“ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1033"”
ReDim m_recv_date(19)
'UPGRADE_WARNING: 数组 m_data_buf 的下限已从 1 更改为 0。 单击以获得更多信息:“ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1033"”
ReDim m_data_buf(MAX_RECEIVE_BUF - 1)
End Sub
End Structure
'服务器启动函数
'Public Declare Function start_gprs_server Lib "e:\vss\源代码\gprs_comm2.0_v6\debug\wcomm_dll.dll" _
''(ByVal hw As Long, ByVal Msg As Long, ByVal serport As Long, _
'' mess As Byte, Optional ByVal iPollTime As Integer = 0, Optional ByVal iTimerval As Integer = 30 _
'' ) As Long
Public Declare Function start_gprs_server Lib "wcomm_dll.dll" (ByVal hw As Integer, ByVal Msg As Integer, ByVal serport As Integer, ByRef mess As Byte) As Integer
Public Declare Function start_net_service Lib "wcomm_dll.dll" (ByVal hw As Integer, ByVal Msg As Integer, ByVal serport As Integer, ByRef mess As Byte) As Integer
Public Declare Function SGSA Lib "wcomm_dll.dll" Alias "start_gprs_server" (ByVal hw As Integer, ByVal Msg As Integer, ByVal serport As Integer, ByRef mess As Byte) As Integer
'服务器停止函数
Public Declare Function stop_gprs_server Lib "wcomm_dll.dll" (ByRef mess As Byte) As Integer
Public Declare Function stop_net_service Lib "wcomm_dll.dll" (ByRef mess As Byte) As Integer
'获得用户信息------这是get_user_info函数的定义
'UPGRADE_WARNING: 结构 user_info 可能要求封送处理属性作为此声明语句中的参数传递。 单击以获得更多信息:“ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1050"”
Public Declare Function get_user_info Lib "wcomm_dll.dll" (ByRef userid As Byte, ByRef userinfo As user_info) As Integer
'获得用户信息
'UPGRADE_WARNING: 结构 user_info 可能要求封送处理属性作为此声明语句中的参数传递。 单击以获得更多信息:“ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1050"”
Public Declare Function get_user_at Lib "wcomm_dll.dll" (ByVal Index As Integer, ByRef userinfo As user_info) As Integer
'向用户表中添加一个用户,该操作同DTU登录等效
'UPGRADE_WARNING: 结构 user_info 可能要求封送处理属性作为此声明语句中的参数传递。 单击以获得更多信息:“ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1050"”
Public Declare Function AddOneUser Lib "wcomm_dll.dll" (ByRef userinfo As user_info) As Integer
'读数据函数
'UPGRADE_WARNING: 结构 data_record 可能要求封送处理属性作为此声明语句中的参数传递。 单击以获得更多信息:“ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1050"”
Public Declare Function do_read_proc Lib "wcomm_dll.dll" (<MarshalAs(UnmanagedType.Struct)> ByRef datarecord As data_record, ByRef mess As Byte, ByVal answer As Boolean) As Integer
'发送数据函数
Public Declare Function do_send_user_data Lib "wcomm_dll.dll" (ByRef userid As Byte, ByRef src As Byte, ByVal srclen As Integer, ByRef mess As Byte) As Integer
'关闭某个终端
Public Declare Function do_close_one_user Lib "wcomm_dll.dll" (ByRef userid As Byte, ByRef mess As Byte) As Integer
'关闭全部终端
Public Declare Function do_close_all_user Lib "wcomm_dll.dll" (ByRef mess As Byte) As Integer
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -