Solved

check for registry entry then run VBS

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

Enabling OSINT in Activity Based Intelligence

Activity based intelligence (ABI) requires access to all available sources of data. Recorded Future allows analysts to observe structured data on the open, deep, and dark web.

Join & Write a Comment

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…
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
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…
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

708 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

12 Experts available now in Live!

Get 1:1 Help Now