找回密码
 加入
搜索
查看: 4340|回复: 16

[已解决]程序启动限制

[复制链接]
发表于 2009-3-27 18:52:00 | 显示全部楼层 |阅读模式
在未学习AU3之前用过破帽做的网吧维护通道+桌面壁纸更新软件!发现它的程序,除了从主程序上启动各个分程序,都无法使用,当你运行时会提示你从主程序启动该工具,帽子现在不知道消失在那儿去了,想找他问问都没法,大侠们是否知道这是怎么做到的?

网上找的说明!很明确定,留着这以便他人学习!
$CmdLine[0] 保存着命令行中参数的个数(不包括脚本文件名),如上例/a /b /c,返回值为3(个)
$CmdLine[1] 是第 1 个参数,如上例/a
$CmdLine[2] 则是第 2 个参数,如上例/b
$CmdLine[3] 则是第 3 个参数,如上例/c

如果命令行是这个:soft.exe Path /C:\Drivers则返回参数
$CmdLine[0] 如上例返回值为2(个)
$CmdLine[1] 返回参数Path
$CmdLine[2] 返回参数/C:\Drivers(去掉前面的“/”即可得到路径参数C:\Drivers)

以下是具体判断:
If $Cmdline[0] = 3 Then
$sn1 = $cmdline[1]
$sn2 = $cmdline[2]
$sn3 = $cmdline[3]
If $sn1 = "/a" Then;首先判断第一个参数是/a 或/b或 /c并执行动作
如何如何动作...
ElseIf $sn1 = "/b" Then
如何如何动作...
ElseIf $sn1 = "/c" Then
如何如何动作...
EndIf
等等、等等...以下依次判断第二、三个参数
EndIf

[ 本帖最后由 jycel 于 2009-3-31 17:27 编辑 ]
发表于 2009-3-27 19:00:41 | 显示全部楼层
大约是参数吧
 楼主| 发表于 2009-3-27 20:51:54 | 显示全部楼层
今晚遇上帽子了,也说的是参数! 还不懂!谁能给个例子或讲解下!
发表于 2009-3-27 20:59:14 | 显示全部楼层
命令行参数。
检测程序直接运行就提示要主程序才能运行。程序指定参数来让主程序来运行就是了。
发表于 2009-3-27 20:59:40 | 显示全部楼层
if cmdline[1]<>"aa" them msgbox(0,"AA","请从主程序启动")
 楼主| 发表于 2009-3-27 21:22:17 | 显示全部楼层
原帖由 zjg2003 于 2009-3-27 20:59 发表
if cmdline[1]"aa" them msgbox(0,"AA","请从主程序启动")

能讲下cmdline是什么吗?中间是then吧
 楼主| 发表于 2009-3-27 21:23:46 | 显示全部楼层
原帖由 sanhen 于 2009-3-27 20:59 发表
命令行参数。
检测程序直接运行就提示要主程序才能运行。程序指定参数来让主程序来运行就是了。

sanhen能给个具体点的例子吗?或者具具体函数用法
发表于 2009-3-27 21:25:32 | 显示全部楼层
看帮助里有说明
 楼主| 发表于 2009-3-27 23:00:09 | 显示全部楼层
帮助中
If $CmdLine[0] = 0 Then
    Exit
EndIf
这个$CmdLine[0] = 0 取值问题是怎么取的?
我是这样写的
If $CmdLine <> "Server" Then
        MsgBox(16,"错误","请输从主程序启动!")
    Exit
EndIf
server换成server.exe都不行
从主程序中启动都启动不了,这该怎么付值呢?
我先给$CmdLine 付值也不行,提示不能对常量付值

[ 本帖最后由 jycel 于 2009-3-27 23:02 编辑 ]
发表于 2009-3-27 23:07:39 | 显示全部楼层
$cmdline是数组
$cmdline[0] 是参数的数量.
$cmdline[1]是第1个参数,
 楼主| 发表于 2009-3-28 00:07:47 | 显示全部楼层
搞了一晚上还是没弄懂,一头雾水~
If $cmdline[0] <> 0 Then
    $filename = $cmdline[1]
     MsgBox(4096, "测试", '你输入的命令行参数是 "' & $filename & '"')
Else    
    MsgBox(64, "测试", '请此程序')
EndIf
这个命令行参数$filename = 后面换成其它的,但都提示请带参数运行

谁能直接给我说下,还容易理解些!
主程序为:
server.exe
子程序
Netbar.exe
只能从server来启动netbar
发表于 2009-3-28 01:56:34 | 显示全部楼层
唉,楼主你太心急了!
此问题出动了论坛几大高手,你依然未能明白,可见你从一开始就想一步登天了...........
一步一步从基础学起吧
发表于 2009-3-28 02:33:00 | 显示全部楼层
If $CMDLine[0] = 1 Then
        MsgBox(0, 0, "第1个参数是:" & $CMDLine[1]
Else
        MsgBox(0, 0, "没有带参数运行,在这后面跟上退出的代码!")
        Exit
EndIf


$CMDLine[0] 为运行脚本时所带的参数,$CMDLine[N] 为第N个参数的内容.

楼主把以上代码保存为"C:\1.au3",再在命令提示符下运行"C:\1.au3 xxxx"试下,
当然,你也可以在SciTE里设置运行参数.

如果你依然不了解,那我还是劝你多看帮助文档了!

[ 本帖最后由 漠北雪~狼 于 2009-3-28 02:36 编辑 ]
 楼主| 发表于 2009-3-28 12:05:52 | 显示全部楼层
基本搞定了,就是有点小问题不清楚,在命令行下代正确定参数可以启动,错误参数会提示请从主程序启动,但直接点它则提示
If $cmdline[1] = "server" Then
    $filename = $cmdline[1]
Else    
    MsgBox(0,"警告!","请从Server主界面调用本功能!",10)

    Exit
EndIf


[ 本帖最后由 jycel 于 2009-3-28 12:10 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2009-3-28 13:21:58 | 显示全部楼层
If $CMDLine[0] = 1 Then ;参数的数量你需先判断是否有带有一个参数后再判断参数是不是你想要的“Server”值
        你要判断“Server”放在这里
Else
        MsgBox(0, 0, "没有带参数运行,在这后面跟上退出的代码!")
        Exit
EndIf
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-19 02:10 , Processed in 0.084504 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表