Цитата:
Сообщение от Bersenev
Если речь про AutoIt, то вот исходник SkinMediaTitle.au3, а если про компонент для фубара, то всё зависит от того на чём его писать.
|
У меня получилось с таким кодом:
Код:
_Main()
Func _Main()
$rr = ObjCreate("RideRunner.sdk")
Global $IsWork = 1 ; Ключ цикла, выполнять пока равно 1
Global $IsRun = 0 ; Ключ запуска окна, если 0 окно ещё не найдено
Global $name = "" ; Имя окна, которое необходимо перехватить
Global $namecontrol = "" ; Имя окна, которое необходимо перехватить
Global $FoobarWindowTitlePrev=""
If $CmdLine[0] = 0 Then
$IsWork = 0
Else
If $CmdLine[0] > 0 Then $name = $CmdLine[1]
EndIf
While $IsWork
Opt("WinTitleMatchMode", 2)
$handle = WinGetHandle($name) ; Ищем окно с заданным именем
If @error Then
If $IsRun Then
$IsWork = 0
EndIf ; если окно не найдено, а ключ запуска окна установлен в 1, т.е. окно закрыто, то сбросить ключ выхода для завершения скрипта
Else
$IsRun = 1 ; если окно найдено устанавливаем ключ запуска окна
$FoobarWindowTitle = WinGetTitle($handle)
$FoobarWindowTitlePrev = $rr.getinfo("=$CurrentSkinMediaTitle$")
If $FoobarWindowTitlePrev <> $FoobarWindowTitle Then $rr.Execute("SETVAR;CurrentSkinMediaTitle;" & $FoobarWindowTitle)
$FoobarWindowTitlePrev = $FoobarWindowTitle
EndIf
; для отображения процентов добавить в Foobar2000 такой код в конец Title:
; %playback_time%|%playback_time_remaining%|$muldiv(%_time_elapsed_seconds%,100,%_time_total_seconds%)
$FoobarTrimTitle = StringRight ($FoobarWindowTitle, 15)
$checkstr = StringInStr($FoobarTrimTitle,"|")
If $checkstr <> 0 Then
$aFooTimers = StringSplit($FoobarTrimTitle,"|")
;If IsArray($aFooTimers) Then
$FoobarTrackPos = $aFooTimers[3]
$FoobarTrackTime = $aFooTimers[1]
$FoobarRTrackTime = $aFooTimers[2]
$rr.Execute("SetLabel;!foobar_trackpos;" & $FoobarTrackPos)
$rr.Execute("SetLabel;!foobar_tracktime;" & $FoobarTrackTime)
$rr.Execute("SetLabel;!foobar_rtracktime;" & $FoobarRTrackTime)
EndIf
$state = WinGetState($name, "")
If BitAnd($state, 2) Then
$CurrentApp = $rr.getinfo("=$CurrentApp$")
$SkinMediaId = $rr.getinfo("=$SkinMediaId$")
$SkinMediaN = $rr.getinfo("=$SkinMedia" & $SkinMediaId & "$")
If $CurrentApp <> $SkinMediaN Then
$rr.Execute("Activate;iCar DS")
EndIf
EndIf
Sleep(500)
WEnd
EndFunc ;==>_Main

СПАСИБО!!