共用方式為


命令字串

[與此頁面相關聯的功能 MCI是舊版功能。 MediaPlayer已取代它。 MediaPlayer 已針對 Windows 10 和 Windows 11 優化。 Microsoft強烈建議新程式代碼盡可能使用 MediaPlayer,而不是 MCI。 Microsoft建議使用舊版 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」 旗標傳送 play 命令。

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;
} 

命令變數的數據類型

您可以針對命令字串中的變數使用下列資料類型。

數據類型 描述
字串 字串數據類型是以開頭和尾端空格符和引號分隔。 MCI 會從字串中移除單引號。 若要將引號放在字串中,請使用一組兩個引號,其中您想要內嵌引號。 若要使用空字串,請使用以開頭和尾端空格符分隔的兩個引號。
帶正負號的長整數 帶正負號的長整數數據類型會以開頭和尾端空格符分隔。 除非另有指定,否則整數可以是正數或負數。 如果您使用負整數,則不應該以空格分隔減號和第一個數位。
矩形 矩形數據類型是四個帶正負號簡短值的已排序列表。 空格符會分隔此資料類型,並分隔清單中的每個整數。