Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 1)

Модерирует : gyra, Maz

Widok (12-01-2009 14:47): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

ViSiToR



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору


Код:
#include <Array.au3> ;Only for displaying the results
 
Global $CddbControl_Dll = @ScriptDir & '\CddbControl.dll'
Global $File = @ScriptDir & '\Some File.mp3'
 
;Startup the CddbControl
_CddbControl_Startup()
_CddbControl_Error_Handler(@error, 'CddbControl.dll Not Found!', 1)
 
;Get all tags into array and show them...
$aOld_Tags = _CddbControl_GetID3Tag($File)
_CddbControl_Error_Handler(@error, 'There was an error (%i) to get an array with ID3 tags.', 1)
 
_ArrayDisplay($aOld_Tags, '_CddbControl_GetID3Tag')
 
;Set "Title" tag to "_CddbControl Title"
_CddbControl_SetID3Tag($File, 'Title', '_CddbControl Title')
_CddbControl_Error_Handler(@error, 'There was an error (%i) to set ID3 tag (Title).', 1)
 
;Get all tags with new value into array and show them...
$aNew_Tags = _CddbControl_GetID3Tag($File)
_CddbControl_Error_Handler(@error, 'There was an error (%i) to get an array with ID3 tags.', 1)
 
_ArrayDisplay($aNew_Tags, '_CddbControl_GetID3Tag')
 
;Set back the original "Title" tag value
_CddbControl_SetID3Tag($File, 'Title', $aOld_Tags[1][1])
_CddbControl_Error_Handler(@error, 'There was an error (%i) to set ID3 tag (Title).', 1)
 
;Show the "Title" tag (to see if it was restored back)
MsgBox(64, 'Results', 'Old Title: ' & _CddbControl_GetID3Tag($File, 'Title'))
 
;Shutdown the CddbControl
_CddbControl_Shutdown()
 
Func _CddbControl_Startup()
    If Not FileExists($CddbControl_Dll) Then Return SetError(-1, 0, 0)
 
    RunWait('Regsvr32.exe /s /i "' & $CddbControl_Dll & '"', @WindowsDir)
    Return 1
EndFunc   ;==>_CddbControl_Startup
 
Func _CddbControl_Shutdown()
    If Not FileExists($CddbControl_Dll) Then Return SetError(-1, 0, 0)
 
    Run('Regsvr32.exe /s /u ' & $CddbControl_Dll, @WindowsDir)
    Return 1
EndFunc   ;==>_CddbControl_Shutdown
 
Func _CddbControl_GetID3Tag($sFile, $sTag = "")
    Local $oId3 = ObjCreate("CDDBControl.CddbID3Tag")
 
    If Not IsObj($oId3) Then Return SetError(1, 0, "")
    If Not FileExists($sFile) Then Return SetError(2, 0, "")
 
    $oId3.LoadFromFile($sFile, False)
 
    Local $aRet_Tags[16][2]
    $aRet_Tags[0][0] = 15
 
    $aRet_Tags[1][0] = 'Title'
    $aRet_Tags[1][1] = $oId3.Title
    $aRet_Tags[2][0] = 'LeadArtist'
    $aRet_Tags[2][1] = $oId3.LeadArtist
    $aRet_Tags[3][0] = 'Album'
    $aRet_Tags[3][1] = $oId3.Album
    $aRet_Tags[4][0] = 'TrackPosition'
    $aRet_Tags[4][1] = $oId3.TrackPosition
    $aRet_Tags[5][0] = 'Year'
    $aRet_Tags[5][1] = $oId3.Year
    $aRet_Tags[6][0] = 'Genre'
    $aRet_Tags[6][1] = $oId3.Genre
    $aRet_Tags[7][0] = 'Comments'
    $aRet_Tags[7][1] = $oId3.Comments
    $aRet_Tags[8][0] = 'Label'
    $aRet_Tags[8][1] = $oId3.Label
    $aRet_Tags[9][0] = 'FileId'
    $aRet_Tags[9][1] = $oId3.FileId
    $aRet_Tags[10][0] = 'ISRC'
    $aRet_Tags[10][1] = $oId3.ISRC
    $aRet_Tags[11][0] = 'CopyrightHolder'
    $aRet_Tags[11][1] = $oId3.CopyrightHolder
    $aRet_Tags[12][0] = 'CopyrightYear'
    $aRet_Tags[12][1] = $oId3.CopyrightYear
    $aRet_Tags[13][0] = 'PartOfSet'
    $aRet_Tags[13][1] = $oId3.PartOfSet
    $aRet_Tags[14][0] = 'Movie'
    $aRet_Tags[14][1] = $oId3.Movie
    $aRet_Tags[15][0] = 'BeatsPerMinute'
    $aRet_Tags[15][1] = $oId3.BeatsPerMinute
 
    If $sTag <> "" Then
        For
