CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

请给我介绍一下“命令行参数”有什么作用?

楼主handysoft(非我不可)2003-12-01 01:00:18 在 VB / 基础类 提问

我看很多VB软件公司要求在sub   main()中检查“命令行参数”这有什么作用呢,并请在大家给我详述一个命令行参数的作用,谢谢 问题点数:100、回复次数:22Top

1 楼linucz(masaka)回复于 2003-12-01 02:07:52 得分 0

命令行程序(某些)不带参数运行,那就太愚蠢了  
   
  比如ping.exe这个程序,不带参数,你运行它,起什么作用?ping谁呀?  
   
  参数是程序的输入的数据,没有输入的数据,程序看上去狠死板,把数据固化到源代码里编译,运行。。基本失去了程序的意义Top

2 楼handysoft(非我不可)回复于 2003-12-01 02:47:37 得分 0

大侠,那能不能举例说明一下命令行参数具体可以作点什么呢?Top

3 楼boydgmx(授人以鱼不如授人以渔(baidu&google))回复于 2003-12-01 08:20:13 得分 20

Option   Explicit  
  Public   strCmd   As   String  
  Private   Sub   Form_Load()  
          Me.Visible   =   False  
           
          strCmd   =   Command  
           
          MsgBox   strCmd  
           
          Unload   Me  
  End   Sub  
   
  将上面的代码添加到一个窗体中。  
  然后编译成一个可执行文件,比如   msg.exe  
   
  然后在命令行下执行该文件  
  C:\>msg.exe   "sdfsf"  
   
  会看到弹出对话框,然后程序自动退出。Top

4 楼SoHo_Andy(冰)回复于 2003-12-01 08:29:08 得分 20

举个例子说明一下  
  比如你的应用程序要处理很多个登录的分支,或者处理复杂的用户自定义功能  
  常见的做法是在程序中通过一些判断或者交互来处理,但通过命令行参数来处理也不错  
  具体做法就是添加命令行参数“MakeLine”,“LoadData1”啊什么的  
  在程序中接收到命令行参数解析,然后执行相应初始化功能  
  Top

5 楼handysoft(非我不可)回复于 2003-12-01 21:54:06 得分 0

谢谢帮助,不过我还是想知道一下,用做的程序可以在DOS下执行吗,但我一般看到的就是在windows下执行,而且直接双击setup后的*.exe就行呀(或是做快捷方式放到桌面上,直接双击它),那怎么能让它加上参数呢Top

6 楼zt31(安全套,我一直用雕牌)回复于 2003-12-01 21:58:17 得分 0

关注ingTop

7 楼a11s(没事情做了)回复于 2003-12-01 22:23:01 得分 0

加参数的方法  
  1   用鼠标拖,比如记事本程序     (notepad.exe)   把文本文件直接托上去就可以  
  2   开始-->运行...     你的程序   参数  
  3   Windows下的MS-DOS方式   或者Win2k的CMDTop

8 楼chenkangli(编程浪子)回复于 2003-12-01 22:29:58 得分 0

也可以这样理解.其实"命令行参数"和函数参数有一样的效果,自己可以体会一下.Top

9 楼handysoft(非我不可)回复于 2003-12-02 12:33:09 得分 0

谢谢大家的不断开导,我现在对命令行参数的意义已经有所了解了,可是还有点搞不清的是这个参数对程序的执行有什么作用呢,比如说:怎么做能让程序(.exe)在没有参数的时候就不能运行,有了这个参数程序又能做些什么?Top

10 楼handysoft(非我不可)回复于 2003-12-02 12:39:34 得分 0

