程序 Private Sub Form_Load()
  MsgBox Command
 End Sub
 生成a.exe保存在c:\里注册表 在所有文件的右键菜单里加了个Test项 方法 我的电脑\HKEY_CLASSES_ROOT\*\shell
 我的电脑\HKEY_CLASSES_ROOT\*\shell\Test
 我的电脑\HKEY_CLASSES_ROOT\*\shell\Test\command
 command的默认值是 "c:\a.exe" %1问题
 当我点击一个文件右键选择 Test时,会弹出选择的那个文件名包括路径
 打开一个a.exe  当我选择2个或多个文件右键选择 Test时,可以弹出选择的文件名包括路径
 打开了2 或 多(和你选择的文件的个数相等) 个a.exe请问:
 有没有办法选择多个文件后,打开的还是一个a.exe呢?

解决方案 »

  1.   

    Public Sub Main()
    If App.PrevInstance Then
    BringWindowToTop frmMain.hwnd
    Else
    Load frmMain
    End If
    End Sub
      

  2.   

    Public Sub Main()
    If App.PrevInstance Then
    end
    Else
    frmmain.show
    End If
    End Sub
      

  3.   

    不是的,你们做的都只是不让a.exe运行多次如果是你们那样的话,它就只弹出一个文件名,不会弹出后边的文件名和路径了,我想要的是可以让a.exe接收多个参数(也就是可以接收多个文件名)。
      

  4.   

    关键现在就是,在右键里返回的时候,它会根据COMMAND中的 %1也就是当前选择的文件名的个数来打开a.exe
    的,怎么设置就可以选择多个文件而打开一个A.EXE呢,同时A.exe还可以接收到选择的多个文件名其实我的a.exe是一个文件加密的程序,可以单独的对一个文件加密,当同时选择2个文件的时候,它会打开2个a.exe。怎么解决呢??
      

  5.   

    我给大家写的那种方法,大家可以测测呀!!(问题里说的)
    我要的是选择2个文件后,右键Test打开一个a.exe
    同时选择的文件名有弹出!
      

  6.   

    我刚开发的类似你功能的例子  给我你的 e-mail 我发给你 呵呵
      

  7.   

    :(
    baoaya是不是走了大哥?其它人看看呀!
      

  8.   

    过去的一个DDE通讯例子,我没测试,你用下面的代码生成exe,替换你的c:\a.exe,看看能不能达到你要的效果
    '【DDE用法的简单例子】新建工程,设窗体LinkMode为1
    '窗体上放一个Text1,MultiLine和Locked设为真,添加代码:
    Private Sub Form_LinkExecute(CmdStr As String, Cancel As Integer)
        If Len(CmdStr) Then MngDDEMsg (CmdStr)
        Cancel = 0: Me.SetFocus
    End SubSub SendDDEMsg(ByVal Msg As String)
        With Text1
            .LinkTopic = App.Title & "|" & Form1.LinkTopic
            .LinkMode = 2
            .LinkExecute Msg
        End With
    End SubPrivate Sub Form_Load()
        If App.PrevInstance Then
            Call SendDDEMsg(Command)
            Unload Me: End
        Else
            If Len(Command) Then MngDDEMsg (Command)
        End If
    End SubSub MngDDEMsg(ByVal Msg As String)
    '这里替换成对命令参数的处理代码
    Text1.SelStart = 0
    Text1.SelText = Msg & vbCrLf & vbCrLf
    End Sub
      

  9.   

    用shell命令就可以,後面可以接你所需要的多個參數
    如:
    shell app.path &"\a.exe " & " b1=c ;b2=c2 ",1
    你再執行檔中分割參數就可
      

  10.   

    我感觉主程序a.exe没有错,是注册表的写入错了"c:\a.exe" %1
    大家帮忙看看
      

  11.   

    把 "c:\a.exe" %1 改成
    c:\a.exe "%1"
    试试
      

  12.   

    不行的,这样还是打开多个a.exe,昨天你给我法的,我看了,它是只打开了一个a.exe可是它就接收了一个文件名!
    我想要的是,可以接收多个文件名但是只打开一个a.exe
      

  13.   

    你把昨天我给你的代码 改一下:
    先添加 一个list1 然后 替换initForm,ShowMessage 成下面2个 试试
    Private Function initForm()
        Me.Caption = APP_TITLE
        If Len(Command) > 0 Then
            List1.AddItem Command
        End If
    End FunctionPublic Function ShowMessage(strMsg As String)
        List1.AddItem strMsg
    End Function
      

  14.   

    给我也发一个啊 baoaya,谢谢了!
    [email protected]