Solved

Run file

Posted on 2008-11-01
5
214 Views
Last Modified: 2010-04-24
vbs code that do the following.

1. check whether any data is received by lan /network or not
2. if not data received for last 10 mintues, terminate specified process.
3. run specified program
4. loop repeats after every 15 minutes.
0
Comment
Question by:ankur3020
  • 3
5 Comments
 
LVL 32

Accepted Solution

by:
Robberbaron (robr) earned 500 total points
ID: 22875644
schedule this script to run every 15min

save file as checker.vbs or similar

Wscript.Timeout = 650  'seconds
 

Wscript.Echo "Script Start"
 

'get traffic in 10min

GetTraffic "localhost", bytesStart

Wscript.Sleep 600000   '10 minutes=600000 millisecs

GetTraffic "localhost", bytesEnd
 

If bytesEnd = bytesStart Then

  'no traffic

  KillProcess  "MyAppName"

  'start application

  

  Set WshShell = WScript.CreateObject("WScript.Shell")

  WshShell.Run "MyNextApp.exe"
 

End if
 

WScript.quit
 

Sub KillProcess(strComputername,processName)

	strComputer = strComputername  '"."

	Set objWMIService = GetObject("winmgmts:" _

	    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

	Set colProcessList = objWMIService.ExecQuery _

	    ("SELECT * FROM Win32_Process WHERE Name = '" & processName & "'")

	For Each objProcess in colProcessList

	    objProcess.Terminate()

	Next

End Sub
 

Sub GetTraffic(strComputername,bytesTotal)

  'List the network interfaces on the computer. These can be used to find the packets and network traffic

  Dim oSvc

  set oSvc = GetObject("winmgmts:\\" & strComputername & "\root\cimv2")

  wqlQuery = "Select * from Win32_PerfRawData_Tcpip_NetworkInterface"

  bytesTotal=0

  for each oData in oSvc.ExecQuery(wqlQuery)

    

    for each oProperty in oData.Properties_
 

      if oProperty.Name = "BytesReceivedPersec" then

        

        bytesTotal = oProperty.Value
 

      end if      

    next

  next
 

End Sub

Open in new window

0
 

Author Comment

by:ankur3020
ID: 22876818
i ran the code and found one error. plsrectify it. the code i used is attached for ur ref.
i got error in line 12, killprocess,  error is invalid property /argument.
 pls tell me what is meaning of timeout, and for how long script will run.

i have replaced the process name with my actual process. one thing i want to know that r u comparing value or data received at different times or data sent.
Wscript.Timeout = 650  'seconds

 

Wscript.Echo "Script Start"

 

'get traffic in 10min

GetTraffic "localhost", bytesStart

Wscript.Sleep 600   '10 minutes=600000 millisecs

GetTraffic "localhost", bytesEnd

 

If bytesEnd = bytesStart Then

  'no traffic

  KillProcess  "BBClient.exe"

  

  'start application

  

  Set WshShell = WScript.CreateObject("WScript.Shell")

  WshShell.Run "BBClient.exe"

 

End if

 

WScript.quit

 

Sub KillProcess(strComputername,processName)

	strComputer = strComputername  '"."

	Set objWMIService = GetObject("winmgmts:" _

	    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

	Set colProcessList = objWMIService.ExecQuery _

	    ("SELECT * FROM Win32_Process WHERE Name = '" & processName & "'")

	For Each objProcess in colProcessList

	    objProcess.Terminate()

	Next

End Sub

 

Sub GetTraffic(strComputername,bytesTotal)

  'List the network interfaces on the computer. These can be used to find the packets and network traffic

  Dim oSvc

  set oSvc = GetObject("winmgmts:\\" & strComputername & "\root\cimv2")

  wqlQuery = "Select * from Win32_PerfRawData_Tcpip_NetworkInterface"

  bytesTotal=0

  for each oData in oSvc.ExecQuery(wqlQuery)

    

    for Each oProperty in oData.Properties_

 

      if oProperty.Name = "BytesReceivedPersec" then

        

        bytesTotal = oProperty.Value

 

      end if      

    next

  next

 

End Sub

Open in new window

0
 

Author Comment

by:ankur3020
ID: 22877989
i made the required changes and it is working fine now.thanks
0
 

Author Closing Comment

by:ankur3020
ID: 31512445
thks
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Welcome back!  My apologies for taking so long to write part two of this series; it's been a long time coming!  As I promised in Part 1, this article will focus on how to locate those elusive AD properties that you are searching for.  Why is this us…
Not long ago I saw a question in the VB Script forum that I thought would not take much time. You can read that question (Question ID  (http://www.experts-exchange.com/Programming/Languages/Visual_Basic/VB_Script/Q_28455246.html)28455246) Here (http…
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
This video discusses moving either the default database or any database to a new volume.

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now