首先,将自己的程序与。txt文件相关联(通过注册表),然后试试这个代码(bcb的)在winmain()函数的开始处添加:
HWND RuningHandle=FindWindowEx(NULL,NULL,"自己窗体名",NULL);
//如果已经有一个实例运行,则只向该实例发送一个消息
//告诉它该打开哪个文件,而不运行程序if(RuningHandle!=NULL)
{
 TClipboard *Clipbd=new TClipboard();
 Clipbd->Clear();
 Clipbd->SetTextBuf(CLine);
 delete Clipbd;
 PostMessage(RuningHandle,OPEN_NEW_FILE,NULL,NULL);
 return 0;
}

解决方案 »

  1.   

    用子窗口,看看MDI的例子。
    或者是用pagecontrol。
      

  2.   

    to sumdaybodys:
       谢谢,这的确是个办法,但我还有点问题:
      1.如果接收这个消息,我使用Delphi编程,要接管系统本身的消息吗,如何做?
      2.我用EditPlus试了一下,发现每次打开一个新文件后,先前拷贝的剪贴板中的内容还在,它可能用的其它方法。
      

  3.   

    to sumdaybodys:
       谢谢,这的确是个办法,但我还有点问题:
      1.如果接收这个消息,我使用Delphi编程,要接管系统本身的消息吗,如何做?
      2.我用EditPlus试了一下,发现每次打开一个新文件后,先前拷贝的剪贴板中的内容还在,它可能用的其它方法。
      

  4.   

    to Jiker:
    1.不需要
    2.我再想想
      

  5.   

    to sumdaybodys:
      1.不需要,那么在Delphi中如何写(接收)。
      

  6.   

    to sumdaybodys:
      1.不需要,那么在Delphi中如何写(接收)。
      
      

  7.   

    不需要,那么在Delphi中如何写(接收)。
      

  8.   

    kao,那天酒真的喝多了,应该是要(bcb的)
    BEGIN_MESSAGE_MAP
    MESSAGE_HANDLER(OPEN_NEW_FILE,TMessage*,OpenNewFile)
    END_MESSAGE_MAP(TForm)
      

  9.   

    to sundayboys:
    我就是说,VB都要,VB要用API来操作,Delphi如何做,应该与BCB不同?
      

  10.   

    to sundayboys:
    我就是说,VB都要,VB要用API来操作,Delphi如何做,应该与BCB不同? 
      

  11.   

    to sundayboys:
    我就是说,VB都要,VB要用API来操作,Delphi如何做,应该与BCB不同? 
      

  12.   

    呵呵,测试代码如下(编译一下,然后同时运行两个实例,点击那个button,另外一个程序回显示一个字符串,当然,如果改成文件名也是一样的噢!):
    我想你要修改一下就很简单了吧!
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls;const
      wm_Openfile=wm_user+100;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
        procedure wmopenfile(var msg:tmessage);message wm_openfile;
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}{ TForm1 }procedure TForm1.wmopenfile(var msg: tmessage);
    var
      p:pchar;
    begin
      p:=pchar(msg.WParam);
      showmessage(p);
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      h:hwnd;
    begin
      caption:='abc';
      h:=findwindow('tform1','form1');
      if h>0 then
        sendmessage(h,wm_Openfile,integer(pchar('c:\windows\readme.txt')),0);
      caption:='form1';
    end;end.