FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Idioma del SO
Posts: 1446
Joined: Mon Oct 10, 2005 02:38 PM
Idioma del SO
Posted: Thu Dec 02, 2010 05:57 PM

Hola a todos,

C贸mo puedo saber el idioma del SO?

Existe una funci贸n para saber el idioma en el que est谩 el sistema operativo?

Gracias.

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Posts: 1446
Joined: Mon Oct 10, 2005 02:38 PM
Re: Idioma del SO
Posted: Fri Dec 03, 2010 07:05 PM
FiveWiDi wrote:Hola a todos,

C贸mo puedo saber el idioma del SO?

Existe una funci贸n para saber el idioma en el que est谩 el sistema operativo?

Gracias.


脕nimo ! Que la pregunta es muy sencilla.

驴Existe una funci贸n para saber en que idioma est谩 instalado Windows?

|_| Si
|_| No
|_| No se.

Gracias y feliz fin de semana.

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: Idioma del SO
Posted: Fri Dec 03, 2010 07:43 PM
FiveWiDi wrote:脕nimo ! Que la pregunta es muy sencilla.


me uno contigo y agrego

Animo que Google existe
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: Idioma del SO
Posted: Fri Dec 03, 2010 08:01 PM
Saludos

encontre esto en google, ahora ver si se puede implementar

http://msdn.microsoft.com/en-us/library/dd318124.aspx
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: Idioma del SO
Posted: Fri Dec 03, 2010 08:38 PM
aqui esta la impementacion

Code (fw): Select all Collapse
#include "fivewin.ch"

#define MUI_LANGUAGE_ID          0x4 
#define MUI_LANGUAGE_NAME        0x8

function Main()

   local oWnd
   
   ? GetLangOS( MUI_LANGUAGE_ID )
   ? GetLangOS( MUI_LANGUAGE_NAME )
   
   
return nil

#pragma BEGINDUMP
#include <windows.h>
#include <hbapi.h>

#define MUI_LANGUAGE_NAME        0x8

LPSTR WideToAnsi( LPWSTR cWide )
{
   WORD wLen;
   LPSTR cString = NULL;

   wLen = WideCharToMultiByte( CP_ACP, 0, cWide, -1, cString, 0, NULL, NULL );
   
   if( wLen )
   {
      cString = ( char * ) hb_xgrab( wLen );
      WideCharToMultiByte( CP_ACP, 0, cWide, -1, cString, wLen, NULL, NULL );
   }
   else
   {
      cString = ( char * ) hb_xgrab( 1 );
      cString[ 0 ] = 0;
   }         

   return ( cString );
}


BOOL GetLangOS( DWORD dwFlags, 
                LONG * pulNumLanguages, 
                PWSTR pwszLanguagesBuffer, 
                LONG * pcchLanguagesBuffer ) 
{
   BOOL hr = FALSE;

   typedef BOOL ( WINAPI *LPGETSYSTEMPREFERREDUILANGUAGES )( DWORD dwFlags, 
                                                                  long * pulNumLanguages, 
                                                                  PWSTR pwszLanguagesBuffer, 
                                                                  long * pcchLanguagesBuffer );
   HINSTANCE hLib;
   LPGETSYSTEMPREFERREDUILANGUAGES pGetLangOS;
   
   hLib = LoadLibrary( "kernel32.dll" );
   if ( hLib )
   {
       pGetLangOS = (LPGETSYSTEMPREFERREDUILANGUAGES) GetProcAddress( hLib, "GetSystemPreferredUILanguages" );
       hr = pGetLangOS( dwFlags, 
                  pulNumLanguages, 
                  pwszLanguagesBuffer, 
                  pcchLanguagesBuffer );
       FreeLibrary( hLib );
   }
   return hr;
}
   

HB_FUNC( GETLANGOS )
{
   long pulNumLanguages,  pcchLanguagesBuffer;
   WCHAR * pwszLanguagesBuffer = hb_xgrab( 256 );
   DWORD dwFlags = hb_parnl( 1 );
   char * result;
   
   if( GetLangOS( dwFlags, 
                  &pulNumLanguages, 
                  pwszLanguagesBuffer, 
                  &pcchLanguagesBuffer ) ){
              
      result = WideToAnsi( pwszLanguagesBuffer );
      hb_retclen( result, pcchLanguagesBuffer );
      hb_xfree( result ); 
      hb_xfree( pwszLanguagesBuffer ); 
   } else 
      hb_retc( "" );
    
}


#pragma ENDDUMP
Posts: 1446
Joined: Mon Oct 10, 2005 02:38 PM
Re: Idioma del SO
Posted: Fri Dec 03, 2010 10:19 PM
Daniel Garcia-Gil wrote:
FiveWiDi wrote:脕nimo ! Que la pregunta es muy sencilla.


me uno contigo y agrego

Animo que Google existe


ja, ja, ja, ja

Muchas gracias Daniel, tienes toda la raz贸n.

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Posts: 1446
Joined: Mon Oct 10, 2005 02:38 PM
Re: Idioma del SO
Posted: Fri Dec 03, 2010 10:36 PM
Daniel Garcia-Gil wrote:aqui esta la impementacion

Code (fw): Select all Collapse
...聽 聽} else 
聽 聽 聽 hb_retc( "" );
聽 聽 
}


#pragma ENDDUMP


Daniel,

no me funciona el c莽odigo que has posteado.
Estoy probandolo en un Windows XP S.P.3

Me revienta la aplicacion con un error de Windows.

Gracias.

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: Idioma del SO
Posted: Fri Dec 03, 2010 10:39 PM

FiveWidi

podemos ir a algun chat? (msn, gmail)

Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: Idioma del SO
Posted: Fri Dec 03, 2010 10:41 PM
Saludos

tomada desde http://msdn.microsoft.com/en-us/library/dd318124.aspx

Requirements

Minimum supported client

Windows Vista
Minimum supported server

Windows Server 2008
Header

Winnls.h (include Windows.h)
Library

Kernel32.lib
DLL

Kernel32.dll
Posts: 1446
Joined: Mon Oct 10, 2005 02:38 PM
Re: Idioma del SO
Posted: Fri Dec 03, 2010 10:58 PM
Daniel Garcia-Gil wrote:Saludos

tomada desde http://msdn.microsoft.com/en-us/library/dd318124.aspx

Requirements

Minimum supported client

Windows Vista
Minimum supported server

Windows Server 2008
Header

Winnls.h (include Windows.h)
Library

Kernel32.lib
DLL

Kernel32.dll


Gracias Daniel.

Ya veo: estoy anticuado.

Lo siento, no puedo conectarme a ningun chat; nunca los he usado (si ya s茅 soy raro). Adem谩s me voy a dormir, me conviene mucho.

Gracias de nuevo.

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Continue the discussion