本篇文章主要给网友们分享ftx0000的知识,其中更加会对进行更多的解释,如果能碰巧解决你现在面临的问题,记得关注本站!
vb 串口通讯问题
你这段代码是使用API函数操作串口通信的一部分,仅有这些代码而无API声明,是无法进行通信的。
以下是使用API声明的串口通信代码,根据枕善居提供代码改写:
Option Explicit
Private ComNum As Long
Private bRead(255) As Byte
Private Type COMSTAT
fCtsHold As Long
fDsrHold As Long
fRlsdHold As Long
fXoffHold As Long
fXoffSent As Long
fEof As Long
fTxim As Long
fReserved As Long
cbInQue As Long
cbOutQue As Long
End Type
Private Type COMMTIMEOUTS
ReadIntervalTimeout As Long
ReadTotalTimeoutMultiplier As Long
ReadTotalTimeoutConstant As Long
WriteTotalTimeoutMultiplier As Long
WriteTotalTimeoutConstant As Long
End Type
Private Type DCB
DCBlength As Long
BaudRate As Long
fBinary As Long
fParity As Long
fOutxCtsFlow As Long
fOutxDsrFlow As Long
fDtrControl As Long
fDsrSensitivity As Long
fTXContinueOnXoff As Long
fOutX As Long
fInX As Long
fErrorChar As Long
fNull As Long
fRtsControl As Long
fAbortOnError As Long
fDummy2 As Long
wReserved As Integer
XonLim As Integer
XoffLim As Integer
ByteSize As Byte
Parity As Byte
StopBits As Byte
XonChar As Byte
XoffChar As Byte
ErrorChar As Byte
EofChar As Byte
EvtChar As Byte
End Type
Private Type OVERLAPPED
Internal As Long
InternalHigh As Long
offset As Long
OffsetHigh As Long
hEvent As Long
End Type
Private Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type
Private sa As SECURITY_ATTRIBUTES
'Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function GetLastError Lib "kernel32" () As Long
Private Declare Function ReadFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, lpOverlapped As Long) As Long
Private Declare Function WriteFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, lpOverlapped As Long) As Long
Private Declare Function SetCommTimeouts Lib "kernel32" (ByVal hFile As Long, lpCommTimeouts As COMMTIMEOUTS) As Long
Private Declare Function GetCommTimeouts Lib "kernel32" (ByVal hFile As Long, lpCommTimeouts As COMMTIMEOUTS) As Long
Private Declare Function BuildCommDCB Lib "kernel32" Alias "BuildCommDCBA" (ByVal lpDef As String, lpDCB As DCB) As Long
Private Declare Function SetCommState Lib "kernel32" (ByVal hCommDev As Long, lpDCB As DCB) As Long
Private Declare Function FlushFileBuffers Lib "kernel32" (ByVal hFile As Long) As Long
Private strData1 As String
Private strData As String
Private intOutMode As Byte
Function fin_com()
fin_com = CloseHandle(ComNum)
End Function
'关闭端口
Function FlushComm()
FlushFileBuffers (ComNum)
End Function
'初始化端口
Function Init_Com(ComNumber As String, Comsettings As String) As Boolean
On Error GoTo handelinitcom
Dim ComSetup As DCB, Answer, Stat As COMSTAT, RetBytes As Long
Dim retval As Long
Dim CtimeOut As COMMTIMEOUTS, BarDCB As DCB
' 打开通讯口读/写(HC0000000).
' 必须指定存在的文件 (3).
'ComNum = CreateFile(ComNumber, HC0000000, 0, 0, H3, 0, 0)
ComNum = CreateFile(ComNumber, HC0000000, 0, 0, H3, 0, 0)
Print ComNum
If ComNum = -1 Then
frmSerialTs.Shape1.FillColor = vbRed
MsgBox "端口 " ComNumber "无效. 请设置正确.", 48
Init_Com = False
Exit Function
ElseIf ComNum -1 Then
frmSerialTs.Shape1.FillColor = vbGreen
End If
'超时
CtimeOut.ReadIntervalTimeout = 20
CtimeOut.ReadTotalTimeoutConstant = 1
CtimeOut.ReadTotalTimeoutMultiplier = 1
CtimeOut.WriteTotalTimeoutConstant = 10
CtimeOut.WriteTotalTimeoutMultiplier = 1
retval = SetCommTimeouts(ComNum, CtimeOut)
If retval = -1 Then
retval = GetLastError()
MsgBox "端口超时设定无效 " ComNumber " 错误: " retval
retval = CloseHandle(ComNum)
Init_Com = False
Exit Function
End If
retval = BuildCommDCB(Comsettings, BarDCB)
If retval = -1 Then
retval = GetLastError()
MsgBox "无效设备 DCB 块 " Comsettings " 错误: " retval
retval = CloseHandle(ComNum)
Init_Com = False
Exit Function
End If
retval = SetCommState(ComNum, BarDCB)
If retval = -1 Then
retval = GetLastError()
MsgBox "无效设备 DCB 块 " Comsettings " 错误: " retval
retval = CloseHandle(ComNum)
Init_Com = False
Exit Function
End If
Init_Com = True
handelinitcom:
Exit Function
End Function
'从串口读取数据
Function ReadCommPure() As String
On Error GoTo handelpurecom
Dim RetBytes As Long, i As Integer, ReadStr As String, retval As Long
Dim CheckTotal As Integer, CheckDigitLC As Integer
retval = ReadFile(ComNum, bRead(0), 255, RetBytes, 0)
ReadStr = ""
If (RetBytes 0) Then
For i = 0 To RetBytes - 1
ReadStr = ReadStr Chr(bRead(i))
Next i
Else
FlushComm
End If
ReadCommPure = ReadStr
handelpurecom:
Exit Function
End Function
'向串口写数据
Function WriteCOM32(COMString As String) As Integer
On Error GoTo handelwritelpt
Dim RetBytes As Long, LenVal As Long
Dim retval As Long
If Len(COMString) 255 Then
WriteCOM32 Left$(COMString, 255)
WriteCOM32 Right$(COMString, Len(COMString) - 255)
Exit Function
End If
For LenVal = 0 To Len(COMString) - 1
bRead(LenVal) = Asc(Mid$(COMString, LenVal + 1, 1))
Next LenVal
' bRead(LenVal) = 0
retval = WriteFile(ComNum, bRead(0), Len(COMString), RetBytes, 0)
' FlushComm
WriteCOM32 = RetBytes
handelwritelpt:
Exit Function
End Function
'****************************************************************************
'描 述:API串口读写测试
'网 站:
'e-mail:mnd@mndsoft.com
'OICQ : 88382850
'****************************************************************************
Private Sub BTNCloseCom_Click()
TMRComm.Enabled = False
Call fin_com
SwitchTags
End Sub
Private Sub BTNOpenCom_Click()
If Not Init_Com(txt(0).Text, txt(1).Text) Then
MsgBox txt(0).Text " 无效!"
Exit Sub
End If
SwitchTags
TMRComm.Enabled = True
End Sub
Private Sub BTNSend_Click()
If WriteCOM32(txtSend) vbCr Len(txtSend) Then
MsgBox "写入错误"
Exit Sub
End If
txtRec.Text = ""
Pic.FillColor = HFF0000
End Sub
Private Sub cboHexAscii_Click()
If Me.cboHexAscii.Text = "按ASCII码" Then
intOutMode = 0
Else
intOutMode = 1
End If
End Sub
Private Sub Command1_Click()
Dim bytDaTa() As Byte
Dim i As Integer
strData1 = txtSend
'yTemp = StrConv(strData1, vbFromUnicode)
For i = 1 To Len(strData1) Step 2
strData = strData Chr(Val("H" Mid(strData1, i, 2)))
Next
WriteCOM32 (strData)
strData = ""
End Sub
Private Sub Command2_Click()
Dim bytDaTa() As Byte
Dim yTemp() As Byte
Dim i As Integer
'Dim sTemp As String
strData1 = txtSend
yTemp = StrConv(strData1, vbFromUnicode)
strData = StrConv(yTemp, vbUnicode)
WriteCOM32 (strData)
strData = ""
End Sub
Private Sub Form_Load()
intOutMode = 0
Me.cboHexAscii.Text = "按ASCII码"
End Sub
Private Sub Form_Unload(Cancel As Integer)
BTNCloseCom_Click '退出时关闭串口
End Sub
Private Sub TMRComm_Timer()
Dim Ans As String, i As Integer, RtnStr As String
Ans = ReadCommPure()
If Pic.FillColor = HFFFFFF Then
Pic.FillColor = vbGreen
Else
Pic.FillColor = HFFFFFF
End If
If Ans = "" Then Exit Sub
Pic.FillColor = HFF
For i = 1 To Len(Ans)
RtnStr = RtnStr Hex(Asc(Mid$(Ans, i, 1))) " "
Next
RtnStr = RtnStr vbCrLf vbCrLf CleanStr(Ans)
txtRec.Text = RtnStr
FlushComm
End Sub
Function CleanStr(TextLine As String) As String
Dim i As Integer, RtnStr As String
RtnStr = ""
For i = 1 To Len(TextLine)
Select Case Asc(Mid$(TextLine, i, 1))
Case H5D
RtnStr = RtnStr "ACK"
Case H5B
RtnStr = RtnStr "NAK"
Case Is = H30
RtnStr = RtnStr Mid$(TextLine, i, 1)
Case 13
RtnStr = RtnStr "CR"
Case 10
RtnStr = RtnStr "LF"
Case Else
RtnStr = RtnStr "@"
End Select
Next i
CleanStr = RtnStr
End Function
Sub SwitchTags()
Dim xs As Control
For Each xs In Me
If xs.Tag "" Then
xs.Enabled = Not xs.Enabled
End If
Next
End Sub
Private Sub ctrTimer_Timer()
Dim longth As Integer
strSendText = Me.txtSend.Text
If intOutMode = 0 Then
frmMain.ctrMSComm.Output = strSendText
ElseIf intOutMode = 1 Then
End If
End Sub
移动发什么短信能知道自己每月要扣的钱
现在各省都有短信营业厅平台,但是发送的短信指令可能有差别,以北京为例:
全球通、动感地带、神州行客户编辑短信“10086”发送至10086,即可轻松完成多种业务的办理。
欢迎进入北京移动短信营业厅,请回复序号
1.话费积分
101.话费查询
102.积分服务
2.最新优惠
3.业务办理
301.彩铃
302.移动秘书
303.交费提醒
304.邮寄账单
305.彩信好礼
4.梦网定制
401.梦网业务查询
402.退定梦网业务
5.套餐业务
501.GPRS套餐
502.超级畅听套餐
503.新99套餐
6.常用信息
601.城区营业厅
602.郊区营业厅
603.常用网址
604.常用电话
605.GPRS和彩信参数
9.帮助
欢迎进入北京移动短信营业厅,请回复序号 1.话费积分
101.话费查询
102.查询余额
103.m值服务
2.最新优惠
3.业务办理
301.彩铃
302.移动秘书
303.动感专线
306.全球呼包月
308.动感套餐信使
4.梦网定制
401.梦网业务查询
402.退定梦网业务
5.套餐业务
501.GPRS套餐
502.动感必选套餐
6.常用信息
601.城区营业厅
602.郊区营业厅
603.常用网址
604.常用电话
605.GPRS和彩信参数
9.帮助
欢迎进入北京移动短信营业厅,请回复序号 2.最新优惠
3.业务办理
301.彩铃(神州行、大众卡)
4.梦网定制
401.梦网业务查询(神州行、大众卡)
402.退定梦网业务(神州行、大众卡)
5.套餐业务
502.超级畅听(神州行)
503.开心听(神州行)
504.开心聊(神州行)
505.打听王(神州行)
6.常用信息
601.城区营业厅(神州行、大众卡)
602.郊区营业厅(神州行、大众卡)
603.常用网址(神州行、大众卡)
604.常用电话(神州行、大众卡)
605.GPRS和彩信参数(神州行、大众卡)
9.帮助
全球通、动感地带、神州行客户也可通过发送指定业务代码到10086,进行信息查询或业务办理。
分类 业务服务功能
业务代码
客户品牌
话费查询
指定月份话费查询(半年内)
HF YYYYMM
全球通、动感地带
上月话费查询
HFCX
全球通
余额查询
YE
动感地带
套餐办理类
开通GPRS标准资费
KTG0
全球通、动感地带、畅听卡
开通GPRS5元套餐
KTG5
全球通、动感地带、畅听卡
开通GPRS20元套餐
KTG20
全球通、动感地带、畅听卡
开通GPRS100元套餐
KTG100
全球通、动感地带、畅听卡
开通GPRS200元套餐
KTG200
全球通、动感地带、畅听卡
开通漫游优惠计划
KTMYYH
动感地带、神州行、畅听卡
取消漫游优惠计划
QXMYYH
动感地带、神州行、畅听卡
开通全球通10元超级畅听
KTCJCT10
全球通
开通全球通20元超级畅听
KTCJCT20
全球通
取消超级畅听
QXCJCT
全球通
商旅优惠计划-68
KT68
全球通
商旅优惠计划-168
KT168
全球通
商旅优惠计划-268
KT268
全球通
商旅优惠计划-368
KT368
全球通
商旅优惠计划-498
KT498
全球通
取消商旅优惠计划
QXSL
全球通
开通畅听99-99套餐
KT99
全球通
开通畅听99-139套餐
KT139
全球通
开通畅听99-199套餐
KT199
全球通
开通畅听99-299套餐
KT299
全球通
取消畅听99套餐
QX99
全球通
开通彩信好礼套餐
KTCX
全球通
取消彩信好礼套餐
QXCX
全球通
开通动听套餐
KTDT
动感地带
取消动听套餐
QXDT
动感地带
开通动感超级畅听
KTDGCJCT
动感地带
取消动感超级畅听
QXDGCJCT
动感地带
青青校园
QQXY
动感地带
娱乐部落
YLBL
动感地带
白领联盟
BLLM
动感地带
10元短信套餐
TC10
动感地带
15元短信套餐
TC15
动感地带
30元短信套餐
TC30
动感地带
50元短信套餐
TC50
动感地带
开通神州行10元超级畅听
SCT500
神州行
开通神州行20元超级畅听
SCT1000
神州行
取消神州行超级畅听
SCT0
神州行
开通神州行开心聊20
KTKXL20
神州行
开通神州行开心聊50
KTKXL50
神州行
取消神州行开心聊
QXKXL
神州行
开通打听计划
KTDTW
神州行
取消打听计划
QXDTW
神州行
大众卡变6元月租
YHDZK
大众卡
开通移动信息服务收费提醒
DZXXSF
全球通、动感地带、神州行、大众卡、畅听卡
取消移动信息服务收费提醒
QXXXSF
全球通、动感地带、神州行、大众卡、畅听卡
开通移动秘书
KTYDMS
全球通、动感地带、畅听卡
取消移动秘书
QXYDMS
全球通、动感地带、畅听卡
彩信帐单
CXZD
全球通、动感地带
取消彩信帐单
QXCXZD
全球通、动感地带
开通交费提醒
KTJFTX
全球通
取消交费提醒
QXJFTX
全球通
开通动感专线
KTDGZX
动感地带
修改动感专线
XGDGZX
动感地带
查询动感专线
CXDGZX
动感地带
开通MZONE套餐信使
KTXS
动感地带
取消MZONE套餐信使
QXXS
动感地带
查询MZONE套餐信使
CXXS
动感地带
开通全球呼包月
KTQQH
动感地带
取消全球呼包月
QXQQH
动感地带
申请延长有效期
YCYXQ
神州行、大众卡
新业务类
开通飞信
KTFX
全球通、动感地带、神州行、大众卡、畅听卡
取消飞信
QXFX
全球通、动感地带、神州行、大众卡、畅听卡
开通彩铃功能
KTCL
全球通、动感地带、神州行、大众卡、畅听卡
取消彩铃功能
QXCL
全球通、动感地带、神州行、大众卡、畅听卡
开通来电提醒
KTLD
全球通、动感地带
取消来电提醒
QXLD
全球通、动感地带
梦网服务
梦网订购关系查询
0000
全球通、动感地带、神州行、大众卡、畅听卡
全部梦网业务退订
00000
全球通、动感地带、神州行、大众卡、畅听卡
友情提示:
非北京移动客户不能使用此项业务
使用短信营业厅办理业务,收发短信全部免费
关于你所在省份的短信指令可以拨打10086问已下。或者告诉我帮你查询。
联通通过短信发送什么查询开通功能?
好像没有可以查询全部的,下面的给你参考一下。功能名称 指令代码
取消5元包50元长途优惠 QX5YCT
取消5元包100元本地发起的普通国内长途费优惠 QX5YYH
取消本地被叫包月 QXBDQD
取消两地漫游 QXLDMY
取消话费提醒 QXHFTX OTAQXHFTX
关闭GPRS功能 QXGPRS
删除亲情号码 SC+空格+手机号码
取消郑汴漫游 QXZBMY
取消郑汴长途 QXZBCT
取消夜话聊吧 QXYHLB
取消帐单 取消帐单
话费清晰看得见 话费清晰看的见 话费清晰看得见 话费清晰看地见
定制优惠查询 YHCX
新势力开通全国漫游优惠 XSLMY
156套餐商旅包58 SL15658
156套餐商旅包518 SL156518
156套餐商旅包298 SL156298
156套餐商旅包198 SL156198
查询拇指 CXMZ
查询密码 CXMM
积分查询 JF CXJF OTACXJF
查询话费 DYHF CXHF HF OTADYHF 当月话费
查询包月分钟数 CXFZ
查询短号码 CXDH+手机号码
156套餐彩信包5元 CX1565
156套餐长途包80 CT15680
156套餐长途包40 CT15640
156套餐GPRS包5元 GPRS1565
156套餐GPRS包200元 GPRS156200
156套餐GPRS包20元 GPRS15620
156套餐GPRS包100元 GPRS156100
关闭直通车 GBZTC
关闭炫铃 GBXL GBCL
关闭拇指 GBMZ
关闭来电显示 GBLDXS
关闭3元长途 GB3YCT
开通郑汴漫游 KTZBMY
开通郑汴长途 KTZBCT
夜话聊吧 KTYHLB
开通炫铃 KTXL KTCL 7101
开通详单粉碎 KTXDFS
开通拇指C KTMZC
开通拇指B KTMZB
开通拇指A KTMZA
开通来电显示 KTLDXS
手机钱包确认礼品领取 LP
开通每周话费提醒 KTHFTXC OTAKTHFTXC
开通隔日话费提醒 KTHFTXB OTAKTHFTXB
退出集团 TCJT
话费提醒业务介绍 OTAJSHFTX
拇指帮助 MZBZ
两地漫游(如开通许昌两地漫游) KTLDMY+地区简拼(如许昌为XC)
开通每日话费提醒 KTHFTXA
开通GPRS KTGPRS
国庆省外定向长途-(如湖北) KTDXCT+省全拼(如:湖北 HUBEI)
开通本地被叫包月 KTBDQD
开通5元包100元本地发起的普通国内长途费优惠 KT5YYH
开通5元包50元长途优惠 KT5YCT
开通3元长途优惠 KT3YCT
网内点对点短信条数查询 DXCXL
网间点对点短信条数查询 DXCXH
点对点短信条数查询 DXCXA
156套餐短信包5元 DX1565
156套餐短信包20元 DX15620
156套餐短信包10元 DX15610
查询帐单 CXZD
查询亲情号码 CXQQ
删除亲情号码 SC+空格+手机号码
取消郑汴长途 QXZBCT
开通直通车 KTZTC
积分换保险 JFHBX
帐户信息查询 ZHXX CXZHXX
用户信息查询 YHXX CXYHXX
信用额度查询 XYED CXXYED
可用余额查询 KYYE CXYE YE OTACXYE
上月账单查询 SYZD SYHF OTASYHF
积分查询 JF CXJF OTACXJF
彩信条数查询 CXCX
取消5元网络包 QXWLB5
取消3元网络包 QXWLB3
关闭延迟48小时停机 QXYCTJ
开通延迟48小时停机 KTYCTJ
关闭10193优惠新干线 GB10193
关闭拇指 GBMZ
开通10193长途优惠 KT10193
取消玫瑰心愿 QXMGXY
取消玫瑰信使 QXMGXS
取消短信甜点 QXDXTD
取消彩信派 QXCXP
关闭U族功能 GBUZGN
关闭6元彩信包 GBCX6
关闭3元彩信包 GBCX3
开通5元网络包 KTWLB5
开通3元网络包 KTWLB3
开通彩信派 KTCXP
开通短信甜点 KTDXTD
开通6元彩信包 KTCX6
开通3元彩信包 KTCX3
10193业务查询 CX10193
10193业务介绍 OTAJS193
GPRS流量查询 CXLL
关闭炫铃 GBXL
关闭详单粉碎 GBXDFS
取消(GPRS)200元套餐(包流量5G) QXGPRS200
开通(GPRS)200元套餐(包流量5G) KTGPRS200
取消(GPRS)100元套餐(包流量2G) QXGPRS100
开通(GPRS)100元套餐(包流量2G) KTGPRS100
取消(GPRS)50元套餐(包流量500M) QXGPRS50
开通(GPRS)50元套餐(包流量500M) KTGPRS50
取消(GPRS20元套餐(包流量150M) QXGPRS20
开通(GPRS20元套餐(包流量150M) KTGPRS20
取消(GPRS)10元套餐(包流量70M) QXGPRS10
开通(GPRS)10元套餐(包流量70M) KTGPRS10
取消(GPRS)5元套餐(包流量30M) QXGPRS5
开通(GPRS)5元套餐(包流量30M) KTGPRS5
取消(GPRS)2元套餐(包流量5M) QXGPRS2
开通(GPRS)2元套餐(包流量5M) KTGPRS2
卡地亚蓝气球系列,手表在哪里看型号?
卡地亚蓝气球系列,手表型号在保修卡上。
卡地亚手表辨真伪的方法:
1,卡地亚手表如何验证真伪:指针和表盘
指针这个小东西是最不好仿制的,正品的指针表面是电镀的,所以非常光亮平整,形状上也十分的规则和纤细,在表针上的夜明珠是和表盘上的颜色一样的。假货的指针制作的要稍微短了一些,再仔细观察时会发现有微小的痕迹,是在按压时留下的,这个正品根本没有。另外正品的表盘在7点或者10点的位置,有极小斜印的“cartier”字母,假货一般容易忽略这一点,即使有印制的也没有正品的规范精细。
2,卡地亚手表如何验证真伪:手表表盘
表盘的印字(包括分符刻度、英文字母)都是清晰、黑亮、凸起的,而假表的这点都做不好,很多都模糊、暗淡和不凸起。卡地亚表盘的特点是在7点位置或10点位置,有一极小斜印的“CARTIER”字母,这最能考察它的印刷水平了。
3,卡地亚手表如何验证真伪:卡地亚手表后盖
比较容易的是看卡地亚CARTIER手表后盖,后盖上面都有刻字,包括牌品,表壳、表壳材质、型号、生产序号等。真表的刻字非常清晰、深刻、笔画比较“瘦”,字体较小;而假表的则笔画粗大,深浅不一,布局不美观,标识模糊。
4,卡地亚手表如何验证真伪:观察表带
表带折扣的穿钉,折扣表面的光洁度,假表做的都不好。比如,穿钉露头粗糙,不圆还有加工的痕迹,折扣表面的光洁度不光亮,形状及倒角不规范,在有就是螺丝孔处存在毛刺,这些现象都是假卡地亚CARTIER手表的典型特征。
写到这里,本文关于ftx0000和的介绍到此为止了,如果能碰巧解决你现在面临的问题,如果你还想更加了解这方面的信息,记得收藏关注本站。
标签: #ftx0000
评论列表