Solved

repeat script

Posted on 2008-10-09
12
560 Views
Last Modified: 2010-08-05
what code i should add to my vbs file so that after clicking once, it automatically run the complete script after every  1 min.
0
Comment
Question by:ankur3020
  • 6
  • 6
12 Comments
 
LVL 8

Assisted Solution

by:MatthiasVance
MatthiasVance earned 50 total points
ID: 22676456
I provided some sample code, hope it helps you out!

Kind regards,

Matthias Vance
' Timed repeat.vbs
while true
	' Your code here
	WScript.Sleep 60000
loop

Open in new window

0
 

Author Comment

by:ankur3020
ID: 22676519
i tried ur , but giving syntax error. do the required changes in code attached and send back,pls

 
 
Dim oShela, valu
 
Private Function KeyExists (keyName)
	Dim bKey
		
	On Error Resume Next
 
	bKey = oShela.RegRead(keyName)
 
	If TypeName (bKey) = "Empty" Then
		KeyExists = False
	Else
		KeyExists = True
	End If
End Function
 
 
 
Set oShela = CreateObject("Wscript.Shell")
 
If keyExists("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1407") Then
	wscript.echo "Value exists"
 valu = oshela.RegRead( "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1407" )
	if value <> 1 Then 
	oshela.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1407", 0, "REG_DWORD"
			wscript.echo "The value have been changed."
	End If 
Else
	oshell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1407", 0, "REG_DWORD" 
			 
 
 
End If

Open in new window

0
 
LVL 8

Expert Comment

by:MatthiasVance
ID: 22676539
Sorry, it is while..wend. The following code should work.

Kind regards,

Matthias Vance
Dim oShela, valu
 
Private Function KeyExists (keyName)
        Dim bKey
                
        On Error Resume Next
 
        bKey = oShela.RegRead(keyName)
 
        If TypeName (bKey) = "Empty" Then
                KeyExists = False
        Else
                KeyExists = True
        End If
End Function
 
 
Set oShela = CreateObject("Wscript.Shell")
 
while true 
	If keyExists("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1407") Then
        wscript.echo "Value exists"
		value = oshela.RegRead( "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1407" )
        if value <> 1 Then 
			oshela.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1407", 0, "REG_DWORD"
			wscript.echo "The value have been changed."
        End If 
	Else
        oshell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1407", 0, "REG_DWORD" 
    End If
wend

Open in new window

0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 8

Expert Comment

by:MatthiasVance
ID: 22676549
I posted too quickly, you also need to add 'WScript.Sleep 60000' just before the 'wend'.
0
 

Author Comment

by:ankur3020
ID: 22676654
it worked.

now note in my script there are so many function running one after other then should i place this code in all functions or at the beginning and end of complete script after end statement. so that full script run

ALSO IN CASE I WANT TO STOP RUNNING SCRIPT WHAT SHOULD I DO OTHER THAN LOG OFF.
0
 
LVL 8

Accepted Solution

by:
MatthiasVance earned 50 total points
ID: 22676901
You should only place that part of your code inside it that you want to loop. No functions or subs need to be in it, and no initialization needs to be done there. Only the code that defines what the program *really* does. I attached a commented example.

Also, there are multiple ways of exiting the endless loop. One is to use 'exit do' if a certain condition is met, as you can see in the example. Or if you just want to end it, you could kill the wscript.exe process.

Kind regards,

Matthias Vance
' Methods go here
sub test()
	' test method
end sub
 
' initialization goes here
i = 0
obj = CreateObject("null")
 
' Code that should be looped should go here
do while true
	MsgBox i
	i = i + 1
	if i = 2 then
		exit do ' Exit the loop, and end the script
	end if
	WScript.Sleep 1000
loop

Open in new window

0
 

Author Comment

by:ankur3020
ID: 22679773
dear pls note the want to repeat complete script. from top to last line. i try to add while true and top and wscript sleep command at bottom followed by wend, it is giving syntax error. what should i do.
0
 
LVL 8

Expert Comment

by:MatthiasVance
ID: 22680497
I thought you got the code in my second post working? If not, please reply with a copy of your code attached, and I will correct it.

Kind regards,

Matthias Vance
0
 

Author Comment

by:ankur3020
ID: 22691995
sample code given below.  as per attached layout pls guide. i want the complete code should run in loop.from top to bottom.

i tried to make new sub at begining and trying to end it at end but this is giving error with sub that i have created in between.
dim f,d,
create object
select statement start
case 1:
code here
case 2:
declaration of variables
code for verifying different conditions using if 
sub d
code
end sub
code to add registry as per out put of if statement.
private sub declaration
if statement
end select

Open in new window

0
 
LVL 8

Expert Comment

by:MatthiasVance
ID: 22693406
Could you please post your full code instead of this sample code, because it's rather hard to see what belongs where.
Kind regards,
Matthias Vance
0
 

Author Comment

by:ankur3020
ID: 22738728
i tried and got the way to run loop as per ur guidance. thanks
0
 

Author Closing Comment

by:ankur3020
ID: 31504568
thanks
0

Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

When it comes to writing scripts for a Client/Server computing environment it is essential to consider some way of enabling the authentication functionality within a script. This sort of consideration mainly comes into the picture when we are dealin…
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…
How to Install VMware Tools in Red Hat Enterprise Linux 6.4 (RHEL 6.4) Step-by-Step Tutorial

726 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