VB API函数createfile怎么用?

我想在D:\haha下创建一个只读的纯文本文件,用createfile来实现,但lpSecurityAttributes参数不知道怎么设置,高手帮帮啊。
最好解释一下为什么,别让我换别的,我是在学习怎么用这个。
我用过null和byval 0&,都不行。 
我要的不是这个函数的参数列表……而且这个对我问题没帮助……

郎朗坤
浏览 843回答 3
3回答

慕侠2389804

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 LongPrivate Type SECURITY_ATTRIBUTESnLength As LongbInheritHandle As LonglpSecurityDescriptor As LongEnd TypeConst GENERIC_WRITE = &H40000000Const CREATE_NEW = 1Const FILE_ATTRIBUTE_READONLY = &H1Private Sub Form_Load()Dim temp As SECURITY_ATTRIBUTESMsgBox (CreateFile("C:\abc.txt", GENERIC_WRITE, 0, temp, CREATE_NEW, FILE_ATTRIBUTE_READONLY, 0))End Sub

明月笑刀无情

试着参考下面的代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102Public&nbsp;Const&nbsp;GENERIC_WRITE&nbsp;=&nbsp;&H40000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Public&nbsp;Const&nbsp;GENERIC_READ&nbsp;=&nbsp;&H80000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Const&nbsp;FILE_ATTRIBUTE_NORMAL&nbsp;=&nbsp;&H80&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Const&nbsp;CREATE_ALWAYS&nbsp;=&nbsp;2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Const&nbsp;OPEN_ALWAYS&nbsp;=&nbsp;4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Const&nbsp;INVALID_HANDLE_VALUE=&nbsp;-1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Const&nbsp;FILE_NAME&nbsp;=&nbsp;"TEST.DAT"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'This&nbsp;can&nbsp;be&nbsp;any&nbsp;file&nbsp;that&nbsp;does&nbsp;not&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'currently&nbsp;exist.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Type&nbsp;MyType&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value&nbsp;As&nbsp;Integer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Declare&nbsp;Function&nbsp;ReadFile&nbsp;Lib&nbsp;"kernel32"&nbsp;(ByVal&nbsp;hFile&nbsp;As&nbsp;Long,&nbsp;_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lpBuffer&nbsp;As&nbsp;Any,&nbsp;ByVal&nbsp;nNumberOfBytesToRead&nbsp;As&nbsp;Long,&nbsp;_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lpNumberOfBytesRead&nbsp;As&nbsp;Long,&nbsp;ByVal&nbsp;lpOverlapped&nbsp;As&nbsp;Long)&nbsp;As&nbsp;Long&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Private&nbsp;Declare&nbsp;Function&nbsp;CloseHandle&nbsp;Lib&nbsp;"kernel32"&nbsp;(&nbsp;_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ByVal&nbsp;hObject&nbsp;As&nbsp;Long)&nbsp;As&nbsp;Long&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Private&nbsp;Declare&nbsp;Function&nbsp;WriteFile&nbsp;Lib&nbsp;"kernel32"&nbsp;(&nbsp;_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ByVal&nbsp;hFile&nbsp;As&nbsp;Long,&nbsp;lpBuffer&nbsp;As&nbsp;Any,&nbsp;_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ByVal&nbsp;nNumberOfBytesToWrite&nbsp;As&nbsp;Long,&nbsp;_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lpNumberOfBytesWritten&nbsp;As&nbsp;Long,&nbsp;ByVal&nbsp;lpOverlapped&nbsp;As&nbsp;Long)&nbsp;As&nbsp;Long&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Private&nbsp;Declare&nbsp;Function&nbsp;CreateFile&nbsp;Lib&nbsp;"kernel32"&nbsp;_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Alias&nbsp;"CreateFileA"&nbsp;(ByVal&nbsp;lpFileName&nbsp;As&nbsp;String,&nbsp;_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ByVal&nbsp;dwDesiredAccess&nbsp;As&nbsp;Long,&nbsp;ByVal&nbsp;dwShareMode&nbsp;As&nbsp;Long,&nbsp;_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ByVal&nbsp;lpSecurityAttributes&nbsp;As&nbsp;Long,&nbsp;&nbsp;_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ByVal&nbsp;dwCreationDisposition&nbsp;As&nbsp;Long,&nbsp;_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ByVal&nbsp;dwFlagsAndAttributes&nbsp;As&nbsp;Long,&nbsp;ByVal&nbsp;hTemplateFile&nbsp;As&nbsp;Long)&nbsp;_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As&nbsp;Long&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Declare&nbsp;Function&nbsp;FlushFileBuffers&nbsp;Lib&nbsp;"kernel32"&nbsp;(&nbsp;_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ByVal&nbsp;hFile&nbsp;As&nbsp;Long)&nbsp;As&nbsp;Long&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sub&nbsp;fillArray(anArray()&nbsp;As&nbsp;MyType)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;x&nbsp;As&nbsp;Integer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For&nbsp;x&nbsp;=&nbsp;0&nbsp;To&nbsp;UBound(anArray)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;anArray(x).value&nbsp;=&nbsp;x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Next&nbsp;x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Sub&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sub&nbsp;Main()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;fHandle&nbsp;As&nbsp;Integer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;T(1000)&nbsp;As&nbsp;MyType&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Define&nbsp;a&nbsp;large&nbsp;array&nbsp;of&nbsp;data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;S(1000)&nbsp;As&nbsp;MyType&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Define&nbsp;another&nbsp;large&nbsp;array&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fillArray&nbsp;T&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Fill&nbsp;the&nbsp;array&nbsp;with&nbsp;some&nbsp;values&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;writearray&nbsp;FILE_NAME,&nbsp;T&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Write&nbsp;the&nbsp;entire&nbsp;array&nbsp;to&nbsp;disk&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;readArray&nbsp;FILE_NAME,&nbsp;S&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Read&nbsp;into&nbsp;a&nbsp;different&nbsp;array&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Sub&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sub&nbsp;readArray(Fname&nbsp;As&nbsp;String,&nbsp;anArray()&nbsp;As&nbsp;MyType)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;fHandle&nbsp;As&nbsp;Long&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;fSuccess&nbsp;As&nbsp;Long&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;sTest&nbsp;As&nbsp;String&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;lBytesRead&nbsp;As&nbsp;Long&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;BytesToRead&nbsp;As&nbsp;Long&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Get&nbsp;size&nbsp;of&nbsp;data&nbsp;to&nbsp;write&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BytesToRead&nbsp;=&nbsp;(UBound(anArray)&nbsp;+&nbsp;1)&nbsp;*&nbsp;LenB(anArray(0))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Get&nbsp;a&nbsp;handle&nbsp;to&nbsp;a&nbsp;file&nbsp;Fname.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fHandle&nbsp;=&nbsp;CreateFile(Fname,&nbsp;GENERIC_WRITE&nbsp;Or&nbsp;GENERIC_READ,&nbsp;_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0,&nbsp;0,&nbsp;OPEN_ALWAYS,&nbsp;FILE_ATTRIBUTE_NORMAL,&nbsp;0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Here&nbsp;you&nbsp;should&nbsp;test&nbsp;to&nbsp;see&nbsp;if&nbsp;you&nbsp;get&nbsp;a&nbsp;file&nbsp;handle&nbsp;or&nbsp;not.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'CreateFile&nbsp;returns&nbsp;INVALID_HANDLE_VALUE&nbsp;if&nbsp;it&nbsp;fails.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;fhandle&nbsp;<>&nbsp;INVALID_HANDLE_VALUE&nbsp;Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fSuccess&nbsp;=&nbsp;ReadFile(fHandle,&nbsp;anArray(LBound(anArray)),&nbsp;_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BytesToRead,&nbsp;lBytesRead,&nbsp;0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'ReadFile&nbsp;returns&nbsp;a&nbsp;non-zero&nbsp;value&nbsp;if&nbsp;it&nbsp;is&nbsp;successful.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Now&nbsp;you&nbsp;just&nbsp;close&nbsp;the&nbsp;file.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fSuccess&nbsp;=&nbsp;CloseHandle(fHandle)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Sub&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sub&nbsp;writearray(Fname&nbsp;As&nbsp;String,&nbsp;anArray()&nbsp;As&nbsp;MyType)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;fHandle&nbsp;As&nbsp;Long&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;fSuccess&nbsp;As&nbsp;Long&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;sTest&nbsp;As&nbsp;String&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;lBytesWritten&nbsp;As&nbsp;Long&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;BytesToWrite&nbsp;As&nbsp;Long&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Get&nbsp;the&nbsp;length&nbsp;of&nbsp;data&nbsp;to&nbsp;write&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BytesToWrite&nbsp;=&nbsp;(UBound(anArray)&nbsp;+&nbsp;1)&nbsp;*&nbsp;LenB(anArray(0))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Get&nbsp;a&nbsp;handle&nbsp;to&nbsp;a&nbsp;file&nbsp;Fname.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fHandle&nbsp;=&nbsp;CreateFile(Fname,&nbsp;GENERIC_WRITE&nbsp;Or&nbsp;GENERIC_READ,&nbsp;_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0,&nbsp;0,&nbsp;OPEN_ALWAYS,&nbsp;FILE_ATTRIBUTE_NORMAL,&nbsp;0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Here&nbsp;you&nbsp;should&nbsp;test&nbsp;to&nbsp;see&nbsp;if&nbsp;you&nbsp;get&nbsp;a&nbsp;file&nbsp;handle&nbsp;or&nbsp;not.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'CreateFile&nbsp;returns&nbsp;INVALID_HANDLE_VALUE&nbsp;if&nbsp;it&nbsp;fails.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;fhandle&nbsp;<>&nbsp;INVALID_HANDLE_VALUE&nbsp;Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fSuccess&nbsp;=&nbsp;WriteFile(fHandle,&nbsp;anArray(LBound(anArray)),&nbsp;_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BytesToWrite,&nbsp;lBytesWritten,&nbsp;0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Check&nbsp;to&nbsp;see&nbsp;if&nbsp;you&nbsp;were&nbsp;successful&nbsp;writing&nbsp;the&nbsp;data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;fSuccess&nbsp;<>&nbsp;0&nbsp;Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Flush&nbsp;the&nbsp;file&nbsp;buffers&nbsp;to&nbsp;force&nbsp;writing&nbsp;of&nbsp;the&nbsp;data.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fSuccess&nbsp;=&nbsp;FlushFileBuffers(fHandle)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Close&nbsp;the&nbsp;file.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fSuccess&nbsp;=&nbsp;CloseHandle(fHandle)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Sub
打开App,查看更多内容
随时随地看视频慕课网APP