VB 打开文件的代码该怎么写````
比如说我要单击Command1后,打开"C:\QQ2007\QQ.EXE"该怎么做```如果C:\QQ2007\QQ.EXE不存在,,则显示文件不存在或拒绝访问,该怎么做...
比如说我要单击 Command1 后,打开"C:\QQ2007\QQ.EXE" 该怎么做```
如果C:\QQ2007\QQ.EXE 不存在,,则显示 文件不存在或拒绝访问,该怎么做``` 展开
如果C:\QQ2007\QQ.EXE 不存在,,则显示 文件不存在或拒绝访问,该怎么做``` 展开
6个回答
展开全部
使用系统API函数ShellExecute实现打开文件。执行后会调用与要打开文件扩展名关联的程序打开这个文件。
Private 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
Private Sub Form_click()
ShellExecute(Me.hwnd, "open", "z:\test.txt", "", "", 1)
End sub
函数参数及意义:
ShellExecute(
hWnd: HWND; {指定父窗口句柄}
Operation: PChar; {指定动作, 譬如: open、runas、print、edit、explore、find[2] }
FileName: PChar; {指定要打开的文件或程序}
Parameters: PChar; {给要打开的程序指定参数; 如果打开的是文件这里应该是 nil}
Directory: PChar; {缺省目录}
ShowCmd: Integer {打开选项}
): HINST;
ShowCmd 参数可选值:SW_HIDE = 0; {隐藏}
SW_SHOWNORMAL = 1; {用最近的大小和位置显示, 激活}
SW_NORMAL = 1; {同 SW_SHOWNORMAL}
SW_SHOWMINIMIZED = 2; {最小化, 激活}
SW_SHOWMAXIMIZED = 3; {最大化, 激活}
SW_MAXIMIZE = 3; {同 SW_SHOWMAXIMIZED}
SW_SHOWNOACTIVATE = 4; {用最近的大小和位置显示, 不激活}
SW_SHOW = 5; {同 SW_SHOWNORMAL}
SW_MINIMIZE = 6; {最小化, 不激活}
SW_SHOWMINNOACTIVE = 7; {同 SW_MINIMIZE}
SW_SHOWNA = 8; {同 SW_SHOWNOACTIVATE}
SW_RESTORE = 9; {同 SW_SHOWNORMAL}
SW_SHOWDEFAULT = 10; {同 SW_SHOWNORMAL}
SW_MAX = 10; {同 SW_SHOWNORMAL}
WIN8系统调用此函数打开文件无效。
Private 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
Private Sub Form_click()
ShellExecute(Me.hwnd, "open", "z:\test.txt", "", "", 1)
End sub
函数参数及意义:
ShellExecute(
hWnd: HWND; {指定父窗口句柄}
Operation: PChar; {指定动作, 譬如: open、runas、print、edit、explore、find[2] }
FileName: PChar; {指定要打开的文件或程序}
Parameters: PChar; {给要打开的程序指定参数; 如果打开的是文件这里应该是 nil}
Directory: PChar; {缺省目录}
ShowCmd: Integer {打开选项}
): HINST;
ShowCmd 参数可选值:SW_HIDE = 0; {隐藏}
SW_SHOWNORMAL = 1; {用最近的大小和位置显示, 激活}
SW_NORMAL = 1; {同 SW_SHOWNORMAL}
SW_SHOWMINIMIZED = 2; {最小化, 激活}
SW_SHOWMAXIMIZED = 3; {最大化, 激活}
SW_MAXIMIZE = 3; {同 SW_SHOWMAXIMIZED}
SW_SHOWNOACTIVATE = 4; {用最近的大小和位置显示, 不激活}
SW_SHOW = 5; {同 SW_SHOWNORMAL}
SW_MINIMIZE = 6; {最小化, 不激活}
SW_SHOWMINNOACTIVE = 7; {同 SW_MINIMIZE}
SW_SHOWNA = 8; {同 SW_SHOWNOACTIVATE}
SW_RESTORE = 9; {同 SW_SHOWNORMAL}
SW_SHOWDEFAULT = 10; {同 SW_SHOWNORMAL}
SW_MAX = 10; {同 SW_SHOWNORMAL}
WIN8系统调用此函数打开文件无效。
展开全部
用OPEN语句,前提是你要先获得文件的地址才行,可以用Common Dialog 控件获得
【open】能够对文件输入/输出 (I/O)。
语法
Open pathname For mode [Access access] [lock] As
[#]filenumber [Len=reclength]
Open 语句的语法具有以下几个部分:
部分
描述
pathname
必要。字符串表达式,指定文件名,该文件名可能还包括目录、文件夹及驱动器。
mode
必要。关键字,指定文件方式,有
Append、Binary、Input、Output、或 Random
方式。如果未指定方式,则以 Random 访问方式打开文件。
access
可选。关键字,说明打开的文件可以进行的操作,有 Read、Write、或 Read Write
操作。
lock
可选。关键字,说明限定于其它进程打开的文件的操作,有 Shared、Lock
Read、Lock Write、和 Lock Read Write
操作。
filenumber
必要。一个有效的文件号,范围在 1 到 511
之间。使用 FreeFile 函数可得到下一个可用的文件号。
reclength
可选。小于或等于
32,767(字节)的一个数。对于用随机访问方式打开的文件,该值就是记录长度。对于顺序文件,该值就是缓冲字符数。
说明
对文件做任何 I/O 操作之前都必须先打开文件。Open 语句分配一个缓冲区供文件进行 I/O 之用,并决定缓冲区所使用的访问方式。
如果 pathname 指定的文件不存在,那么,在用
Append、Binary、Output、或 Random
方式打开文件时,可以建立这一文件。
如果文件已由其它进程打开,而且不允许指定的访问类型,则 Open 操作失败,而且会有错误发生。
如果 mode 是 Binary 方式,则
Len 子句会被忽略掉。
重要 在 Binary、Input 和 Random 方式下可以用不同的文件号打开同一文件,而不必先将该文件关闭。在 Append 和
Output 方式下,如果要用不同的文件号打开同一文件,则必须在打开文件之前先关闭该文件。
【open】能够对文件输入/输出 (I/O)。
语法
Open pathname For mode [Access access] [lock] As
[#]filenumber [Len=reclength]
Open 语句的语法具有以下几个部分:
部分
描述
pathname
必要。字符串表达式,指定文件名,该文件名可能还包括目录、文件夹及驱动器。
mode
必要。关键字,指定文件方式,有
Append、Binary、Input、Output、或 Random
方式。如果未指定方式,则以 Random 访问方式打开文件。
access
可选。关键字,说明打开的文件可以进行的操作,有 Read、Write、或 Read Write
操作。
lock
可选。关键字,说明限定于其它进程打开的文件的操作,有 Shared、Lock
Read、Lock Write、和 Lock Read Write
操作。
filenumber
必要。一个有效的文件号,范围在 1 到 511
之间。使用 FreeFile 函数可得到下一个可用的文件号。
reclength
可选。小于或等于
32,767(字节)的一个数。对于用随机访问方式打开的文件,该值就是记录长度。对于顺序文件,该值就是缓冲字符数。
说明
对文件做任何 I/O 操作之前都必须先打开文件。Open 语句分配一个缓冲区供文件进行 I/O 之用,并决定缓冲区所使用的访问方式。
如果 pathname 指定的文件不存在,那么,在用
Append、Binary、Output、或 Random
方式打开文件时,可以建立这一文件。
如果文件已由其它进程打开,而且不允许指定的访问类型,则 Open 操作失败,而且会有错误发生。
如果 mode 是 Binary 方式,则
Len 子句会被忽略掉。
重要 在 Binary、Input 和 Random 方式下可以用不同的文件号打开同一文件,而不必先将该文件关闭。在 Append 和
Output 方式下,如果要用不同的文件号打开同一文件,则必须在打开文件之前先关闭该文件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
假设控件Text1中文本为文件路径
方法一:Shell "Explorer.exe" + Space(1) + "file:\\\" & Text1.Text
方法二:Shell "cmd.exe /c start " + Chr(34) + Chr(34) + " " + Chr(34) + Text1.Text + Chr(34), vbHide
区别:
方法一是用Explorer.exe打开文件的,打开网页时用的是IE,打开文本是用Notepad.exe。
方法二是用默认软件打开的。
方法一:Shell "Explorer.exe" + Space(1) + "file:\\\" & Text1.Text
方法二:Shell "cmd.exe /c start " + Chr(34) + Chr(34) + " " + Chr(34) + Text1.Text + Chr(34), vbHide
区别:
方法一是用Explorer.exe打开文件的,打开网页时用的是IE,打开文本是用Notepad.exe。
方法二是用默认软件打开的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在窗口添加一个按钮,按钮的名称为"Command1"标题"打开"
Private Sub Command1_Click()
If Len(Dir("C:\QQ2007\QQ.EXE")) = 0 Then
MsgBox "文件不存在或拒绝访问!"
Else
Shell "C:\QQ2007\QQ.EXE", 1
End If
End Sub
Private Sub Command1_Click()
If Len(Dir("C:\QQ2007\QQ.EXE")) = 0 Then
MsgBox "文件不存在或拒绝访问!"
Else
Shell "C:\QQ2007\QQ.EXE", 1
End If
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Private Sub Command1_Click()
If Len(Dir("C:\QQ2007\QQ.EXE")) = 0 Then
MsgBox "文件不存在或拒绝访问!"
Else
Shell "C:\QQ2007\QQ.EXE", 1
End If
End Sub
If Len(Dir("C:\QQ2007\QQ.EXE")) = 0 Then
MsgBox "文件不存在或拒绝访问!"
Else
Shell "C:\QQ2007\QQ.EXE", 1
End If
End Sub
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询