本人开发一个叫"图形浏览"的东西,我现在有一个问题,如命令行参数为 shell "c:\图形浏览.exe c.jpg"
如果"图形浏览"已经启动,则打开图片c.jpg,否则启动"图形浏览"并打开C.jpg请问如何做

解决方案 »

  1.   

    '程序以模块中的Sub Main启动
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function ShowWindow Lib "user32" (ByVal Hwnd As Long, ByVal nCmdShow As Long) As Long
    Private Declare Function SetForegroundWindow Lib "user32" (ByVal Hwnd As Long) As Long
    Private Const SW_SHOWNORMAL = 1Sub Main()
        Dim WinWnd As Long, s As String
        On Error Resume Next
        App.Title = ""
        s = "图形浏览"
        WinWnd = FindWindow(vbNullString, s)
        If WinWnd <> 0 Then
           ShowWindow WinWnd, SW_SHOWNORMAL
           SetForegroundWindow WinWnd
           End
        End If
        App.Title = s
        
        Load frmMain
    End Sub
      

  2.   

    If App.PrevInstance Then
            MsgBox ("图形浏览程序已经运行。"), vbExclamation
    else
            shell "c:\图形浏览.exe c.jpg"
    End If
      

  3.   

    用3楼的方法检测到现有程序后,把3楼的MsgBox 部分改为通过 DDE 给现有程序发送消息让他打开 c.jpg
    有关DDE通信的详细说明,请看 VB 帮助文件。