我事先将我的文件同我的软件关联,但是我双击它后...(50分)

  • 主题发起人 主题发起人 zulu
  • 开始时间 开始时间
Z

zulu

Unregistered / Unconfirmed
GUEST, unregistred user!
我事先将我的文件同我的软件关联,但是我双击它后,它可以启动我的软件,但是不能将这个文件直接打开。请问如何处理,谢谢!
 
文件名会作为参数传递给你的软件
你用paramstr函数就可以读出需要打开的文件名。
 
用命令行参数取得要打开的文件名
ParamCount
ParamStr
 
楼上说的对.
 
给你个列子:
调用部分如下:
path:=extractfilepath(application.ExeName)+'project_query.exe' + ' ';
scmd := path + '<ICCARD>' + icno + '</ICCARD>' +
'<SERVERNAME>' + FieldByName('ServerIP').AsString + '</SERVERNAME>' +
'<DBNAME>' + FieldByName('DBName').AsString + '</DBNAME>' +
'<LOGINNAME>' + FieldByName('LoginName').AsString + '</LOGINNAME>' +
'<LOGINPSW>' + FieldByName('LoginPsw').AsString + '</LOGINPSW>' +
'<TABLENAME>' + sTableName + '</TABLENAME>';


winexec(pchar(scmd),sw_shownormal)


被调用部分:
if paramcount <= 0 then
begin
Close;
Exit;
end;

sParm := paramstr(1);
GIcCardNo := FirstSubStr(sParm,'<ICCARD>','</ICCARD>');
sServer := FirstSubStr(sParm,'<SERVERNAME>','</SERVERNAME>');
sDbm := FirstSubStr(sParm,'<DBNAME>','</DBNAME>');
sUser := FirstSubStr(sParm,'<LOGINNAME>','</LOGINNAME>');
sPsw := FirstSubStr(sParm,'<LOGINPSW>','</LOGINPSW>');

其中FirstSubStr函数是取中间值,如:两个<ICCARD>之间的值。这个函数是自己写的。
 
后退
顶部