private void loadIMESetting()...{ Microsoft.Win32.RegistryKey regPreload=Microsoft.Win32.Registry.CurrentUser; regPreload=regPreload.OpenSubKey(@"Keyboard Layout/Preload"); if(regPreload==null)...{ return; } string[] saNames=regPreload.GetValueNames(); foreach(string str in saNames)...{ string imeCode=regPreload.GetValue(str).ToString(); this.listBox1.Items.Add( string.Format("{0}:[{1}]:{2}", str, imeCode, getNameOfIME(imeCode) ) ); } } private String getNameOfIME(string code)...{ Microsoft.Win32.RegistryKey regIME=Microsoft.Win32.Registry.LocalMachine; System.Text.StringBuilder sb=new System.Text.StringBuilder(); sb.Append(@"System/CurrentControlSet/Control/Keyboard Layouts"); sb.Append(code.ToUpper()); System.Diagnostics.Trace.WriteLine("sb.ToString()="+sb.ToString()); regIME=regIME.OpenSubKey(sb.ToString()); return regIME.GetValue("Layout Text").ToString(); }