Creat0R
Цитата:
Если путь к BASSMOD.dll не указать полный (просто "BASSMOD.dll"), то мелодия не играет.
|
Странно... У меня почему-то играет... Использую "AutoIt v 3.2.0.1" Может произошла ошибка инициализации самой библиотеки? Даже не знаю что и подумать.
Цитата:
Я в системной папке нашёл файл BassMod.dll, возможно ли как то использовать его?
|
...если при вызове функции вместо пути к BASSMOD.dll указать -1 или "" AutoIt в первую очередь поищет библиотеку в директории скрипта и не найдя его там, продолжит поиск в путях переменной %path% (обычно это WINDOWS и WINDOWS\system32) т.е. попытается инициализировать найденную тобой библиотеку. Это не желательно поскольку "неизвестный" BassMod.dll вполне может оказаться устаревшим или что нибудь ещё...
Я считаю что лучше указывать полный путь, чтобы уж знать наверняка, что играет правильный BASSMOD.dll.
P.S.
Скорее всего какая нибудь программа временно извлекла BASSMOD.dll для одноразового проигрывания музыки, а в последствии не стала его удалять. Лично я считаю такое поведение некорректным для программы, поскольку это засоряет системную папку.
Вот ещё вариант для скомпилированного скрипта с применением
FileInstall() (по крайней мере как это вижу я)
Все ресурсные файлы извлекаются в @TempDir только после запуска окна справки, а после его закрытия сразу удаляются.
Код:

#include <GUIConstants.au3>
#include <bassmod.au3>
Opt("GUIOnEventMode", 1)
$title="BASSMOD_TEST"
$test=GUICreate($title,320,240)
GUISetOnEvent($GUI_EVENT_CLOSE,"ExitGui")
$CTRL_help = GUICtrlCreateButton ("", 260, 20, 30, 30,$BS_ICON)
GUICtrlSetImage($CTRL_help,"shell32.dll",23,1)
GUICtrlSetOnEvent($CTRL_help,"help")
Global $HelpStart=0
Global $lib=@TempDir & "\BASSMOD.dll"
Global $sound=@TempDir & "\moon trip.xm"
GUISetState()
While 1
Sleep(100)
WEnd
Func ExitGui()
BassModClose()
FileDelete($lib)
If @GUI_WINHANDLE = $help Then
GUIDelete()
$HelpStart=0
Else
Exit(0)
EndIf
EndFunc
Func help()
Local $size = WinGetPos("")
If $HelpStart=0 Then
Local $HelpInfo="На этом месте могла бы быть ваша реклама..." & @CRLF & _
"Но её здесь точно не будет!"
Global $help=GUICreate("О программе...",240,180,$size[0]+40,$size[1]+40,-1,$WS_EX_TOOLWINDOW,$test)
$label_help=GUICtrlCreateLabel($HelpInfo,0,0,240,180)
GUICtrlSetBkColor(-1,0x000000)
GUICtrlSetColor(-1,0x000000)
GUISetOnEvent($GUI_EVENT_CLOSE,"ExitGui")
GUISetState()
$HelpStart=1 ;защита от повторного запуска help'а
$color=0
Sleep(120)
Do
Sleep(40)
$color=$color+5
$H=StringRight(Hex($color),2)
GUICtrlSetColor ($label_help,"0x" & $H & $H & $H)
Until $color=255
FileInstall("BASSMOD.dll",$lib,1)
FileInstall("moon trip.xm",$sound,1)
BASSMOD($lib,$sound,1024+4)
; Т.к. музыка загружена в память, файл модуля можно сразу же удалить
FileDelete($sound)
EndIf
EndFunc