Compartir a través de


Función SetDefaultLayoutOrTipUserReg

Establece la distribución del teclado especificada o un servicio de texto como elemento de entrada predeterminado del registro de usuario.

Sintaxis

BOOL CALLBACK SetDefaultLayoutOrTipUserReg(
  _In_opt_ LPCWSTR pszUserReg,
  _In_opt_ LPCWSTR pszSystemReg,
  _In_opt_ LPCWSTR pszSoftwareReg,
  _In_     LPCWSTR psz,
  _In_     DWORD   dwFlags
);

Parámetros

pszUserReg [in, opcional]

Ruta de acceso del registro del usuario. Si este parámetro es NULL, se usa HKEY_CURRENT_USER.

pszSystemReg [in, opcional]

Ruta de acceso del registro del sistema. Si este parámetro es NULL, se usa HKEY_LOCAL_MACHINE\System.

pszSoftwareReg [in, opcional]

Ruta de acceso del registro del software. Si este parámetro es NULL, se usa HKEY_LOCAL_MACHINE\Software.

psz [in]

Cadena que representa la lista de diseño de teclado o la lista de perfiles de servicios de texto.

dwFlags [in]

Campo de bits que especifica las marcas siguientes:

Nota:

Los identificadores siguientes no se definen en un archivo de encabezado público. Debe usar el valor hexadecimal o incluir #define con los identificadores. Por ejemplo, para usar SDLOT_NOAPPLYTOCURRENTSESSION debe incluir #define SDLOT_NOAPPLYTOCURRENTSESSION 0x00000001 en el código.

Valor Significado
SDLOT_NOAPPLYTOCURRENTSESSION
0x00000001
Almacena la configuración en el registro, pero no actualiza la configuración del teclado en tiempo de ejecución de la sesión actual. Si la ruta de acceso alternativa del Registro se establece en SetDefaultLayoutOrTipUserReg, se debe establecer esta marca.
SDLOT_APPLYTOCURRENTTHREAD
0x00000002
Aplica la configuración inmediatamente en el subproceso actual.

Valor devuelto

Código devuelto Descripción
VERDADERO
La función se ha completado correctamente.
FALSO
Se ha producido un error no especificado.

Comentarios

El formato de cadena de la lista de diseño es:

<LangID 1>:<KLID 1>;[...<LangID N>:<KLID N>

El formato de cadena de la lista de perfiles de servicio de texto es:

<LangID 1>:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx};

A continuación se muestra un ejemplo de un valor para el parámetro psz:

"0x0407:0x00000407"
"0x0407:0x00000407;0x040C:0x0000040C"
"0x0407:0x00000407;0x0412:{A028AE76-01B1-46C2-99C4-ACD9858AE02F}{B5FE1F02-D5F2-4445-9C03-C568F23C99A1};0x040C:0x0000040C"

Ejemplos

No hay ninguna biblioteca de importación disponible que defina esta función, por lo que es necesario obtener un puntero a esta función mediante LoadLibrary y GetProcAddress. En el ejemplo siguiente se muestra cómo obtener un puntero a esta función.

Nota:

Usar LoadLibrary incorrectamente puede poner en peligro la seguridad de la aplicación al cargar el archivo DLL incorrecto. Consulte Orden de búsqueda de biblioteca de vínculos dinámicos para obtener información sobre cómo cargar correctamente archivos DLL con diferentes versiones de Microsoft Windows.

typedef HRESULT (
    WINAPI *PTF_ SETDEFAULTLAYOUTORTIPUSERREG)( LPCWSTR pszUserReg, 
    LPCWSTR pszSystemReg, 
    LPCWSTR pszSoftwareReg, 
    LPCWSTR psz);

HMODULE hInputDLL = LoadLibrary(TEXT("input.dll"));
BOOL bRet = FALSE;

if(hInputDLL == NULL)
{
    //Error loading module -- fail as securely as possible 
}
else
{
    PTF_ SETDEFAULTLAYOUTORTIPUSERREG pfnSetDefaultLayoutOrTipUserReg;
    
    pfnSetDefaultLayoutOrTipUserReg = (PTF_ SETDEFAULTLAYOUTORTIPUSERREG)GetProcAddress(hInputDLL, "SetDefaultLayoutOrTipUserReg");

    if(pfnSetDefaultLayoutOrTipUserReg)
    {
        bRet = (*pfnSetDefaultLayoutOrTipUserReg)( pszUserReg, pszSystemReg, pszSoftwareReg, psz);
    }

    FreeLibrary(hInputDLL);
}

Requisitos

Requisito Valor
Cliente mínimo compatible
Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows Server 2008 [solo aplicaciones de escritorio]
Archivo DLL
Input.dll