Поделиться через


Командные строки

[Функция, связанная с этой страницей, MCI, является устаревшей функцией. Он был заменен MediaPlayer. MediaPlayer оптимизирован для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует по возможности использовать MediaPlayer вместо MCI. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

Чтобы отправить строковую команду на устройство MCI, используйте функцию mciSendString , которая включает параметры для строковой команды и буфер для всех возвращаемых сведений.

Функция mciSendString возвращает ноль в случае успешного выполнения. Если функция завершается сбоем, слово низкого порядка возвращаемого значения содержит код ошибки. Этот код ошибки можно передать в функцию mciGetErrorString , чтобы получить текстовое описание ошибки.

Синтаксис командных строк

В строках команд MCI используется согласованный синтаксис модификатора verb-object-modifier. Каждая командная строка содержит команду, идентификатор устройства и аргументы команды. Аргументы являются необязательными для некоторых команд и обязательными для других.

Командная строка имеет следующую форму:

аргументы device_id команд

Эти компоненты содержат следующие сведения:

  • Команда указывает команду MCI, например открыть, закрыть или воспроизвести.

  • Device_id идентифицирует экземпляр драйвера MCI. При открытии устройства создается device_id.

  • Аргументы указывают флаги и переменные, используемые командой . Флаги — это ключевые слова, распознаваемые с помощью команды MCI. Переменные — это числа или строки, которые применяются к команде или флагу MCI.

    Например, команда воспроизведения использует аргументы "from position " и "to position " для указания позиций, с которых следует начинать и завершать воспроизведение. Вы можете перечислить флаги, используемые с командой, в любом порядке. При использовании флага, с которым связана переменная, необходимо указать значение для переменной.

    Для неуказательных (и необязательных) аргументов команды предполагается значение по умолчанию.

В следующем примере функция отправляет команду воспроизведения с флагами "from" и "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;
} 

Типы данных для командных переменных

Для переменных в командной строке можно использовать следующие типы данных.

Data type Описание
строк Строковые типы данных разделяются начальными и конечными пробелами и кавычками. MCI удаляет одинарные кавычки из строки. Чтобы поставить кавычки в строку, используйте набор из двух кавычек, в которые вы хотите внедрить кавычки. Чтобы использовать пустую строку, используйте две кавычки, разделенные пробелами в начале и конце.
Длинные целые числа со знаком Типы данных со знаком с длинными целыми числами разделяются начальными и конечными пробелами. Если не указано иное, целые числа могут быть положительными или отрицательными. При использовании отрицательных целых чисел не следует разделять знак "минус" и первую цифру пробелом.
Прямоугольники Типы данных Rectangle — это упорядоченный список из четырех подписанных коротких значений. Пробелы разделяют этот тип данных и разделяют каждое целое число в списке.