9命啊2天还没搞定的有关问题,小弟我在VB中想打开一个文件夹,但是这个文件夹的属性是小弟我自己来定义的
9命啊,2天还没搞定的问题,我在VB中想打开一个文件夹,但是这个文件夹的属性是我自己来定义的
我在VB中想打开一个文件夹,但是这个文件夹的属性是我自己来定义的,我用OPENFILE没用,用CREATEFILE,但是就是打不开文件夹,这是怎么回事?
Public Declare Function CloseHandle Lib "kernel32 " (ByVal hObject As Long) As Long
Public 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
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 Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type
Public Const CREATE_NEW = 1
Public Const CREATE_ALWAYS = 2
Public Const FILE_ATTRIBUTE_NORMAL = &H80
Public Const GENERIC_WRITE = &H40000000
Public Const GENERIC_ALL = &H10000000
Public Const FILE_FLAG_DELETE_ON_CLOSE = &H4000000
Public Const GENERIC_READ = &H80000000
Public Const FILE_SHARE_WRITE = &H2
Public Const FILE_SHARE_READ = &H1
Public Const OPEN_EXISTING = 3
Public Const OPEN_ALWAYS = 4
Public Const FILE_FLAG_BACKUP_SEMANTICS = &H2000000
Dim ch
Dim sat As SECURITY_ATTRIBUTES
With sat
.bInheritHandle = True
.lpSecurityDescriptor = Null
.nLength = Len(sat)
End With
'ch = CreateFile( "e:\khdxt ", 0, 0, sat, CREATE_NEW, FILE_FLAG_DELETE_ON_CLOSE, 0)
ch = CreateFile( "e:\khdxt\热门游戏 ", GENERIC_WRITE Or GENERIC_READ, FILE_SHARE_READ Or FILE_SHARE_WRITE, sat, OPEN_ALWAYS, FILE_FLAG_BACKUP_SEMANTICS, 0)
'ch = CreateFile( "e:\khdxt\ ", GENERIC_READ Or GENERIC_WRITE, 0, sat, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, 0)
'ShellExecute ch, "open ", "e:\khdxt ", 0, "e:\ ", 0
'ch = OpenFile( "e:\khdxt\热门游戏 ", lstof, OF_READ)
'CloseHandle (ch) 就是点没反应,谁帮我看看或者改改啊,谢谢。
------解决方案--------------------
我在VB中想打开一个文件夹,但是这个文件夹的属性是我自己来定义的,我用OPENFILE没用,用CREATEFILE,但是就是打不开文件夹,这是怎么回事?
Public Declare Function CloseHandle Lib "kernel32 " (ByVal hObject As Long) As Long
Public 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
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 Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type
Public Const CREATE_NEW = 1
Public Const CREATE_ALWAYS = 2
Public Const FILE_ATTRIBUTE_NORMAL = &H80
Public Const GENERIC_WRITE = &H40000000
Public Const GENERIC_ALL = &H10000000
Public Const FILE_FLAG_DELETE_ON_CLOSE = &H4000000
Public Const GENERIC_READ = &H80000000
Public Const FILE_SHARE_WRITE = &H2
Public Const FILE_SHARE_READ = &H1
Public Const OPEN_EXISTING = 3
Public Const OPEN_ALWAYS = 4
Public Const FILE_FLAG_BACKUP_SEMANTICS = &H2000000
Dim ch
Dim sat As SECURITY_ATTRIBUTES
With sat
.bInheritHandle = True
.lpSecurityDescriptor = Null
.nLength = Len(sat)
End With
'ch = CreateFile( "e:\khdxt ", 0, 0, sat, CREATE_NEW, FILE_FLAG_DELETE_ON_CLOSE, 0)
ch = CreateFile( "e:\khdxt\热门游戏 ", GENERIC_WRITE Or GENERIC_READ, FILE_SHARE_READ Or FILE_SHARE_WRITE, sat, OPEN_ALWAYS, FILE_FLAG_BACKUP_SEMANTICS, 0)
'ch = CreateFile( "e:\khdxt\ ", GENERIC_READ Or GENERIC_WRITE, 0, sat, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, 0)
'ShellExecute ch, "open ", "e:\khdxt ", 0, "e:\ ", 0
'ch = OpenFile( "e:\khdxt\热门游戏 ", lstof, OF_READ)
'CloseHandle (ch) 就是点没反应,谁帮我看看或者改改啊,谢谢。
------解决方案--------------------