比如说,如下这段代码是用来看有没有命令行参数的,在调用时,如果返回为false,程序可能关闭,可是如果有这个命令行参数又能怎样呢?在sub   main中可以用这个命令行做什么呢?  
  sub   main()  
          If   gfncGetParameter(strParm,   intParmCnt)   <>   True   Then  
                  Exit   Sub  
          End   If  
  ....  
  end   sub  
   
  Public   Function   gfncGetParameter(strParm()   As   String,   intParmCnt   As   Integer)   As   Boolean  
   
  On   Error   GoTo   gfncGetParameter_ErrHandle  
   
          Dim   strCmdLn         As   String  
          Dim   intPos             As   Integer  
          Dim   intStart         As   Integer  
          Dim   intCnt             As   Integer  
          Dim   strTemp()       As   String  
   
          gfncGetParameter   =   False  
           
          strCmdLn   =   Trim(Command$)  
           
          If   Len(strCmdLn)   =   0   Then  
                  intParmCnt   =   0  
                  MsgBox   "SYSTEM   ERR   !   PLEASE   CALL   SYSTEM   OPERATOR.",   vbCritical,   GSTR_MSG_TITLE  
                  Exit   Function  
          End   If  
           
          intCnt   =   0  
          intStart   =   1  
          Do  
  '                 intPos   =   InStr(intStart,   strCmdLn,   vbTab)  
                  intPos   =   InStr(intStart,   strCmdLn,   "   ")  
                  If   intPos   =   0   Then  
                          'Only   one   parameter   or   last   parameter  
                          ReDim   Preserve   strTemp(intCnt)  
                          strTemp(intCnt)   =   Mid$(strCmdLn,   intStart,   Len(strCmdLn))  
                          Exit   Do  
                  Else  
                          ReDim   Preserve   strTemp(intCnt)  
                          strTemp(intCnt)   =   Mid$(strCmdLn,   intStart,   intPos   -   intStart)  
                           
                          intStart   =   intPos   +   1  
                          If   strTemp(intCnt)   <>   ""   Then  
                                  intCnt   =   intCnt   +   1  
                          End   If  
                  End   If  
                   
                  If   intStart   >   Len(strCmdLn)   Then  
                          Exit   Do  
                  End   If  
                   
          Loop   Until   intPos   =   0  
           
          For   intCnt   =   0   To   UBound(strTemp)  
                  ReDim   Preserve   strParm(intCnt)  
                  strParm(intCnt)   =   strTemp(intCnt)  
          Next   intCnt  
           
  '         gstrLoginId   =   strTemp(0)  
          If   UBound(strTemp)   =   0   Then  
                  intParmCnt   =   1  
          Else  
                  intParmCnt   =   UBound(strTemp)   +   1  
          End   If  
         
          gfncGetParameter   =   True  
         
  Exit   Function  
           
  gfncGetParameter_ErrHandle:  
          gfncGetParameter   =   False  
          Exit   Function  
  End   FunctionTop

11 楼liweida585(high_hand)回复于 2003-12-02 12:57:56 得分 0

a.vbp  
  shell   lw.exe   helloworld  
  ___________________________  
  b.vbp  
  dim   str   as   string  
  str=command()  
  msgbox   str  
  ________  
  "helloworld"Top

12 楼lnhsgj(黑鹰)回复于 2003-12-02 12:58:38 得分 0

命令行参数,是程序运行时所需数据的一种获得方法。  
   
  “怎么做能让程序(.exe)在没有参数的时候就不能运行”  
  不加参数就不运行,这是不可能的。  
  运行时有没有加参数,只能在程序启动后由程序来判断。  
  当你的程序得不到这个数据时,直接退出就是了。  
   
  “有了这个参数程序又能做些什么?”  
  这个问题很有意思。  
  我帮不了你。Top

13 楼handysoft(非我不可)回复于 2003-12-02 13:28:55 得分 0

“有了这个参数程序又能做些什么?”  
  就是可以举个例子说一下嘛,比如你们大侠通常用这个参数做什么呢?Top

14 楼liberte()回复于 2003-12-02 13:44:22 得分 0

gzTop

15 楼lnhsgj(黑鹰)回复于 2003-12-02 19:13:07 得分 10

WINDOWS时代了,现在已经很少有程序需要加参数运行了。  
  除非是那些无界面的或常驻内存后台程序。Top

16 楼mingtian2008(明天)回复于 2003-12-02 19:35:34 得分 0

upTop

17 楼a11s(没事情做了)回复于 2003-12-03 11:05:54 得分 50

最简单的例子  
  屏幕保护程序,不信的话你可以试试,windows给你一些参数告诉你如何运行屏幕保护  
   
  再就是有一些游戏,如果加上特定的参数,就可以使用秘籍  
   
  以及某些软件软件加上/debug可以进入调试模式  
   
  所以说,即使现在到了windows时代,那些参数也还是有一些用途的Top

18 楼handysoft(非我不可)回复于 2003-12-04 20:03:51 得分 0

呵,谢谢,我对/debug这个挺感兴趣的,能具体说说吗,如VB怎么能让app.exe   /debug进入VB的调试模式的呢,还可以用命令行参数做点什么呢,大家多说说。Top

19 楼simanh()回复于 2003-12-04 20:17:33 得分 0

upTop

20 楼snowflake310(猫猫)回复于 2003-12-04 21:21:33 得分 0

