开启exe,然后将之最小化,双重启动(继续打开exe),在App.PrevInstance中希望将已经最小化的窗口还原到桌面上的上一次位置。
  谢谢。

解决方案 »

  1.   

    如果是第一个可以用DDE。
    当第二个实例启动时发送DDE信息给第一个实例,第一个实例
    设置WindowState = 0,第二个实例用END结束就可以了。
      

  2.   

    是第一个,就是只能有第一个exe被执行,具体怎么实现呢?
      

  3.   

    用DDE通讯呀,你看一下MSDN里DDE方面的资料就可以了。
    实在你不会还可以用网络嘛,只要两个进程可以通讯就可
    以了不是吗?不过建议你还是使用DDE。
      

  4.   

    如果App.PrevInstance为True,则
        FindWindow
    然后ShowWindow
    否则
       End
      

  5.   

    楼上的方法只是显示窗口,不能处理程序。
    比如Media Player播放器,当点击一个MPG文件时播放一个影片
    但点击另一个MPG时,原来的播放器就播放另一个影片,这就不
    是单靠窗口句柄就可以做到的了,还是要回到进程间通讯这里。
    所以用DDE的方法实现进程通讯比较好,因为DDE还可以把启动参
    数一起传递给原来的实例,并且可以根据参数控制工作。
      

  6.   

    DDE怎么实行呢?能简单介绍吗?或者有sample参照?谢谢。
      

  7.   

    '建立一个窗口,里面放一个PictureBox控件,名称为SendDDEObject
    '用手工先将窗口的LinkMode设置为1
    '然后写入以下代码:Private Sub Form_LinkExecute(CmdStr As String, Cancel As Integer)
        '收到DDE信息
        MsgBox CmdStr
        Cancel = False
    End Sub
    Private Sub Form_Load()
        Me.LinkTopic = "我的DDE"
        If App.PrevInstance Then
           If Command <> "" Then
              SendDDEString Command
           End If
           End
        End If
    End Sub
    Private Sub SendDDEString(DDEInfo As String)
       Dim t As Long
       '设置为无 DDE 交互
       SendDDEObject.LinkMode = 0
       '设置接收DDE目标
       SendDDEObject.LinkTopic = App.Title & "|" & Me.LinkTopic
       '设置为手动模式启动DDE
       SendDDEObject.LinkMode = 2
       '发送DDE信息
       SendDDEObject.LinkExecute DDEInfo
       '返回DDE 响应消息的时间。
       t = SendDDEObject.LinkTimeout
       '设置DDE 响应消息的时间。1/10秒为单位
       SendDDEObject.LinkTimeout = 1
       '设置为无 DDE 交互
       SendDDEObject.LinkMode = 0
       '将原来的DDE 响应时间设回来
       SendDDEObject.LinkTimeout = t
    End Sub将程序编译后将文件多次拖放到编译好的EXE文件上看看效果
      

  8.   

    我星期一能得到结果,谢谢SupermanKing(人类) :P