vb截取控制台回显的信息DOS窗口错误信息
在Windows环境下的所谓shell程序就是dos命令行程序,比如VC的CL.exe命令行编译器,JDK的javac编译器,启动java程序用的java.exe都是标准的shell程序。截获一个shell程序的输出是很有用的,比如说您可以自己编写一个IDE(集成开发环境),当用户发出编译指令时候,你可以在后台启动shell 调用编译器并截获它们的输出,对这些输出信息进行分析后在更为友好的用户界面上显示出来。为了方便起见,我们用VB作为本文的演示语言。
通常,系统启动Shell程序时缺省给定了3个I/O信道,标准输入(stdin), 标准输出stdout, 标准错误输出stderr。之所以这么区分是因为在早期的计算机系统如PDP-11的一些限制。那时没有GUI, 将输出分为stdout,stderr可以避免程序的调试信息和正常输出的信息混杂在一起。
通常, shell程序把它们的输出写入标准输出管道(stdout)、把出错信息写入标准错误管道(stderr)。缺省情况下,系统将管道的输出直接送到屏幕,这样一来我们就能看到应用程序运行结果了。
为了捕获一个标准控制台应用程序的输出,我们必须把standOutput和standError管道输出重定向到我们自定义的管道。
本站代码都经过亲测,运行无误。上面是复制的理论,所以摘下来。
常见组件的注册与反注册
access数据库中通过SQL功能导出Shell
使用VBS脚本创建FTP账号和在线开通FTP
'这是我写的一个自动创建FTP的程序,发出来供大家学习和使用,在线开通原理一样。 '无非就是要使asp有操作注册表权限,那就要将站点以admin身份运行,才能创建shell,这又是十分危险。 Dim ftpname,ftppass,webroot,disksize ftpname="testftp3" ftppass="abc123" webroot="D:\wwwroot\test" disksize= 512 * 1048576 '512MB Set WshShell = CreateObject("wscript.Shell") U1="HKEY_LOCAL_MACHINE\SOFTWARE\Cat Soft\Serv-U\Domains\1\UserList\" U2="HKEY_LOCAL_MACHINE\SOFTWARE\Cat Soft\Serv-U\Domains\1\UserSettings\" WshShell.RegWrite U1 & ftpname,"1|0" WshShell.RegWrite U2 & ftpname & "\" ,Default WshShell.RegWrite U2 & ftpname & "\Access1", webroot&"|RWAMLCDP" WshShell.RegWrite U2 & ftpname & "\DiskQuota", "1|"&disksize&"|0" WshShell.RegWrite U2 & ftpname & "\ChangePassword", "1" WshShell.RegWrite U2 & ftpname & "\HomeDir", webroot WshShell.RegWrite U2 & ftpname & "\Password", makeftpass(ftppass) WshShell.RegWrite U2 & ftpname & "\RelPaths", "1" WshShell.RegWrite U2 & ftpname & "\SpeedLimitDown", "512000" WshShell.RegWrite U2 & ftpname & "\SpeedLimitUp", "512000" WshShell.RegWrite U2 & ftpname & "\TimeOut", "600" Set WshShell=nothing WScript.Echo "OK" Function makeftpass(byval pwd) Dim rt rt= Chr(97+Int(Rnd * 26)) rt=rt & Chr(97+Int(Rnd * 26)) makeftpass= UCase(md5(rt&pwd,32)) makeftpass= rt&makeftpass End Function Function md5(byval strng,byval tp) Dim http,url url="http://www.suntw.com/demo/cmd5.asp?str=" & strng & "&t=" & tp Set http=CreateObject("MSXML2.XMLHTTP") http.open "GET",url,False http.send If http.status=200 Then md5=http.responseText Set http=Nothing End Function
弹出对话框自动点击定时自动消失
Set WshShell = CreateObject("Wscript.Shell") For i = 6 To 0 Step -1 WshShell.Popup i,5,"自设标题",4096+64+32 Next
在vbs中弹出消息共有3种:Msgbox、Popup以及Wscript.Echo,上面这种,第一个参数是消息内容,第2个是默认等几秒点确定,第三是标题,最后面的参数
vbApplicationModal 0 应用程序模式:用户必须响应消息框才能继续在当前应用程序中工作。
vbSystemModal 4096 系统模式:在用户响应消息框前,所有应用程序都被挂起。