(หมายเหตุ: บทความนี้อิงตามคำอธิบายของ MSDN ในเดือนกรกฎาคม พ.ศ. 2543)
MCI Command String เป็นอินเทอร์เฟซโปรแกรมสำหรับอุปกรณ์มัลติมีเดีย เราสามารถเปิดไฟล์มัลติมีเดีย เช่น ไฟล์ mp3, VCD, ไฟล์ฟอร์แมต Mpeg4 ฯลฯ และดำเนินการต่างๆ เช่น เล่น หยุดชั่วคราว ปิด ฯลฯ ได้ ตอนนี้ผมรู้สึกเป็นเกียรติที่จะแนะนำให้คุณรู้จักวิธีใช้สตริงคำสั่ง MCI สตริงคำสั่ง MCI ดำเนินการผ่านสองฟังก์ชัน mciExecute หรือ mciSendString
การประกาศของทั้งสองฟังก์ชั่นมีดังนี้:
ฟังก์ชั่นการประกาศส่วนตัว mciExecute Lib winmm.dll นามแฝง mciExecute (ByVal lpstrCommand As String) ตราบใดที่ ฟังก์ชัน Long ทั้งสองมีพารามิเตอร์ที่เรียกว่า lpstrCommand พารามิเตอร์นี้คือ MCI Command String ที่เราจะแนะนำในวันนี้
ฟังก์ชัน mciSendString ยังมีพารามิเตอร์สามตัวด้วย lpstrReturnString คือสตริง ซึ่งใช้เพื่อรับข้อมูลที่ส่งคืนโดยฟังก์ชัน mciSendString (เช่น คำสั่งของเราใน lpstrCommand คือให้ฟังก์ชันส่งคืนประเภทอุปกรณ์ของไฟล์ที่เปิด จากนั้นจึงส่งฟังก์ชัน ส่งคืนประเภทอุปกรณ์ ข้อมูลถูกเก็บไว้ในพารามิเตอร์นี้ พารามิเตอร์ uReturnLength ใช้เพื่อระบุความยาวของพารามิเตอร์ lpstrReturnString; hwndCallback เป็นตัวจัดการหน้าต่างที่ได้รับข้อความรอและแจ้งเตือน พารามิเตอร์นี้สามารถตั้งค่าเป็น 0 เมื่อเรียกในขั้นพื้นฐาน หากมีข้อผิดพลาดเกิดขึ้นระหว่างการดำเนินการคำสั่ง ming ฟังก์ชัน mciExecute จะแสดงกล่องโต้ตอบขึ้นมาโดยตรงเพื่อแจ้งสาเหตุของข้อผิดพลาด ฟังก์ชัน mciSendString จะส่งคืน ErrorCode (รหัสข้อผิดพลาด) สำหรับความหมายเฉพาะของโค้ดนี้ คุณสามารถดูไดเร็กทอรี Platform SDKGraphics and Multimedia ServicesWindows MultimediaMultimedia ReferenceMultimedia ConstantsMCIERR Return Values ใน MSDN คุณสามารถเลือกฟังก์ชันที่จะใช้เพื่อดำเนินการคำสั่ง MCIming ตามสถานการณ์เฉพาะได้ ตัวอย่างเช่น ใช้ mciExecute เมื่อทำการดีบักเพื่อรับสาเหตุของข้อผิดพลาดอย่างรวดเร็ว และใช้ฟังก์ชัน mciSendString ในโปรแกรมที่จะออกเพื่อให้ชุดดักข้อผิดพลาดที่ตั้งไว้ในโปรแกรมจัดการข้อผิดพลาด เพื่อหลีกเลี่ยงการแจ้งเตือนข้อผิดพลาดบ่อยครั้งที่รบกวนผู้ใช้ หลังจากคุ้นเคยกับทั้งสองฟังก์ชันนี้แล้ว เราก็มาถึงจุดD?DMCI Command String
รูปแบบคำสั่งของ MCI Command String มีดังนี้: lpszCommandlpszDevicelpszCommandFlaglpazFlaglpszCommand เป็นคำสั่ง mciming เช่น เปิด เล่น หยุด ปิด ฯลฯ lpszDevice คือชื่ออุปกรณ์ (หรือชื่อไฟล์) ตัวอย่างเช่น เราใช้โปรแกรมต่อไปนี้เพื่อเปิดไฟล์ Music01.dat ใน My Documents และใช้พารามิเตอร์ alias เพื่อตั้งค่านามแฝงเป็น OpenFile: dim lReturn as long
(1)lReturn=mciExecute(open C:Mydocu~1Music01.dat นามแฝง OpenFile ประเภท MPEGVideo)
(2) จากนั้น จะต้องระบุพารามิเตอร์ lpszDevice เป็น OpenFile ในสตริงคำสั่ง MCI ในอนาคต ตัวอย่างเช่น โค้ดสำหรับปิดไฟล์จะเป็นดังนี้: lReturn=mciExecute(ปิด OpenFile)
(3) หากเราไม่ได้ตั้งค่านามแฝงสำหรับไฟล์ที่เปิดอยู่ พารามิเตอร์ lpszDevice ในสตริงคำสั่ง MCI ที่เรียกในภายหลังคือชื่อพาธของ DOS บวกกับชื่อไฟล์ ตัวอย่างดังต่อไปนี้: dim lReturn as long
(4)lReturn=mciExecute(เปิด C:Mydocu~1Music01.dat ประเภท MPEGVideo)
(5)lReturn=mciExecute (ปิด C:Mydocu~1Music01.dat ประเภท MPEGVideo)
(6) จะเห็นได้ว่าข้อดีของการตั้งค่านามแฝงคือลดการป้อนโค้ด
LpszCommandFlag เป็นพารามิเตอร์ของคำสั่ง mciming
ดังที่แสดงในโค้ดด้านบน (2) นามแฝง OpenFile และประเภท MPEGVideo เป็นพารามิเตอร์ของคำสั่ง open
โดยปกติแล้ว พารามิเตอร์ของคำสั่ง mciming จะมีตั้งแต่ไม่กี่ถึงหลายสิบ LpazFlag สามารถระบุเป็นการรอหรือการแจ้งเตือนได้ หากรออยู่ หลังจากดำเนินการคำสั่ง mciming แล้ว ข้อความ MCI_WAIT จะถูกส่งไปยังฟอร์มหลัก และผู้แจ้งเตือนจะส่งข้อความ MCI_NOTIFY
พารามิเตอร์นี้มีประโยชน์เพียงเล็กน้อยใน Visual Basic ฉันขอประกาศที่นี่ว่ามีอุปกรณ์มัลติมีเดียสิบประเภทที่ Microsoft รองรับ: cdaudio, dat, digitalvideo, อื่นๆ, โอเวอร์เลย์, สแกนเนอร์, ซีเควนเซอร์, vcr, videodisc และ waveaudio (หมายเหตุ: Microsoft ไม่รองรับไฟล์รูปแบบ RealPlay คุณสามารถใช้ รหัสต่อไปนี้ได้รับประเภทของไฟล์ที่เปิด: lReturn=mciSendString(capability lpszDevice device type,sReturn,32,0) ) สำหรับอุปกรณ์ประเภทใดที่รองรับพารามิเตอร์ใด คุณสามารถค้นหาคำสำคัญ MCI Command Strings ใน MSDN และเลือกคำสั่งที่อยู่ในรายการ โดยปกติแล้วจะมีตารางในเอกสารวิธีใช้ HTML เพื่อบอกคุณว่าอุปกรณ์ใดรองรับพารามิเตอร์ใดหรือมีข้อมูลอยู่ในนั้น ย่อหน้าแรกจะบอกคุณว่าอุปกรณ์ใดรองรับคำสั่งนี้
เอาล่ะ ตอนนี้เรามาแนะนำพารามิเตอร์คำสั่ง mciming ที่ซับซ้อน น่ากลัว และทรงพลังกันดีกว่า (บทความนี้จะแนะนำเฉพาะพารามิเตอร์ทั่วไปของคำสั่ง openming ฉันจะแนะนำพารามิเตอร์ของคำสั่ง ming อื่นๆ ให้คุณเมื่อฉันมีโอกาส) เปิด: คำสั่ง ming นี้ใช้เพื่อเปิดไฟล์มัลติมีเดีย อุปกรณ์ทั้งหมดรองรับคำสั่ง ming นี้ ก่อนที่จะดำเนินการคำสั่ง mciming จะต้องเปิดไฟล์มัลติมีเดียเพื่อเริ่มต้นอุปกรณ์