upTop

21 楼jpinglee(想去海边)回复于 2003-12-04 22:06:17 得分 0

命令行参数  
   
   
  决定   Visual   Basic   是编译运行程序、编译生成可执行   (.exe)   文件或   ActiveX   的   DLL   (.dll),还是设置该命令函数程序所返回的命令行的参数部分。  
   
  语法  
   
  vb6[.exe]   [[{/run   |   /r}   projectname]   [[{/d   compileconst}]   {/make   |   /m   }   projectname]   [{/makedll   |   /l}   projectname]   {/cmd   argument   |   /c   argument}][{/runexit}   projectname][{/m}   or   {/runexit}   projectname   /out   filename}][{/m}][/sdi]   or   [/mdi]  
   
  命令行各开关语法部分是:  
   
  参数   描述    
  projectname   工程文件名   (.vbp)。    
  /run   或   /r   告诉   Visual   Basic,使用存储在位于“工程属性   (J)”对话框的“生成”选项卡“命令行参数”字段中的参数,编译运行   projectname。该命令允许运行多个工程。用   projectgroupname   替换   projectname。    
  /make   或   /m   告诉   Visual   Basic,使用已有的   APP   对象的   Path、EXEName   和   Title   属性设置值,编译   projectname   并生成一个可执行   (.exe)   文件。该命令允许由多个工程编译和生成一个可执行文件。用   projectgroupname   替换   projectname。    
  /makedll   或   /l   告诉   Visual   Basic,编译   projectname,并由它生成一个进程内   ActiveX   服务器   (.dll)   文件。    
  /d   或   /D   告诉   Visual   Basic,在用   /make   开关生成   .EXE   或用   /makedll   开关生成   ActiveX   的   DLL   时,用作条件编译常数那些值。    
  compileconst   用在工程文件中条件编译常数的名称和值。    
  /cmd   或   /c   将参数放入“命令行参数”字段,该字段位于“工程属性(J)”对话框的“生成”选项卡。使用该参数时,该开关必须置于命令行的最后。    
  /runexit   告诉   Visual   Basic,运行   projectname。若文件由于某些原因运行中被修改,则所有改变将被忽略,并且在返回设计模式时不出现对话框。    
  filename   当使用   /m   或   /runexit   选项生成可执行文件时,用来接受错误信息的文件名。    
  /out   当使用   /m   或   /runexit   选项生成时,用来指定接受错误信息的文件。文件中第一个出现的错误带有其它状态信息。如果没有使用该选项,则命令行生成的错误将显示在信息框中。该选项在编译多个工程时十分有用。    
  /?   列出可用的命令行参数。    
  /sdi   将   Visual   Basic   环境改变为   SDI(单文档界面)模式。如果不做改变,则   Visual   Basic   将一直保持在   SDI   模式。如果想改变为   MDI   模式,可以使用   /mdi   参数,也可以通过清除位于“选项”对话框的“高级”选项卡的“SDI   开发环境”选项来完成。    
  /mdi   按   MDI(多文档界面)模式打开   Visual   Basic。如果不做改变,Visual   Basic   将一直保持在   MDI   模式。如果想改变为   SDI   模式,可以使用   /sdi   参数,也可以通过选定位于“选项”对话框的“高级”选项卡中“SDI   开发环境”选项来完成。MDI   是   Visual   Basic   的缺省模式。    
   
   
  使用这些参数时,它们必须在命令行中以运行   Visual   Basic。例如,可以从   Windows   95“开始”菜单的“运行”命令的“运行”对话框中使用它们。下面是一个运行   Visual   Basic   的有效命令行示例,它装入指定的工程文件并使其运行:  
   
  C:\vb6.exe   /r   MyProj.vbp  
  Top

22 楼doudou8090(初步)回复于 2003-12-04 22:10:51 得分 0

呵,大家真是热情,  
  心里暖和的很,  
  ITop

相关问题

  • 命令行参数?
  • 命令行参数
  • 命令行参数处理!
  • 命令行参数有"*"号
  • 命令行参数问题
  • 命令行参数问题
  • 命令行参数问题
  • 怎样读取命令行参数?
  • 怎么得到命令行参数?
  • 命令行参数的编写?

关键词

  • vb6
  • 命令行
  • 选项
  • 编译
  • 文件
  • 执行
  • 模式
  • 字段
  • 参数
  • intcnt

得分解答快速导航

  • 帖主:handysoft
  • boydgmx
  • SoHo_Andy
  • lnhsgj
  • a11s

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo