📄 20000806003.htm
字号:
<HTML>
<HEAD>
<TITLE>怎样获取程序的命令行参数?</TITLE>
<META content="MSHTML 5.00.2314.1000" name=GENERATOR>
</HEAD>
<BODY aLink=#FF0000 bgColor=#ffffff leftMargin=0 link=#187800 topMargin=0
vLink=#990099>
<div align="center">
<table width="744" border="0" cellspacing="0" cellpadding="0" height="76">
<tr>
<td>
<p class="coffee" align="center"><font size="3"><b><br>
怎样获取程序的命令行参数</b></font></p>
<p><font color=#ffffff>-</font>你可以用下面的两种不同的技巧来解决这个问题。</p>
<p><b>技巧1:首先,也许是最简单的方法是调用VCL ParaStr()函数。你可使用ParamCount()函数来确定到底有多少个命令行参数传递给了应用程序。<br>
</b></p>
<p><tt>ParamStr需要一个整数参数并且返回一个AnsiString对象。若参数为0,</tt> <tt>ParamStr</tt>
将返回可执行文件的全称路径。若参数为1,将返回程序名及第一个命令行参数。若参数为2,将返回第二个参数,等等。作为一个实践,开启一个新的项目,在主窗口上放置5个Label,将下面的代码添加到窗口的构造函数中:<br>
</p>
<p>Label1->Caption = ParamStr(0);<br>
Label2->Caption = ParamStr(1);<br>
Label3->Caption = ParamStr(2);<br>
Label4->Caption = ParamStr(3);<br>
Label5->Caption = ParamStr(4);<br>
</p>
<p>再运行程序。一般应能看到类似字符串: E:\CBUILDER\PROJECTS\PROJECT1.EXE如果没传递参数到程序,那么Label2到Label5是空字符串。关闭程序,从C++Builder菜单中选择
Run | Parameters。输入几个参数(<tt>-debug -testing -param</tt>)再次运行程序。你将看到:
E:\CBUILDER\PROJECTS\PROJECT1.EXE<br>
-debug<br>
-testing<br>
-param<br>
</p>
<p><b>提示:</b> <tt>ParamStr</tt> 对目录中的空格能智能判断。为证实这点,把生成的EXE文件拷贝到Program
Files目录下再运行它,你将会看到ParamStr(0)返回全路径,并包含空格。<br>
</p>
<p><b>技巧2:第二个方法就是调用GetCommandLine API函数。GetCommandLine不需要参数,并且返回一个C风格的char
*,包含全部的命令行参数。你将不得不分解字符串以取得相关参数。</b> <br>
<br>
Label5->Caption = AnsiString(GetCommandLine());运行后,Label5将为: "E:\CBuilder\Projects\Project1.exe"
-debug -testing -param</p>
</td>
</tr>
</table>
</div>
</BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -