怎样生成带参数的EXE文件(50分)

  • 主题发起人 主题发起人 pigherd
  • 开始时间 开始时间
P

pigherd

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样生成带参数的EXE文件,以使得调用该程序时可以通过该参数的不同得到不同结果。
(不好意思,非常笨拙的叙述)
 
可以在程序中查询 paramcount
如果大于0的话
用paramstr取参数
 
void __fastcall TForm1::FormCreate(TObject *Sender)

{
for (int i=0;i<=ParamCount();i++)
{
if (LowerCase(ParamStr(i)) == "beep")
Beep(10000,1000);
else if (LowerCase(ParamStr(i)) == "exit")
Application->Terminate();
}
}
 
procedure TForm1.FormActivate(Sender: TObject);
begin
if ParamCount > 0 then
begin
//CmdLine参数为系统参数,描述你传入的参数值
//对它进行操作的语句
end
else //报错语句或其它处理语句
end;
 
在VC里面是处理应用程序类的INITSTANCE
BOOL CSdfdsApp::InitInstance()
{
AfxEnableControlContainer();

// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable, you should remove from the following
// the specific initialization routines you do not need.
..........
//分析命令行
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
//结束
........
}
为了能够处理命令行,您可从CCommandLineInfo 派生,
例如:
void ParseParam(const TCHAR* pszParam,Bool Flag,Bool blast*)
{
CString sArg(pszParam);
if(bFlag)
m_bDialogFg=!sArg.CompareNoCase("yours command eg d");//d
CCommandLineInfo::ParseParam(pszParam,bFlag,blast);//其中m_bDialogFg为自定义的变量!
}
然后将相应的应用程序里调用ParseParam(const TCHAR* pszParam,Bool Flag,Bool blast*)
就OK了!
}
 
procedure TFrameForm.FormCreate(Sender: TObject);
var sFileName:string;
i:integer
begin
if ParamCount > 0 then
begin (* 有执行参数传入 *)
for i= 1 to paramcount do
begin
sFileName := ParamStr(1); (* 取得参数内容 *)
showmessage(sFileName);
end;
end;
end;//其它的你看着办吧
 
多人接受答案了。
 
后退
顶部