Solved

check for registry entry then run VBS

Posted on 2008-10-02
4
280 Views
Last Modified: 2012-06-27
I want to create an .exe file that, on install creates a registry entry and adds an icon to the desktop.  When the user clicks on the icon it runs a VBS file that checks to see if that entry is there before running another VBS file.  
0
Comment
Question by:Dier02
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
4 Comments
 
LVL 5

Assisted Solution

by:si_shamil
si_shamil earned 450 total points
ID: 22623169
Try this function:

'==================================================================================
 
' Function Name : regKeyExists(pHive, byVal pKey)
 
' Return value  : Boolean (True or False)
 
' Author        : Alex Simenduev, http://www.planetit.ws
' Date          : 16/07/2008
 
' Description   : Check if specified registry key in specified HIVE exists
 
'==================================================================================
 
Function regKeyExists(pHive, byVal pKey) : regKeyExists = False
 
	Dim objReg, strSubkey, arrSubkeys, strKey, arrSplit, intReturn
 
	Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
 
	
 
	' Remove ending backslash (\) if exists
 
	If Right(pKey, 1) = "\" Then
 
		pKey = Left(pKey, Len(pkey) - 1)
 
	End If
 
	
 
	arrSplit = Split(pkey, "\")
 
	strKey = arrSplit(Ubound(arrSplit))
 
	pKey = Left(pKey, Len(pkey) - Len(strKey) - 1)
 
	
 
	intReturn = objReg.EnumKey(pHive, pKey, arrSubkeys)
 
	If intReturn <> 0 Then Exit Function
 
	If Not isArray(arrSubkeys) Then Exit Function
 
	
 
	For Each strSubkey in arrSubkeys
 
		If UCase(strSubkey) = UCase(strKey) Then 
 
			regKeyExists = True
 
			Exit Function
 
		End If
 
	Next
 
End Function

Open in new window

0
 
LVL 5

Accepted Solution

by:
si_shamil earned 450 total points
ID: 22623180
Ups, the snippet has added an extra lines, ignore it, use this:

'==================================================================================
' Function Name    : regKeyExists(pHive, byVal pKey)
' Return value    : Boolean (True or False)
' Author            : Alex Simenduev, Oasis Capital Management
' Date            : 16/07/2008
' Description        : Check if specified registry key in specified HIVE exists
'==================================================================================
Function regKeyExists(pHive, byVal pKey) : regKeyExists = False
    Dim objReg, strSubkey, arrSubkeys, strKey, arrSplit, intReturn
    Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
     
    ' Remove ending backslash (\) if exists
    If Right(pKey, 1) = "\" Then
        pKey = Left(pKey, Len(pkey) - 1)
    End If
     
    arrSplit = Split(pkey, "\")
    strKey = arrSplit(Ubound(arrSplit))
    pKey = Left(pKey, Len(pkey) - Len(strKey) - 1)
     
    intReturn = objReg.EnumKey(pHive, pKey, arrSubkeys)
    If intReturn <> 0 Then Exit Function
    If Not isArray(arrSubkeys) Then Exit Function
     
    For Each strSubkey in arrSubkeys
        If UCase(strSubkey) = UCase(strKey) Then  
            regKeyExists = True
            Exit Function
        End If
    Next
End Function
0
 

Author Comment

by:Dier02
ID: 22623206
I want to create an .exe file that, on install creates a registry entry and adds an icon to the desktop.
0
 
LVL 22

Assisted Solution

by:Paka
Paka earned 50 total points
ID: 22624368
To do these, you will need a VBS packager (such as PrimalScript).  PrimalScript will let you package your vbs as an EXE.  PrimalScript has a 30 evaluation program that will let you develop the EXE you need.

To work with the registry in VBS use this link:
http://www.activexperts.com/activmonitor/windowsmanagement/scripts/operatingsystem/registry/

How to create a desktop shortcut:
http://www.computerperformance.co.uk/ezine/ezine119.htm



0

Featured Post

On Demand Webinar - Networking for the Cloud Era

This webinar discusses:
-Common barriers companies experience when moving to the cloud
-How SD-WAN changes the way we look at networks
-Best practices customers should employ moving forward with cloud migration
-What happens behind the scenes of SteelConnect’s one-click button

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…
This is pretty cool.  The purpose of this VB Script is to help you document where JAR (Java ARchive) files and specifically java class files are located so that you can address issues seen with a client or that you can speak intelligently with a dev…
A short tutorial showing how to set up an email signature in Outlook on the Web (previously known as OWA). For free email signatures designs, visit https://www.mail-signatures.com/articles/signature-templates/?sts=6651 If you want to manage em…
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

738 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