"non-unicode programs" problem

hi,
i am developing a program which uses non-unicode character set. hence the language is not English, i should change the system setting in "Regional and Language Option" by fixing "Language for non-Unicode Programs" parameter.
how can i do this setting programmatically or via installer (msi file)?

thanks.
Hamid

Comments

  • Unicode should cover every language in the world, I think? Which would be the only point in using it...

    When writing common programs use "char" type. When writing unicode programs, use "wchar_t". Everything else is non-standard and should be avoided.
  • You are right, but my problem is out of my code. My application uses a chm file and windows help mechanism. Hence the application help is in an non-unicode language, when the system setting in not tunned for "non-unicode programs"; the help mechanism failes. In this case pressing F1 in application context doesn't lead to correct page of help, because the keyword doesn't work correctly.
  • There should be a way to do that through the registry... I am not sure though.
    [hr][size=1][leftbr].:EvolutionEngine[rightbr][leftbr].:MicroOS Operating System[rightbr][leftbr][link=http://www.brokenthorn.com]Website :: OS Development Series[rightbr][/link][/size]
  • Hello Hamid

    This is a delphi code that installs Farsi language. Go to registry editor and take look at nodes have come in the code below :

    procedure AddFarsiLNG;
    var Vreg:TRegistry;
    begin
    //Copy Files
    CopyFile('l_intl.nls','C:windowssystem32l_intl.nls',true);
    CopyFile('KBDFA.dll','C:windowssystem32KBDFA.dll',true);
    //Create Registry Values
    Vreg:=TRegistry.Create;
    with Vreg do
    begin
    try
    RootKey:=HKEY_LOCAL_MACHINE;
    OpenKey('HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlKeyboard Layouts0000429',true);
    WriteString('Layout File','KBDFA.dll');
    WriteString('Layout Text','Farsi');
    OpenKey('HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlNlsLocale',true);
    WriteString('d','1');
    OpenKey('HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlNlsLanguage',true);
    WriteString('0429','l_intl.nls');
    CloseKey;
    finally Free end;
    end;
    end;
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories