Andromo - Start Making Apps - Free Signup

Announcement

Collapse

New Forum Software

If you're here, you've found the new home for our forums. There will be some bugs to iron out, so thanks for your patience...
See more
See less

Reading the Registry

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Reading the Registry

    Hi,

    I have a problem with my old code snippet, where I try to figure out
    all installed versions of a certain software. Each version is listed in the registry
    as an own key, e.g.

    \\SOFTWARE\\Company\\Company_Software\\1.0
    \\SOFTWARE\\Company\\Company_Software\\1.1
    \\SOFTWARE\\Company\\Company_Software\\2.0
    \\SOFTWARE\\Company\\Company_Software\\3.0

    Each of these keys contains the entry "Path", containing
    the absolute path of the installation.

    So what I try is to read out those Paths and output them into
    a selection box, so that the user can choose the correct
    path for the running setup.


    Code:
    	-- 32 BIT REGISTRY
    	-- Check if there is a software already installed
    	subKey = "\\SOFTWARE\\Company\\Company_Software\\";
    	
    		
    	if (Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, subKey)) then	
    		-- get all version keys
    		versNames = Registry.GetKeyNames(HKEY_LOCAL_MACHINE, subKey);
    		Table.Sort(versNames, nil)
    		
    		Dialog.Message("TEST", subKey, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON2);
    				
    		for x,y in versNames do
    		
    			-- create new subKey with version number
    			versionKey = String.Concat(String.Concat(subKey, "\\"), y);
    			
    			-- read the path
    			regPath = Registry.GetValue(HKEY_LOCAL_MACHINE, versionKey, "Path", false);
    			
    			
    			
    			if (regPath == "") then
    			else
    				-- put path into list box
    				DlgListBox.AddItem(CTRL_LIST_BOX, regPath);
    			end
    				
    		end
    	
    	else
    		-- No REG KEYs found, keep continueing with next dialog
    		Screen.Next();
    	end
    The code has worked so far, but today, when running the setup I got the error:
    On Preload, Line50: attempt to call table value
    .

    Any ideas what is wrong with my code?

    Bests,
    Last edited by AutoPlayUser; 10-10-2011, 04:00 AM.

  • #2
    Seems, that some former update changed the LUA behavior.
    After replacing:
    for x,y in pairs(versNames) do

    it works....

    Comment

    Working...
    X