Solved

check for registry entry then run VBS

Posted on 2008-10-02
4
284 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

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

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.

Question has a verified solution.

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

I met Paul Devereux (@pdevereux) today when I responded to his tweet asking “Anybody know how to automate adding files from disk to a folder in #outlook  ?”.  I replied back and told Paul that using automation, in this case scripting, to add files t…
With User Account Control (UAC) enabled in Windows 7, one needs to open an elevated Command Prompt in order to run scripts under administrative privileges. Although the elevated Command Prompt accomplishes the task, the question How to run as script…
Monitoring a network: why having a policy is the best policy? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the enormous benefits of having a policy-based approach when monitoring medium and large networks. Software utilized in this v…
This is my first video review of Microsoft Bookings, I will be doing a part two with a bit more information, but wanted to get this out to you folks.

724 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