小知识:
每次使用脚本,都必须敲入CSCRIPT和脚本的后缀名,很麻烦。这是因为系统默认的执行引擎是WSCRIPT,可以将它改成CSCRIPT。另外一个让人不爽的是脚本执行后总要显示微软的说明,好像脚本不是我们写的一样。不过你可以通过在命令提示符下敲入下面的命令来解决这个问题:
cscript //nologo //h:cscript //s
这样你以后再运行这些脚本的时候就不用在敲入CSCRIPT了,也不用在写入.vbs的后缀名了,就上面的例子来说,你可以这样用:
monitor 192.168.1.2 user password C:\1.txt
解释:
1)前面的那几行,大概就是为了显示帮助和处理我们在后面输入的参数。应用到了WScript.Arguments这个对象,利用它我们可以来获取并处理脚本的参数。
2)那个死循环是为了让我们一直监视他(她),每当他开一个程序,我们就得到一个新的实例,我们就可以知道他更多的信息,哈哈,够狠吧。这样你也就知道了,当我们这个脚本运行后,只有通过我们人为中止才能中断监视,人为中止的方法大家可以用CTRL+C来完成,也可以用各种野蛮的方法来中止。
3)在代码中出现的另外一个核心对象就是FileSystemObject,应该是大家的老朋友了吧,我这里就不再做解释了,我们在这里应用它主要是为了将结果同时保存到一个文件中,我们利用它来创建或打开一个文件,将信息追加进去。
4)至于那个NOW,虽然体积很小,但是却正是它给我们提供了时间这个重要的信息。
5)如果你想要监视的是自己的计算机而不是远程的计算机(据我所知,这个应用还是很广的)。那么请将计算机名的参数写为一个小点,用户名和密码留为空。如下所示:
monitor . "" "" C:\1.txt
2.任务五:利用脚本给对方开放共享
有了任务四的基础,这次我们就先看代码吧:
Set colArgs = WScript.Arguments
If WScript.arguments.count < 5 then
WScript.Echo "USAGE:" & vbCrLf & " Rshare Computer User Password SharePath ShareName"
WScript.quit
End If
strComputer = wscript.arguments(0)
strUser = wscript.arguments(1)
strPwd = wscript.arguments(2)
strPath = wscript.arguments(3)
strShareName = wscript.arguments(4)
intMaximumAllowed = 1
strDescription = "Temporary share"
Const SHARED_FOLDER = 0
set olct=createobject("wbemscripting.swbemlocator")
set wbemServices=olct.connectserver(strComputer,"root\cimv2",strUser,strPwd)
Set objSWbemObject = wbemServices.Get("Win32_Share")
intReturnValue = objSWbemObject.Create(strPath, _
strShareName, _
SHARED_FOLDER, _
intMaximumAllowed, _
strDescription)
if(intReturnValue = 0) Then
WScript.Echo "The share have been created successfully"
End If
解说:
1)我们可以看出来前面的那几行是为显示帮助和处理输入参数而存在的。
2)紧接着设置了几个变量,为以后做参数用的。这里我们可以先不理会它。
3)连接到主机的WMI,然后就是查询。前面已经说的很详细了。
4)这次得到实例集后,我们用了它的一个方法,也就是这个方法让共享成为了可能,联系到第二部分的内容,我们不难知道第一个参数表示要共享的路径和文件名,第二个参数表示共享名,第三个参数为0就可以了,第四个参数是指可以连接的人数,第五个参数是共享描述了,而我们只关心前面的两个参数。如果手头有MSDN那就好办了,到MSDN中可以查到该方法的更详细的内容。
5)这次我们根据第四步的返回值来得到共享是否成功,并给出提示。不同的返回值代表不同的意义。这个信息在MSDN中可以很清楚地查到。比如0代表成功返回,2代表拒绝访问,9代表用户名错误,25代表主机名没有找到等等。
6)这次我们要注意的是,用这个脚本来实现远程文件共享,要求远程存在这个文件,否则无法共享。当然你也可以利用教本创建自己的文件夹,很容易的,自己创建吧。
7)如上脚本创建后的共享是完全共享。就是可以删除修改文件的。
8)用法举例:share netp net swswsw C:\dodo marsh
好了,到现在为止,大家应该对这位朋友有些了解了,我的介绍任务也就告一段落了,如果大家想进一步认识它,那就主要靠大家的主动性了。这次我们主要通过WMIC和脚本来认识它,下次我将带领大家通过真正的程序代码来认识它,让它也有个象Windows一样漂亮的脸蛋。今天我所提到的估计只能算是WMI的万分之一,都算不上是冰山一角。剩余的要靠自己来发挥了。如果你肯利用你的所学,那么奇迹就会产生
昨天,要找一个以前写的vbs脚本,可是当时写的就随便,名起的也糊涂,就搜索了一下,咦!~~QQ下怎么还有vbscript.dll和vbscript.vbs这么两个文件来着???[作者:临汾市外事旅游局薛靖澜,转载请注明出处]我实在太奇怪了。复制出来,打开看看。当然是先看脚本啦!
我晕倒,居然是真正的vbs脚本文件,哦,几个函数似乎在脚本里没有定义,不过很正常,现在好多软件都是这么干的。挨个往下看,Window_OnSize(cx,cy)大概是拉伸面板时调用的吧,Window.LockPaint() 锁定绘图,当然了还有onClick、onMouseMove、onMouseLeave等等都是响应事件的函数,Window.ExeCommand 1,2这是干什么的,网上搜搜,Window.ExeCommand n,m是QQ内部的一些命令,n、m值如下的时候代表不同的操作:1,1 皮肤管理器;1,2 最小化;1,3 close;4,1 ChatRoom;4,2 发送手机短信;4,3 search;4,4 腾讯浏览器;4,5 Game;4,6 信息管理器;4,7 color;4,8 个人帐户;4,9 面板选择;4,10 Mail相关;50,1 显示信息;60,2 个人设置;7,1 Mail;15,1 host
呵呵,太好了,让我修改它一下看看,有响应没有。得了,捡不如撞,就在Window_OnSize(cx,cy)函数的响应后添加一个msgbox “你确定要改变吗?”退出qq,再次进入,拖动边框,呵呵,出来了。好了,再加一句:createobject(“wscript.shell”).run “notepad.exe”,呵呵,退出qq,再次进入,拖动边框,咦?!没有反应?百度一下,哦,QQ自带的vbscript.dll文件不支持外部调用,要外部调用,必须用破解的vbscript.dll文件覆盖原来的?太麻烦了,要不用系统自带的覆盖行不行?试验一下,呵呵,可以!赶紧试试其他的按钮啊,功能啊什么的有没有变化?似乎没有,那!?QQ自己带的这个vbscript.dll到底干了些什么工作?还是有什么我没有发现?!不管它,我们接着来,比如说,我的QQ上的那个收发邮件的那个按钮我从来也不用,放着也是闲着,要不……,把它换成我常用的记事本程序,可以方便我在聊天的时候粘贴从网上复制下的好文章,ok,让我搜索一下mail,找到Sub MailButton_onClick()函数,在函数代码Window.ExeCommand 7,1前加一个小小的 ‘ ,然后加入一行代码:
createobject(“wscript.shell”).run “notepad.exe”,退出,重新进入,单击“收发邮件”按钮,呵呵记事本打开了。可是上面怎么老是显示收发邮件啊,怎么能改一下呢?百度一下,ok,图表啊、说明啊,都在Config.xml文件中放着,坏了,xml我不是很熟悉,不过没关系,只要我认识汉字就可以了,还是拿记事本打开看看,[作者:临汾市外事旅游局薛靖澜,转载请注明出处]单击搜索,填入收发邮件,找到,修改为“记事本”,保存,退出QQ,再次进入,呵呵,鼠标移到那个图标上,显示“记事本”。完成、
呵呵,如果愿意甚至可以把常用的软件的快捷方式都放在QQ皮肤上,把QQ打造成一个完全个性的软件,彻底改变QQ的用处