程序怎样从资源管理器的右键命令中接受多个文件并且本身只运行一次?

Putao 2002-01-02 09:31:14
就像在资源管理器中选择多个文件,右击UltraEdit-32,UltraEdit只打开一个窗口,但却打开了多个页来显示这些文件.

我在工程文件(.dpr)中用这段代码实现本身只运行一次:
var hMutex, Ret: integer;
begin
Application.Initialize;
Application.Title := 'aaaaaaa';
hMutex := CreateMutex(nil, false, 'aaaaaaa');
Ret := GetLastError;
if Ret <> ERROR_ALREADY_EXISTS Then
begin
Application.CreateForm(TMainForm, MainForm);
Application.Run;
end
else
ReleaseMutex(hMutex);
end.

在MainForm的Create事件中用这段代码接受参数:
if ParamCount <> 0 then
begin
tmpFileLists := TStringList.Create;
for ix := 1 to ParamCount do
tmpFileLists.Add(ParamStr(ix));
end;

可是当我在资源管理器中选择多个文件,然后右击"Process"(右键启动的注册表配置我已经确认可用),总是只接受到其中的一个文件.

请问怎样改代码才能实现UltraEdit那样的功能?

谢谢!
...全文
84 点赞 收藏 10
写回复
10 条回复
lvqiang 2002年03月02日
要打开多个窗体,是不是要用MDI窗体呢?
回复 点赞
Putao 2002年01月05日
提前一下
回复 点赞
Putao 2002年01月03日
To Kingron,gxgxfish0813:
好深奥哦,能给出代码吗?
谢谢!
回复 点赞
Putao 2002年01月03日
提前一下
回复 点赞
Greenberet 2002年01月02日
good!
回复 点赞
VSaber 2002年01月02日
限制一个实例运行用互斥体之类的内核对像就可以了!
回复 点赞
gxgxfish0813 2002年01月02日
哦,观注观注!!!
回复 点赞
Kingron 2002年01月02日
呵呵,有几个方法,一个是限制运行一个实例,然后把其他的文件名发送到这个实例即可,
另外过一个方法,就是利用COM接口,具体的需要修改那个地方,我也忘记了,你找找相关的资料就明白了。
回复 点赞
Putao 2002年01月02日
还请高手指点.
回复 点赞
Putao 2002年01月02日
还请高手指点.
回复 点赞
发动态
发帖子
非技术区
创建于2007-08-02

588

社区成员

5.4w+

社区内容

Delphi 非技术区
社区公告
暂无公告