如何才能知道程序被调用时一共传了多少个参数。
比如, show 1.txt
show 1.txt /b另外,我用Inno打包我的程序,但是它创建的快捷方式运行我的程序时,获取的程序所在路径不正确。
我的程序是这样得到自己运行的路径的,
sExePath := ExtractFilePath(Application.ExeName);
比如, show 1.txt
show 1.txt /b另外,我用Inno打包我的程序,但是它创建的快捷方式运行我的程序时,获取的程序所在路径不正确。
我的程序是这样得到自己运行的路径的,
sExePath := ExtractFilePath(Application.ExeName);
--Returns the number of parameters passed on the command line.
2、没用过Inno,不过ExtractFilePath(Application.ExeName)是没错的
呼叫 ParamStr(0), 传回执行档的档名(含路径)
呼叫 ParamStr(n), 传回第n个参数的内容
procedure TForm1.FormCreate(Sender: TObject);
var
sFileName: string;
begin
if ParamCount > 0 then //(* 有执行参数传入 *)
begin
sFileName := ParamStr(1); //(* 取得参数内容 *)
if FileExists(sFileName) then
Memo1.Lines.LoadFromFile(sFileName)
else
Application.MessageBox('找不到指定的档案', '讯息', 48);
end;
end;至于打包程序安装后快捷方式获得路径不正确的问题,我想可能是你在打包的时候设置有问题,应该是跟你的程序无关吧。
2,你说的INNO创建的快捷方式运行你的程序不能找到路径;如果是快捷方式不能找到你的程序,那可能是你inno设置的时候出了问题,如果是程序可以运行,只是在运行过程中需要获得路径的操作返回的结果不正确,那可能就是程序的问题了。你最好把操作出错的地方在原始程序中重新检查一下,比如说用Message查看一下,在重新打包,看看结果是什么?这样就好解决你的问题了阿