Проверка поддержки мультимедиа
Следующий скрипт проверяет характеристики носителя, загруженного на устройство диска. В частности, он проверяет тип носителя и текущее состояние носителя, а также совместимость средства записи и носителя. Этот скрипт можно адаптировать для проверки совместимости и проблем с состоянием перед использованием носителя.
' This script examines characteristics of the media loaded in the disc device.
' Copyright (C) Microsoft Corp. 2006
Option Explicit
' *** IMAPI2 Media Types
Const IMAPI_MEDIA_TYPE_UNKNOWN = 0 ' Media not present OR
' is unrecognized
Const IMAPI_MEDIA_TYPE_CDROM = 1 ' CD-ROM
Const IMAPI_MEDIA_TYPE_CDR = 2 ' CD-R
Const IMAPI_MEDIA_TYPE_CDRW = 3 ' CD-RW
Const IMAPI_MEDIA_TYPE_DVDROM = 4 ' DVD-ROM
Const IMAPI_MEDIA_TYPE_DVDRAM = 5 ' DVD-RAM
Const IMAPI_MEDIA_TYPE_DVDPLUSR = 6 ' DVD+R
Const IMAPI_MEDIA_TYPE_DVDPLUSRW = 7 ' DVD+RW
Const IMAPI_MEDIA_TYPE_DVDPLUSR_DUALLAYER = 8 ' DVD+R dual layer
Const IMAPI_MEDIA_TYPE_DVDDASHR = 9 ' DVD-R
Const IMAPI_MEDIA_TYPE_DVDDASHRW = 10 ' DVD-RW
Const IMAPI_MEDIA_TYPE_DVDDASHR_DUALLAYER = 11 ' DVD-R dual layer
Const IMAPI_MEDIA_TYPE_DISK = 12 ' Randomly writable
' *** IMAPI2 Data Media States
Const IMAPI_FORMAT2_DATA_MEDIA_STATE_UNKNOWN = 0
Const IMAPI_FORMAT2_DATA_MEDIA_STATE_INFORMATIONAL_MASK = 15
Const IMAPI_FORMAT2_DATA_MEDIA_STATE_UNSUPPORTED_MASK = 61532 '0xfc00
Const IMAPI_FORMAT2_DATA_MEDIA_STATE_OVERWRITE_ONLY = 1
Const IMAPI_FORMAT2_DATA_MEDIA_STATE_BLANK = 2
Const IMAPI_FORMAT2_DATA_MEDIA_STATE_APPENDABLE = 4
Const IMAPI_FORMAT2_DATA_MEDIA_STATE_FINAL_SESSION = 8
Const IMAPI_FORMAT2_DATA_MEDIA_STATE_DAMAGED = 1024 '0x400
Const IMAPI_FORMAT2_DATA_MEDIA_STATE_ERASE_REQUIRED = 2048 '0x800
Const IMAPI_FORMAT2_DATA_MEDIA_STATE_NON_EMPTY_SESSION = 4096 '0x1000
Const IMAPI_FORMAT2_DATA_MEDIA_STATE_WRITE_PROTECTED = 8192 '0x2000
Const IMAPI_FORMAT2_DATA_MEDIA_STATE_FINALIZED = 16384 '0x4000
Const IMAPI_FORMAT2_DATA_MEDIA_STATE_UNSUPPORTED_MEDIA = 32768 '0x8000
WScript.Quit(Main)
Function Main
Dim Index ' Index to recording drive.
Dim recorder ' Recorder object
Dim Stream ' Data stream for burning device
Index = 1 ' Second drive on the system
' Create a DiscMaster2 object to connect to CD/DVD drives.
Dim g_DiscMaster
Set g_DiscMaster = WScript.CreateObject("IMAPI2.MsftDiscMaster2")
' Create a DiscRecorder object for the specified burning device.
Dim uniqueId
set recorder = WScript.CreateObject("IMAPI2.MsftDiscRecorder2")
uniqueId = g_DiscMaster.Item(index)
recorder.InitializeDiscRecorder( uniqueId )
' Define the new disc format and set the recorder
Dim dataWriter
Set dataWriter = CreateObject ("IMAPI2.MsftDiscFormat2Data")
dataWriter.recorder = recorder
Dim boolResult
boolResult = dataWriter.IsRecorderSupported(recorder)
If boolResult = True then
WScript.Echo "--- Current recorder IS supported. ---"
else
WScript.Echo "Current recorder IS NOT supported."
end if
boolResult = dataWriter.IsCurrentMediaSupported(recorder)
If boolResult = True then
WScript.Echo "--- Current media IS supported. ---"
else
WScript.Echo "Current media IS NOT supported."
end if
WScript.Echo "ClientName = " & dataWriter.ClientName
' Check a few CurrentMediaStatus possibilities. Each status
' is associated with a bit and some combinations are legal.
Dim curMediaStatus
curMediaStatus = dataWriter.CurrentMediaStatus
WScript.Echo "Checking Current Media Status"
if IMAPI_FORMAT2_DATA_MEDIA_STATE_UNKNOWN AND curMediaStatus then
WScript.Echo " Media state is unknown."
end if
if IMAPI_FORMAT2_DATA_MEDIA_STATE_OVERWRITE_ONLY AND curMediaStatus then
WScript.Echo " Currently, only overwriting is supported."
end if
if IMAPI_FORMAT2_DATA_MEDIA_STATE_APPENDABLE AND curMediaStatus then
WScript.Echo " Media is currently appendable."
end if
if IMAPI_FORMAT2_DATA_MEDIA_STATE_FINAL_SESSION AND curMediaStatus then
WScript.Echo " Media is in final writing session."
end if
if IMAPI_FORMAT2_DATA_MEDIA_STATE_DAMAGED AND curMediaStatus then
WScript.Echo " Media is damaged."
end if
Dim mediaType
mediaType = dataWriter.CurrentPhysicalMediaType
WScript.Echo "Current Media Type"
DisplayMediaType(MediaType)
WScript.Echo
WScript.Echo "----- Finished -----"
Main = 0
End Function
Sub DisplayMediaType(dMediaType)
Select Case dmediaType
Case IMAPI_MEDIA_TYPE_UNKNOWN
WScript.Echo " Empty device or an unknown disc type."
Case IMAPI_MEDIA_TYPE_CDROM
WScript.Echo " CD-ROM"
Case IMAPI_MEDIA_TYPE_CDR
WScript.Echo " CD-R"
Case IMAPI_MEDIA_TYPE_CDRW
WScript.Echo " CD-RW"
Case IMAPI_MEDIA_TYPE_DVDROM
WScript.Echo " Read-only DVD drive and/or disc"
Case IMAPI_MEDIA_TYPE_DVDRAM
WScript.Echo " DVD-RAM"
Case IMAPI_MEDIA_TYPE_DVDPLUSR
WScript.Echo " DVD+R"
Case IMAPI_MEDIA_TYPE_DVDPLUSRW
WScript.Echo " DVD+RW"
Case IMAPI_MEDIA_TYPE_DVDPLUSR_DUALLAYER
WScript.Echo " DVD+R Dual Layer media"
Case IMAPI_MEDIA_TYPE_DVDDASHR
WScript.Echo " DVD-R"
Case IMAPI_MEDIA_TYPE_DVDDASHRW
WScript.Echo " DVD-RW"
Case IMAPI_MEDIA_TYPE_DVDDASHR_DUALLAYER
WScript.Echo " DVD-R Dual Layer media"
Case IMAPI_MEDIA_TYPE_DISK
WScript.Echo " Randomly-writable, hardware-defect " _
+ "managed media type "
WScript.Echo " that reports the ""Disc"" profile " _
+ "as current."
End Select
End Sub
Связанные темы