title: Programmatically change the default code page in Windows XP? (from Delphi)
body: <p>Could anyone advise how to programmatically change the default Windows XP code page (I'm doing this from Delphi)?  (This would be the equivalent of going into Control Panel -> Regional Settings -> Language for non-Unicode applications).</p>
  
  <p>In this case, I want to switch to Chinese (PRC) and so am writing to the following registry strings:
  HKLM\SYSTEM\CurrentControlSet\Control\Nls\CodePage\
  ACP=936
  MACCP=10008
  OEMCP=936</p>
  
  <p>(Which is exactly what changing the non-Unicode codepage drop down in Control Panel does).  There must be another setting which I need to change - and I'd prefer to use a Win API call (if available) rather than writing to the registry myself.</p>
  
  <p>I've also tried setting
  HKLM\SYSTEM\CurrentControlSet\Control\Nls\Language\
  Default=0804 (Chinese PRC) to no avail.</p>
  
  <p>I don't want to change the 'locale' per se as this will also change time / date settings, separators, etc. etc.</p>
  
  <p>This is because I'm using an ANSI application that needs to render Chinese characters, and I'm writing a tool to automatically switch the system show the characters (while leaving other aspects of the UI intact).</p>
  
  <p>Thanks!</p>
  
  <p>Duncan</p>