简单点说,比如操作系统默认.txt文件的打开方式是使用Notepad;可是我后来安装了Ultraedit并关联了.txt文件类型,这样双击一个.txt文件时系统就会调用Ultraedit程序打开这个文件。那么我在VB程序里应该怎样做才能使操作系统自动选择打开.txt文件的程序,而不是使用shell "notepad " & 文件名方式打开?谢谢。

解决方案 »

  1.   

    用下面这个函数ShellExecute VB声明 
    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 
    说明 
      查找与指定文件关联在一起的程序的文件名 
    返回值 
    Long,非零表示成功,零表示失败。会设置GetLastError 
    参数表 
    参数 类型及说明 
    hwnd Long,指定一个窗口的句柄,有时候,windows程序有必要在创建自己的主窗口前显示一个消息框 
    lpOperation String,指定字串“open”来打开lpFlie文档,或指定“Print”来打印它 
    lpFile String,想用关联程序打印或打开一个程序名或文件名 
    lpParameters String,如lpszFlie是可执行文件,则这个字串包含传递给执行程序的参数 
    lpDirectory String,想使用的完整路径 
    nShowCmd Long,定义了如何显示启动程序的常数值。 ' 例子
    Option Explicit
    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 LongPrivate Sub Command1_Click()
    ShellExecute Me.hwnd, "open", "c:\123.txt"
    End Sub