Compartir a través de


Cadenas de comandos

[La característica asociada a esta página, MCI, es una característica heredada. Se ha reemplazado por MediaPlayer. MediaPlayer se ha optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer en lugar de MCI, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

Para enviar un comando de cadena a un dispositivo MCI, use la función mciSendString, que incluye parámetros para el comando de cadena y un búfer para cualquier información devuelta.

La función mciSendString devuelve cero si se ejecuta correctamente. Si se produce un error en la función, la palabra de orden bajo del valor devuelto contiene un código de error. Puede pasar este código de error a la función mciGetErrorString para obtener una descripción de texto del error.

Sintaxis de cadenas de comandos

Las cadenas de comandos de MCI usan una sintaxis coherente de verbo-object-modificador. Cada cadena de comandos incluye un comando, un identificador de dispositivo y argumentos de comando. Los argumentos son opcionales para algunos comandos y son necesarios para otros.

Una cadena de comandos tiene el siguiente formato:

device_id argumentos de comando

Estos componentes contienen la siguiente información:

  • El comando especifica un comando MCI, como abrir, cerraro reproducir.

  • El device_id identifica una instancia de un controlador MCI. El device_id se crea cuando se abre el dispositivo.

  • Los argumentos especifican las marcas y variables usadas por el comando . Las marcas son palabras clave reconocidas con el comando MCI. Las variables son números o cadenas que se aplican al comando o marca MCI.

    Por ejemplo, el comando reproducir usa los argumentos "de posición" y "para posición" para indicar las posiciones en las que se debe iniciar y finalizar la reproducción. Puede enumerar las marcas usadas con un comando en cualquier orden. Cuando se usa una marca que tiene una variable asociada, debe proporcionar un valor para la variable.

    Los argumentos de comando no especificados (y opcionales) suponen un valor predeterminado.

La siguiente función de ejemplo envía el comando reproducir con las marcas "from" y "to".

BOOL PlayFromTo(LPTSTR lpstrAlias, DWORD dwFrom, DWORD dwTo) 
{ 
    TCHAR achCommandBuff[128]; 
    int result;
    MCIERROR err;

    // Form the command string.
    result = _stprintf_s(
        achCommandBuff, 
        TEXT("play %s from %u to %u"), 
        lpstrAlias, dwFrom, dwTo); 

    if (result == -1)
    {
        return FALSE;
    }

    // Send the command string.
    err = mciSendString(achCommandBuff, NULL, 0, NULL); 
    if (err != 0)
    {
        return FALSE;
    }

    return TRUE;
} 

Tipos de datos para variables de comando

Puede usar los siguientes tipos de datos para las variables de una cadena de comandos.

tipo de datos descripción
Instrumentos de cuerda Los tipos de datos de cadena se delimitan mediante espacios en blanco iniciales y finales y comillas. MCI quita comillas simples de una cadena. Para colocar una comilla en una cadena, use un conjunto de dos comillas donde desea insertar la comilla. Para usar una cadena vacía, use dos comillas delimitadas por espacios en blanco iniciales y finales.
Enteros largos con signo Los tipos de datos enteros largos con signo se delimitan mediante espacios en blanco iniciales y finales. A menos que se especifique lo contrario, los enteros pueden ser positivos o negativos. Si usa enteros negativos, no debe separar el signo menos y el primer dígito con un espacio.
Rectángulos Los tipos de datos rectangle son una lista ordenada de cuatro valores cortos firmados. El espacio en blanco delimita este tipo de datos y separa cada entero de la lista.