如何使程序带多个参数运行?(100分)

  • 主题发起人 主题发起人 hawe
  • 开始时间 开始时间
H

hawe

Unregistered / Unconfirmed
GUEST, unregistred user!
在windows下我可以单击一个文件选择用我自己的程序打开,并将文件名传递给应用程序,
(用ParamStr获得)但我想同时选中多个文件传入我的应用程序中却还是只能得到一个参数
即选的第一个文件,这是为什么?
 
可以用Paramcount取得参数的个数,然后用
for i:=1 to paramcount-1 do
// paramstr(i)就是各个参数
 
这我知道! 但是无论你选几个文件,获得的paramcount都是1,即只能取一个文件!
请高手继续!
 
怎么可能啊?如果有多个参数的话,paramcount不可能总是为1
 
文件名间加空格
 
如果你是将多个文件拖放到你的程序上就可以得到多个文件名了.而且在从
paramstr(1)到paramstr(paramcount-1)中带有完整的路径.
 
To Chenlili and 车金明: 我想同时选中多个文件传入我的应用程序中,不是用命令行写入!
To Lera: 将多个文件拖放到程序上,我已经实现了,不过是用消息的,可以用paramstr?
怎么用?说一下!我会给分的!
另: 我想做的是--同时选中多个文件选择我的应用程序来"打开", 有高手知道怎么做么?
因为这样打开后,ParamStr只有第一个文件!我目前想到的方法是判断程序是否
已运行了一个实例,再将paramstr(1)逐一加入那个实例中。
 
以下便是一个完整的程序,也许是最小的程序了.
program ScrStarter;

uses
windows,sysutils;

{$R *.RES}
var
I:integer;
msgstr:string;
begin
msgstr:='';
for I:=0 to paramcount do
msgStr:=Msgstr+'第'+inttostr(i)+'参数: '+paramstr(i)+#13#10;
messagebox(0,pchar(msgStr),pchar('Show All the Starting Params. --- by Lera'),mb_OK);
end.
 
你是想选中多个相同类型文件后,用右键菜单同时在一个自己的程序中打开吧。改注册表!
 
大家有没有看清我的问题? 还有高手么? 抑或是这个问题本身不可行!
 
To hawe:
明白了你的意思,你的想法是正确的,用这个方法就可以了。
还有一个方法,好像用到Com接口,我也不知道。:)
 
to kingron:
COM接口的方法自然可以!也不难,只是我懒得写^_^ 我看过Ultraedit就是用这个的,
我想看看有什么简单的方法,各位如果没什么其它答案,我就结束这个问题了!
 
hawe:
lera的答案是正确的!
如果要继续请提前,否则请结束问题,谢谢
 
接受答案了.
 
后退
顶部