Dos命令是 attrib + r c:\autoexec.bat然后用Shell .......
解决方案 »
- 求教高手,怪异问题,为什么FindWindowEx得到了错误的句柄值?
- 为什么LISTVIEW控件没XP风格
- datagrid的一个问题,请大家指点一下!
- 用户权限的问题
- 请问如何在上一个窗体输入查询条件。在下一个窗口中显示查询结果???
- 用ActiveReport分组打印时,如果实现对每分组的统计?
- 爲什麽在function執行第二條sql語句時出現執行階段錯誤‘91’:沒有設定物件變數或with區塊變數?
- 高分求救(100)在VB里怎么做“浏览文件夹”啊?
- 程序都是英文和数字,在西文系统里缺显示乱码,怎么解决啊?
- 关于SendMessage 发送WM_SETCURSOR消息的问题
- 如何调整窗体的背景跟着窗体的大小变化?
- 送分:关于MSFlexGrid1的问题!!急,在线等待!
为了查看一个文件的大小、创建时间、存取属性(只读、归档、隐藏)等等情况,采取的步骤一般是: 1、定位文件 2、用鼠标右键单击文件 3、在出现的菜单中选择“属性” 这时,就出现了文件属性对话框。比如,对于c:\autoexec.bat实施上面的操作后,图示如下:
这时,我们就能对它的各种属性值进行修改。 在VB开发中,为了实现上面的功能,要应用到ShellExecuteEX函数,具体如下: '声明结构变量 Private Type SHELLEXECUTEINFO cbSize As Long fMask As Long hwnd As Long lpVerb As String lpFile As String lpParameters As String lpDirectory As String nShow As Long hInstApp As Long lpIDList As Long lpClass As String hkeyClass As Long dwHotKey As Long hIcon As Long hProcess As Long End Type '定义常量参数 Const SEE_MASK_INVOKEIDLIST = &HC Const SEE_MASK_NOCLOSEPROCESS = &H40 Const SEE_MASK_FLAG_NO_UI = &H400 '引用API函数 Private Declare Function ShellExecuteEX Lib "shell32.dll" Alias _ "ShellExecuteEx" (SEI As SHELLEXECUTEINFO) As Long '通用调用文件属性对话框过程 '第一个参数为欲操作的文件全路径,第二个参数为窗口句柄 Public Sub ShowProps(FileName As String, OwnerhWnd As Long) Dim SEI As SHELLEXECUTEINFO Dim r As Long With SEI .cbSize = Len(SEI) .fMask = SEE_MASK_NOCLOSEPROCESS Or _ SEE_MASK_INVOKEIDLIST Or SEE_MASK_FLAG_NO_UI .hwnd = OwnerhWnd .lpVerb = "properties" .lpFile = FileName .lpParameters = vbNullChar .lpDirectory = vbNullChar .nShow = 0 .hInstApp = 0 .lpIDList = 0 End With r = ShellExecuteEX(SEI) End Sub Use '例程:调用c:\autoexec.bat的属性对话框 Call ShowProps("c:\autoexec.bat", Me.hwnd)
用这个函数,就可以设置文件的属性
例如:
SetFileAttributes c;\autoexec.bat ,FILE_ATTRIBUTE_READONLY
这就是只读了
object 必需的。总是某个 File 或者 Folder 对象的名字。
newattributes 可选的。如果提供的话,newattributes 就是所指定 object 的新属性值。
设置newattributes 参数可以是具有下列值中的任意一个或任意的逻辑组合:常数 值 描述
Normal 0 一般文件。未设置属性。
ReadOnly 1 只读文件。属性为读/写。
Hidden 2 隐藏文件。属性为读/写。
System 4 系统文件。属性为读/写。
Volume 8 磁盘驱动器卷标。属性为只读。
Directory 16 文件夹或目录。属性为只读。
Archive 32 自上次备份后已经改变的文件。属性为读/写。
Alias 64 链接或快捷方式。属性为只读。
Compressed 128 压缩文件。属性为只读。
说明下面的代码用一个文件举例说明了 Attributes 属性的用法:Sub SetClearArchiveBit(filespec)
Dim fs, f, r
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile(fs.GetFileName(filespec))
If f.attributes and 32 Then
r = MsgBox("The Archive bit is set, do you want to clear it?", vbYesNo, "Set/Clear Archive Bit")
If r = vbYes Then
f.attributes = f.attributes - 32
MsgBox "Archive bit is cleared."
Else
MsgBox "Archive bit remains set."
End If
Else
r = MsgBox("The Archive bit is not set. Do you want to set it?", vbYesNo, "Set/Clear Archive Bit")
If r = vbYes Then
f.attributes = f.attributes + 32
MsgBox "Archive bit is set."
Else
MsgBox "Archive bit remains clear."
End If
End If
End Sub
SetFileAttributes
FILE_ATTRIBUTE_HIDDEN 隐藏SetFileAttributes "f:\text.txt", FILE_ATTRIBUTE_READONLY Or FILE_ATTRIBUTE_HIDDEN
这样就是只读和隐藏了
Private Declare Function SetFileAttributes Lib "kernel32" Alias "SetFileAttributesA" (ByVal lpFileName As String, ByVal dwFileAttributes As Long) As Long
Private Const FILE_ATTRIBUTE_READONLY = &H1
Private Const FILE_ATTRIBUTE_HIDDEN = &H2