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

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那样的功能?

谢谢!
...全文
165 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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
  • 打赏
  • 举报
回复
还请高手指点.

828

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