Video Screencast Help
Search Video Help Close Back
to help

Wise Installation Builder 7 - 64-bit Registry Script Actions

Created: 24 Jun 2009 | Updated: 14 Aug 2009 | 8 comments
evansg98's picture
0 0 Votes
Login to vote

Attached is a zip file that contains several user defined script actions to perform various registry functions in either the 32-bit (WOW6432Node) or 64-bit registries on 64-bit Windows.

The three user defined actions below are plug-in replacements for the built-in script actions, but add the ability to access the 64-bit registry. They do this by using VBScript and WMI calls. Note that the dialog lacks the nice tree style regkey selector of the built-in actions, and can only address a single key/value.

  • UDA Get Registry key.wse retrieves a registry key from the 32-bit (WOW) or 64-bit registry.
  • UDA Edit Registry key.wse modifies a registry key in the 32-bit (WOW) 64-bit registry.
  • UDA Enumerate Registry Key.wse enumerates the subkeys of the given key in the 32-bit (WOW) or 64-bit registry.
     

The following scripts build upon the scripts above to perform some AutoCAD specific registry functions.

  • UDA Enumerate Acads.wse enumerates all flavors of the selected version of AutoCAD. For example if you want to enumerate all flavors of AutoCAD version 2008 installed on a machine, it will find, AutoCAD, AutoCAD Map, and AutoCAD Civil 3D, if they are installed.
  • UDA Enumerate Acads1.wse is the same as above except that it allows you to select multiple versions of AutoCAD to enumerate.
  • UDA Enumerate AutoCAD Profiles.wse finds all the user profiles for a given AutoCAD.

I hope these prove useful to others.

Sincerely,

Gene Evans
Woolpert, Inc.

Comments 8 CommentsJump to latest comment

amilani's picture

Hi,

I changed the UDA Registry* scripts so that they use %WISE% so they will work if you put them in the normal Actions folder.

I also had to fix the UDA Enumerate Registry Keys.wse by adding underscores before REGROOT for the dialog (compare it to the Get Registry Key script) and I think I fixed some other things that I forgot about.

This stuff work for me under Vista Ultimate 64-bit and XP SP3 32-bit; however, these are not warranted in any way.

Albert

AttachmentSize
Action64bitRegFixes.zip 10.67 KB
+1
Login to vote
Rix's picture

Hi,

I had problems using the Multi String option. It said "Type mismatch occurred". I found out that the SetMultiStringValue Method, which is being used inside the UDA VBScript, expects an array of string. So I casted the strValue to Array(strValue) and the problem was solved.

I posted the modified UDA package, so you can use it, if you have the same problem.

 

Regards

Rix

AttachmentSize
Action64bitRegFixes2.zip 10.58 KB
0
Login to vote
Carthalion's picture

This is way over my head.  I have been using Wise Install Builder for years, but I never quite got making it work on 32 bit & 64 bit.

Can anybody help?

0
Login to vote
DingPression's picture

And if so, how? Are there directions for how to use this that are missing from the zip file?

If I compile the Wise script to an exe, all it does for me is open a Wise dialog: Get Registry Key Value.

I'm struggling to try to figure out how I can use Wise Package Studio to get registry values on a 64-bit PC and had hoped this would help. Thanks.

0
Login to vote
No More Food's picture

Post Removed.  Needs Some Additional Testing on Windows XP x64.

0
Login to vote
Rix's picture

To use the UDAs above just unpack the files from the zip file to your "WiseScript Package Editor\Actions" folder. Restart your WiseScript Package Editor and you should be able to call the new functions starting with the token "UDA".

Make sure you are using WiseScript Package Editor (part of Wise Installation Studio 7) or above. These UDAs won't work with Wise Installation System 9 because it has no support for VBScript.

0
Login to vote
DingPression's picture

Can't get this to work and am wondering if I'm doing something wrong. I'm using WiseScript Package Editor (part of Wise Package Studio 8) on a 64-bit Windows XP box.

The package I'm creating needs to differentiate between 64-bit and 32-bit PCs, and if 64-bit is found, edit the registry accordingly in the "Active Setup" area. In my initial testing, the reg edits were being created under the Wow6432Node key (HKLM\SOFTWARE\Wow6432Node\Microsoft\Active Setup\Installed Components).

I really want the reg edits to go to HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components.

