Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Пользователь


Сообщения: 135
Благодарности: 32

Профиль | Отправить PM | Цитировать


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

Отправлено: 07:53, 10-01-2007 | #116