你如果想选定N个文件一起打开,那么你的程序就会被调用N次,所以你先把程序
用 ;HD:=FindWindow('TForm','Form1');
; if HD=0 then
; ;begin
; ; ;Application.Initialize;
; ; ;Application.CreateForm(.......
; ; ;if paramcount>0 then
; ; ; ;Form1.listbox1.Items.Add(paramstr(1));//加入列表文件
;...
; Else
; ; if paramcount>0 then
; ; ; ; begin
; ; ; ; ; ds.cbData:=Length(paramstr(1))+1;
; ; ; ; ; GetMem(ds.lpData,ds.cbData);
; ; ; ; ; strCopy(ds.lpData,PChar(paramstr(1)));
; ; ; ; ; SendMessage(HD,WM_COPYDATA,hd,Cardinal(@ds));
; ; ; ; ; FreeMem(ds.lpData);
; ; ; ; end;
这样是保证你的程序只运行一次,然后用SendMessage把后来接受的数据,再发给自己已经
运行的程序,
并且通过
; ; procedure SendMyMessage(var t:TWmCopyData); message WM_COPYDATA;
procedure TForm.SendMyMessage(var t:TWmCopyData);
begin
; Form1.listbox1.Items.Add(strpas(t.CopyDataStruct^.lpData));
end;
来接受数据,就可以实现你的目的了
To: 一个过客
if (人家都看不起用delphi的人,根基太浅) then
; ShowMessage('你还来Delphi论坛干嘛?');