I added the code for the UDA, but the reg edits still get written to the Wow6432Node key. Any advice?

I've copied the UDA Wise script and VBScript to the appropriate folder on my PC. Here's the Wise Script code I'm using:

item: Get System Information
  Variable=X64
  Flags=00011000
end
item: If/While Statement
  Variable=X64
  Value=1
end
item: Custom Script Item
  Filename=UDA Edit Registry Key Value.wse
  Variable Name1=REGVALTYPE
  Variable Value1=B
  Variable Name2=_REGVALTYPE
  Variable Value2=REG_SZ
  Variable Name3=REGVALNAME
  Variable Value3=StubPath
  Variable Name4=BIT
  Variable Value4=64-bit
  Variable Name5=_REGROOT
  Variable Value5=HKEY_LOCAL_MACHINE
  Variable Name6=REGROOT
  Variable Value6=C
  Variable Name7=OPERATION
  Variable Value7=A
  Variable Name8=REGKEY
  Variable Value8=SOFTWARE\Microsoft\Active Setup\Installed Components\TFS_SearchPlugin
  Variable Name9=VALUE
  Variable Value9=%DOCS%\TFS_SearchPlugin\PerUserFileCopy.exe
  Variable Name10=REGSEARCHTYPE
  Variable Value10=A
end
item: Custom Script Item
  Filename=UDA Edit Registry Key Value.wse
  Variable Name1=REGVALTYPE
  Variable Value1=B
  Variable Name2=_REGVALTYPE
  Variable Value2=REG_SZ
  Variable Name3=REGVALNAME
  Variable Value3=Version
  Variable Name4=BIT
  Variable Value4=64-bit
  Variable Name5=_REGROOT
  Variable Value5=HKEY_LOCAL_MACHINE
  Variable Name6=REGROOT
  Variable Value6=C
  Variable Name7=OPERATION
  Variable Value7=A
  Variable Name8=REGKEY
  Variable Value8=SOFTWARE\Microsoft\Active Setup\Installed Components\TFS_SearchPlugin
  Variable Name9=VALUE
  Variable Value9=1
  Variable Name10=REGSEARCHTYPE
  Variable Value10=A
end
item: Remark
end
item: Custom Script Item
  Filename=UDA Edit Registry Key Value.wse
  Variable Name1=REGVALTYPE
  Variable Value1=B
  Variable Name2=REGVALNAME
  Variable Value2=StubPath
  Variable Name3=_REGVALTYPE
  Variable Value3=REG_SZ
  Variable Name4=BIT
  Variable Value4=64-bit
  Variable Name5=REGROOT
  Variable Value5=C
  Variable Name6=_REGROOT
  Variable Value6=HKEY_LOCAL_MACHINE
  Variable Name7=REGKEY
  Variable Value7=SOFTWARE\Microsoft\Active Setup\Installed Components\TFS_SearchPlugin_RegEdit
  Variable Name8=OPERATION
  Variable Value8=A
  Variable Name9=REGSEARCHTYPE
  Variable Value9=A
  Variable Name10=VALUE
  Variable Value10=%DOCS%\TFS_SearchPlugin\TFS_regedit.exe
end
item: Custom Script Item
  Filename=UDA Edit Registry Key Value.wse
  Variable Name1=REGVALTYPE
  Variable Value1=B
  Variable Name2=REGVALNAME
  Variable Value2=Version
  Variable Name3=_REGVALTYPE
  Variable Value3=REG_SZ
  Variable Name4=BIT
  Variable Value4=64-bit
  Variable Name5=REGROOT
  Variable Value5=C
  Variable Name6=_REGROOT
  Variable Value6=HKEY_LOCAL_MACHINE
  Variable Name7=REGKEY
  Variable Value7=SOFTWARE\Microsoft\Active Setup\Installed Components\TFS_SearchPlugin_RegEdit
  Variable Name8=OPERATION
  Variable Value8=A
  Variable Name9=REGSEARCHTYPE
  Variable Value9=A
  Variable Name10=VALUE
  Variable Value10=1
end
item: Else Statement
end
item: Remark
end
item: Remark
  Text=otherwwise use x86 Active Setup solution
end
 

0
Login to vote
degreentx's picture

I needed this functionality in Win7-64 and it worked great.

Thanks evansg98!

0
Login to vote