Differences between revisions 1 and 2
Revision 1 as of 2006-12-31 21:12:13
Size: 3874
Editor: KaiJaeger
Comment:
Revision 2 as of 2006-12-31 21:15:37
Size: 3895
Editor: KaiJaeger
Comment:
Deletions are marked like this. Additions are marked like this.
Line 109: Line 109:

Author: KaiJaeger

Both, the Registry class as well as the RegistryKey class offer better support for accessing the Windows registry than the DLL calls offered in the past.

Note that the example function contains some code that can work under .NET 2.0 or better only.

{{{ Microsoft∆Win32∆Registry;⎕ML;⎕IO;subKeyRef;test9999RegKey;regKeyObj;test9999aRegKey;path;valName;buff;val;testSettings ⍝ Version 1.1 from 2006-12-22 ⋄ Kai Jaeger ⋄ APL Team Ltd

  • ⎕ML ⎕IO←1

    ⎕USING,←⊂

⍝ Create a reference to the "CURRENT_USER" part of the Windows registry using ⍝ the static method "Users" within "Microsoft.Win32.Registry": ⍝ Note the "CurrentUser" is a field, not a method: no right argument needed:

⍝ The same thing with "Test9999a" using a sligtly different technique:

⍝ "Close" does

  • test9999aRegKey.Close

⍝ To specify the default value, specify an empty vector as key name:

  • test9999RegKey.SetValue 'Here the default is saved!'

⍝ Get the default value of a Registry Key:

⍝ Create a SubKey:

⍝ Create another SubKey:

⍝ List all SubKeys:

⍝ Create data for the TestSettings subkey

  • testSettings.SetValue'Language' 'French' ⍝ String testSettings.SetValue'val_1' ¯127 ⍝ String testSettings.SetValue'val_2' ¯128 ⍝ String testSettings.SetValue'val_3' 1234.56 ⍝ String testSettings.SetValue'val_4' 0 ⍝ String testSettings.SetValue'val_5' 1 ⍝ String testSettings.SetValue'val_6' 128 ⍝ String

⍝ BUT:

  • testSettings.SetValue'val_7' 10 ⍝ DWORD testSettings.SetValue'val_8' 127 ⍝ DWORD

⍝ Request type for a string

⍝ Request type for a DWORD

⍝ Get a particular value:

  • ⎕←testSettings.GetValue⊂'Language' ⎕←1+⍎testSettings.GetValue⊂'Val_5' ⍝ Key is not case sensitive! ⎕←1+testSettings.GetValue⊂'val_6' ⍝ This is an integer

⍝ Get an unkown value with a specified default value ¯1:

  • ⎕←testSettings.GetValue'Unknown' ¯1

⍝ Again with a string as default

  • ⎕←testSettings.GetValue'Unknown' 'This key is unknown'

⍝ Get names of all keys:

⍝ ****** Available only in .NET version 2.0 and better ****** ⍝ First we will use "GetValue" which is available as a ⍝ shared method of the "Registry" class:

  • path←'HKEY_CURRENT_USER\Software\Dyadic\Dyalog APL/W 11.0' valName←'wssize' buff←System.Object

    val←Microsoft.Win32.Registry.GetValue path valName buff

⍝ ****** END .NET version 2.0 ******

⍝ Delete a particular Value

⍝ Delete tree (SubKey and all of it's values)

⍝ Deleting a non-existing things throws an exception:

⍝ Delete the top entries we've just created:

⍝ Close all references

  • (testSettings test9999aRegKey test9999RegKey).Close

⍝ End }}}

Author: KaiJaeger

RegistryInfo (last edited 2015-04-05 01:24:18 by PierreGilbert)