Solved

repeat script

Posted on 2008-10-09
12
554 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
Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
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

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Can we place a tooltip on the actual vb6 form 5 48
Chocolatey under PowerShell is not working properly 3 68
Passing Credentials into a command line 13 38
Clear Filter 8 59
Deploying a Microsoft Access application in a Citrix environment is not difficult but takes a few steps. However, Citrix system people are often of little help, as they typically know next to nothing about Access. The script provided here will take …
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …
In a recent question (https://www.experts-exchange.com/questions/29004105/Run-AutoHotkey-script-directly-from-Notepad.html) here at Experts Exchange, a member asked how to run an AutoHotkey script (.AHK) directly from Notepad++ (aka NPP). This video…

856 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