更新日付

最新投稿:素戔嗚神社(藤戸)
投稿日:2024年11月28日
既存投稿更新:高岡神社
更新日:2024年10月6日

2020年12月18日金曜日

CDデバイス名からRecorderUniqueID取得、トレーEJECT処理

前回の投稿で使用したCDデバイス名一覧から選択したCDデバイスを特定する処理です

前投稿[CDデバイス一覧取得]のソースがある前提で
引数に選択したCDデバイス名を指定すれば対応するデバイスのIDを取得します

--------------------------------------------------------------------------------

    ''' <summary>
    ''' RecorderUniqueID取得
    ''' </summary>
    Public Function GetCDDevID(sProductId As String) As String
        Dim strRet As String = String.Empty
        Dim objDiscMaster As IMAPI2.MsftDiscMaster2 = Nothing
        Try
            'デバイス検索
            objDiscMaster = New IMAPI2.MsftDiscMaster2
            For Each sDev As String In objDiscMaster
                Dim objDev As New IMAPI2.MsftDiscRecorder2
                Try
                    objDev.InitializeDiscRecorder(sDev)
                    If Trim(objDev.ProductId) = sProductId Then
                        strRet = sDev
                        Exit For
                    End If
                Catch ex As Exception
                    Throw ex
                Finally
                    MarshalObject(objDev)
                End Try
            Next
        Catch ex As Exception
            Throw ex
        Finally
            MarshalObject(objDiscMaster)
        End Try
        Return strRet
    End Function
--------------------------------------------------------------------------------


これだけだと面白くないのでCDトレーのEJECTをさせる処理を
引数に選択したCDデバイス名を指定すれば対応するデバイスのトレーを開きます

--------------------------------------------------------------------------------

    ''' <summary>
    ''' EJECT TRAY
    ''' </summary>
    ''' <param name="sProductId">Device名</param>
    Public Sub TrayEJECT(sProductId As String)

        Dim objRecorder As New IMAPI2.MsftDiscRecorder2
        Dim sRecorderUniqueID As String = GetCDDevID(sProductId)
        Try
            If Not String.IsNullOrWhiteSpace(sRecorderUniqueID) Then
                'デバイス決定
                objRecorder.InitializeDiscRecorder(sRecorderUniqueID)
                'EJECT
                objRecorder.EjectMedia()
            End If
        Catch ex As Exception
            Throw ex
        Finally
            MarshalObject(objRecorder)
        End Try

    End Sub
--------------------------------------------------------------------------------


0 件のコメント:

コメントを投稿