app.previnstance
可以判断程序是否运行了两个实例.

解决方案 »

  1.   

    用DDE可以做到,我不会DDE,只是在资料上看过。或者你可以Hook一个热键,程序只要往桌面发送该热键然后关闭即可。
      

  2.   

    HOOK ? 没必要这么麻烦吧?
    DDE怎么做啊?
      

  3.   

    HOOK ? 没必要这么麻烦吧?
    DDE怎么做啊?
      

  4.   

    app.previnstance
    可以判断程序是否运行了两个实例.findwindow 可以通过你的caption找到你的第一个实例
      

  5.   

    private sub form_load()
    if app.previnstant=true then
       me.show
       end
    end ifend sub
      

  6.   

     系统托盘用子类技术,这个我不说了
    只说一下如何在有一实例运行时第二实例给该实例传替消息。Const TSTR="__XXFEIYU_PROGRAMS__"
    if app.previnstant=true then '有实例在运行
       dim t as string
       t=clipboard.gettext
       clipboard.settext TSTR + t '在剪贴板作标记
       SaveSetting "FEIYU PROGRAM","FLAG","TURE" '注册表标记
       end
    else
       frmMain.show
       ....
    end if
    end sub在frmMain上放个Timer控件 100ms 检查一下剪贴板
    如果剪贴板的内容是 TSTR 开头的文本则检查注册表,注册表检查通过就SHOW 该窗体,复位注册表标志,改回剪贴板原来的内容。
    x=clipboard.gettext
    if left(x,20)=TSTR then
    GetSetting .....
    .....
    frmMain.SHOW 'frmMain不能Unload 只能Hide
    SaveSetting ...
    clipboard.settext mid(x,21)
    ....
    有点意思吧?