|
![]() | 作者: coolguy [coolguy]
![]() |
登录 |
前两天写了个脚本,发现功能不怎么完善,由于本人的编程技术不是很好,所以在这里要求助下大家,以下是ces.vbs文件的代码: a=inputbox("请输入你要运行的程序:") if msgbox("你将要运行的是:" & a & "吗?",vbOKCancel+vbQuestion)=vbOK then Cancel=0 set a=createobject("wscript.shell") x=a.run(" ") else Cancel=1 end if 我知道 x=a.run(" ")这句要修改一下,但不知道怎么修改,或者还要加入其它的代码。我的意思主要是实现 msgbox("你将要运行的指令是:" & a & "吗?",)这个功能,如果自己输入的是 ipconfig/all 的命令,那么就运行ipconfig/all 命令,如果自己输入的是 notepad.exe,那么就运行 notepad.exe。这样就比较灵活。 上面提到的x=a.run(" "),如果改为x=a.run("notepad.exe"),就是打开记事本文件程序,如果改为x=a.run("c:\123.mp3"),就是打开C盘下的123.mp3音乐文件,但是这样做达不到那种跟着自己输入的内容而变化的目的,大家帮帮忙呀,先谢了~~ |
地主 发表时间: 07-12-04 20:14 |
![]() | 回复: jhkdiy [jhkdiy] ![]() |
登录 |
试试:代码: 脚本我不熟悉,不知是否可行。 |
B1层 发表时间: 07-12-05 21:08 |
![]() | 回复: coolguy [coolguy] ![]() |
登录 |
当运行 dir c:\ 或者是 ipconfig/all之类的命令的时候,会提示路径 'dir c:\'不存在,路径'ipconfig/all'不存在,或者是无效目录。 不过运行 c:\ 或者是 d:\ 可以,实际上等于在地址栏里面输入一个要打开文件的路径而已,主要是x=obj.run("explorer.exe " & a)这句里面的explorer.exe 在起作用。 不过我要感谢版主的提示,我看了你改的x=obj.run("explorer.exe " & a)这句,我想到了调用cmd.exe这个进程,你往下看: 我把 x=obj.run("explorer.exe " & a) 改为 x=obj.run("cmd.exe " & a),不过我发现,这样只是打开了cmd窗口,但是没运行自己要输入的内容,但是我又修改了一下,改为x = b.run("cmd.exe /c " & a),所以整段代码为: a = InputBox("请输入你要运行的程序:") If MsgBox("你将要运行的是:" & a & "吗?", vbOKCancel + vbQuestion) = vbOK Then Cancel = 0 Set b = CreateObject("wscript.shell") x = b.run("cmd.exe /c " & a) Else Cancel = 1 End If 我测试了一下,运行c:\ d:\ 或者是c:\progra~1的时候,打不开C盘,D盘,或者是C盘的Program Files文件夹,但是可以运行自己输入的程序,比如说:charmap 或者是notepad,相当于在cmd命令窗口里面运行某个程序,版主你发现x = b.run("cmd.exe /c " & a)这句没有,如果我不修改的话,我们会发现,当打开自己要运行的程序的时候,会看到多了一个黑色的cmd命令窗口,所以我改为了x = b.run("cmd.exe /c " & a,0),屏蔽了cmd命令窗口,打开任务管理器,可以看到cmd.exe进程,可能大家不明白加了个0是什么一回事,在这里我来告诉大伙吧,编程序的人一般都知道,1代表真,0代表假,这样再看 ("cmd.exe /c " & a,0)这句,cmd.exe进程不显示在屏幕上,也就是那个cmd命令窗口,如果改为("cmd.exe /c " & a,1)的话,就跟("cmd.exe /c " & a)结果一样了,为了让代码简洁,所以我就写成了("cmd.exe /c " & a),同时我也不用 dim a 什么的,严格来说 定义一个变量,有dim语句的,我还是那句话,程序代码越简洁越好。 其实版主后面定义了一个变量obj,我也是为了简洁,所以定义了变量b,好了,下面是我再次修改后的代码,我把它公布出来,大家有兴趣的话,可以测试一下: a = InputBox("请输入你要运行的程序:") If MsgBox("你将要运行的是:" & a & "吗?", vbOKCancel + vbQuestion) = vbOK Then Cancel = 0 Set b = CreateObject("wscript.shell") x = b.run("cmd.exe /c " & a,0) Else Cancel = 1 End If 说到这里,版主知道我为什么跟你讨论脚本了吧,其实说到最后,我已经把一个程序的核心代码写出来了,如果把这段代码用 Visual Basic 6.0编译的话,在按钮里面加进去就可以了: 整段代码如下: Private Sub Command1_Click() a = InputBox("请输入你要运行的程序:") If MsgBox("你将要运行的是:" & a & "吗?", vbOKCancel + vbQuestion) = vbOK Then Cancel = 0 Set b = CreateObject("wscript.shell") x = b.run("cmd.exe /c " & a, 0) Else Cancel = 1 End If End Sub 大家发现没有,用VB编译成 exe文件的代码就是这个,如果用vbs文件编写的话,就是我上面所公布的那段代码,运行结果都一样的,大家的电脑里面如果没安装 Microsoft Visual Basic 6.0 中文版或者是Microsoft Visual Basic 6.0 英文版的话,编写vbs脚本文件就可以了。 有一点大家要明白,如果VB编译成 exe格式文件的话,别人是看不到里面的代码,因此不能修改,如果是vbs格式文件的话,任何人都可以修改的。 最后,我再次感谢版主的帮忙,让我完成了这段代码的修改;同时我还要感谢一位作者,怎么说呢,以前我看到过一篇文章,文章标题是:《看黑客怎么编写强力蓝屏炸弹》,作者在里面给出了一段代码关于重新启动计算机的,我引用其中一部分给大家看下: [引用] 那么在XP里自动关机是怎么回事呢?这个就是一个命令就能搞定的(shutdown /r /t 2),就是说,重新启动计算机的倒计时是2秒,这样中招的人就没有办法停止我们的shutdown了,其实到这里就可以算是一个有趣的恶作剧了。实现代码如下: Private Sub Timer3_Timer() Shell ("cmd.exe /c shutdown /r /t 2") ‘调用cmd 然后在cmd里输入shutdown /r /t 2就是说设倒计时时间限制为2秒 End Sub [/引用] 这句 Shell ("cmd.exe /c shutdown /r /t 2")提醒了我使用 参数 /c 的,好了,就说到这里了,大家有什么建议的话,可以一起讨论讨论,呵呵。 |
B2层 发表时间: 07-12-05 23:41 |
![]() | 回复: jhkdiy [jhkdiy] ![]() |
登录 |
呵呵,现在很少有像你一样勤奋的人了,加油吧! |
B3层 发表时间: 07-12-09 18:05 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号