Для тех кто хочет использовать трекерную музыку в проектах AutoIt.
Трекерная музыка фактически не загружает CPU и из-за её малых размеров, пользуется популярностью программистов при написании кейгенов, кряков, трайнеров, а также инсталяторов.
Для проигрывания трекерных модулей в AutoIt я использую библиотеку BASSMOD.dll.
BASSMOD.dll (не путать с bass.dll) можно скачать c оф. сайта
http://www.un4seen.com весит 33,5 КБ
Много трекерной музыки можно найти на сайте
http://www.keygenmusic.net а также на
http://www.websound.ru
Размещаем в папку \AutoIt3\Include\ скрипт(bassmod.au3) следующего содержания:
Код:

#include-once
; Поддерживает: .mod .xm .it .s3m .mtm
; P.S. Глобальные константы добавлены исключительно для удобства...
;---------------------------------
; Music flags:
Global Const $BASS_MUSIC_RAMP = 1 ; normal ramping
Global Const $BASS_MUSIC_RAMPS = 2 ; sensitive ramping
Global Const $BASS_MUSIC_LOOP = 4 ; loop music
Global Const $BASS_MUSIC_FT2MOD = 16 ; play .MOD as FastTracker 2 does
Global Const $BASS_MUSIC_PT1MOD = 32 ; play .MOD as ProTracker 1 does
;Global Const $BASS_MUSIC_POSRESET = 256 ; stop all notes when moving position
Global Const $BASS_MUSIC_SURROUND = 512 ;surround sound
Global Const $BASS_MUSIC_SURROUND2 = 1024 ;surround sound (mode 2)
Global Const $BASS_MUSIC_STOPBACK = 2048 ;stop the music on a backwards jump effect
;Global Const $BASS_MUSIC_CALCLEN = 8192 ;calculate playback length
Global Const $BASS_MUSIC_NONINTER = 16384 ; non-interpolated mixing
;---------------------------------
Func BassMod($dllPath,$sPath,$flag)
If $dllPath="" Or $dllPath="-1" Then
$dllPath="BASSMOD.dll"
EndIf
If Not FileExists($dllPath) Then
If Not SysFileExist($dllPath) Then
MsgBox(16,"Error","Не найден BASSMOD.dll")
Exit
EndIf
EndIf
Global $music_handle = -1
Global $BassModDll = DllOpen($dllPath)
$init = DllCall($BassModDll, "int", "BASSMOD_Init", "int", -1, _ ;device
"int", 44100, _ ;freq Hz
"int", 0) ;flag
$fName = DllStructCreate("char[255]")
DllStructSetData($fName, 1, $sPath)
$load = DllCall($BassModDll, "int", "BASSMOD_MusicLoad", "int", False, _ ;loading from memory
"ptr", DllStructGetPtr($fName), _ ;file
"int", 0, _ ;offset
"int", 0, _ ;length
"int", $flag) ;flag
$music_handle = $load[0]
$fName = 0
DllCall($BassModDll, "int:cdecl", "BASSMOD_MusicPlay", "int", $music_handle)
EndFunc
Func BassModClose()
If IsDeclared("BassModDll") Then
DllCall($BassModDll, "int:cdecl", "BASSMOD_Free", "int", $music_handle) ;clear resource
DllClose($BassModDll)
EndIf
EndFunc
; Проверка наличия указанного файла в путях переменной %Path%
Func SysFileExist($sFile)
$old=@WorkingDir
$array = StringSplit(EnvGet("PATH"),";")
For $i=1 To $array[0]
FileChangeDir($array[$i])
$get=FileExists($sFile)
If $get=1 Then ExitLoop
Next
FileChangeDir($old)
Return $get
EndFunc
Синтаксис:
BassMod($dllPath,$sPath,$flag)
$dllPath - Путь к BASSMOD.dll (Если в качестве пути указать (-1 или "") функция поищет BASSMOD.dll в текущем директории а также в путях определённых для системной переменной %path% )
$sPath - Путь к трекерному модулю
$flag - Метод обработки (см. предыдущий код: Music flags)
BassModClose() - закрывает BASSMOD.dll и выгружает музыку из памяти (Эту функцию следует вызывать при выходе из GUI)
Пример использования:
Код:

#include <GUIConstants.au3>
#include <bassmod.au3>
Opt("GUIOnEventMode", 1)
$title="BASSMOD_TEST"
$test=GUICreate($title,320,240)
GUISetOnEvent($GUI_EVENT_CLOSE,"ExitGui")
GUISetState()
BassMod(-1,"Music.xm",512+4)
While 1
Sleep(1000)
WEnd
Func ExitGui()
BassModClose()
Exit(0)
EndFunc