$i = 1 To 15
            If $aRet_Tags[$i][0] = $sTag Then Return $aRet_Tags[$i][1]
        Next
 
        Return
SetError(3, 0, "")
    EndIf
 
    Return
$aRet_Tags
EndFunc   ;==>_CddbControl_GetID3Tag
 
;===============================================================================================================
; 'TitleAlbum', 'Movie', 'Title', 'CopyrightYear', 'CopyrightHolder', 'Comments', 'Label', 'BeatsPerMinute',
; 'LeadArtist', 'PartOfSet', 'TrackPosition', 'Year', 'Genre', 'FileId', 'ISRC'
;================================================================================================================

Func _CddbControl_SetID3Tag($sFile, $sTag, $sValue)
    Local $oId3 = ObjCreate("CDDBControl.CddbID3Tag")
 
    If Not IsObj($oId3) Then Return SetError(1, 0, 0)
    If Not FileExists($sFile) Then Return SetError(2, 0, 0)
 
    ; False means open for read-write
    $oId3.LoadFromFile($sFile, False)
 
    Switch $sTag
        Case 'TitleAlbum'
            $oId3.Album = $sValue
        Case 'LeadArtist'
            $oId3.LeadArtist = $sValue
        Case 'Title'
            $oId3.Title = $sValue
        Case 'TrackPosition'
            $oId3.TrackPosition = $sValue
        Case 'Year'
            $oId3.Year = $sValue
        Case 'Genre'
            $oId3.Genre = $sValue
        Case 'Comments'
            $oId3.Comments = $sValue
        Case 'Label'
            $oId3.Label = $sValue
        Case 'FileID'
            $oId3.FileId = $sValue
        Case 'IRSC'
            $oId3.ISRC = $sValue
        Case 'CopyrightHolder'
            $oId3.CopyrightHolder = $sValue
        Case 'CopyrightYear'
            $oId3.CopyrightYear = $sValue
        Case 'PartOfSet'
            $oId3.PartOfSet = $sValue
        Case 'Movie'
            $oId3.Movie = $sValue
        Case 'BeatsPerMinute'
            $oId3.BeatsPerMinute = $sValue
        Case Else
            Return
SetError(3, 0, 0)
    EndSwitch
 
    $oId3.SaveToFile($sFile)
 
    Return 1
EndFunc   ;==>_CddbControl_SetID3Tag
 
Func _CddbControl_Error_Handler($iError, $sErrMsg, $iExit = 1)
    If $iError = 0 Then Return
 
    If
$iExit Then $sErrMsg &= @CRLF & @CRLF & 'OK ==> EXIT'
    MsgBox(262144 + 16, 'CddbControl Error', StringFormat($sErrMsg, $iError))
 
    If $iExit Then Exit _CddbControl_Shutdown()
EndFunc   ;==>_CddbControl_Error_Handler

Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 02:20 04-10-2008 | Исправлено: ViSiToR, 03:19 04-10-2008
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 1)
Widok (12-01-2009 14:47): лимит страниц. продолжаем здесь


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru