Автор Тема: Выбор скриптом названия программы из списка в файле txt  (Прочитано 436 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн OlegSmirnov [?]

  • Новичок
  • *
  • Сообщений: 52
  • Репутация: 0
    • Награды
  • Версия AutoIt: 3.3.14.0
Доброго времени суток.
Помогите решить вопрос.

Имеется скрипт управления бегунками микшера громкости.
Скрипт реагирует на название той программы, которое вписано - над этим бегунком.
В данном случае - это слово "Soundtrack".
Но сейчас слово "Soundtrack"- вписано в скрипт.
И уровень громкости "50" для этого пункта  -  также жестко задан в скрипте.

Как скриптом - выбирать название  и устанавливать уровень громкости -из списка , который написан в файле 1.txt ?
(нажмите для показа/скрытия)


Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться

Русское сообщество AutoIt


Помечен как лучший ответ пользователем OlegSmirnov Отправлен Октябрь 16, 2017, 20:37:14

Оффлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 407
  • Репутация: 94
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
OlegSmirnov
(нажмите для показа/скрытия)

Код: AutoIt [Выделить]
#include <GuiSlider.au3>

Run("SndVol.exe")
Global $hWnd = WinWaitActive("Микшер громкости"), $aList, $iStart

$aList = FileReadToArray(@ScriptDir & "\1.txt")

For $i = 0 To UBound($aList) - 1
    $iStart = StringInStr($aList[$i], " ", 0, -1)
    $hSlider = _GetVolumeSlider(StringLeft($aList[$i], $iStart - 1))
    If Not @error Then _SetVolumeLevel($hSlider, Int(StringMid($aList[$i], $iStart + 1)))
Next

Func _GetVolumeSlider($sName)
    Local $hStatic, $hSlider, $i = 1

    While 1
        $hStatic = ControlGetHandle($hWnd, "", "Static" & $i)
        If Not $hStatic Then Return SetError(1, 0, 0)
        If StringInStr(ControlGetText($hWnd, "", $hStatic), $sName) Then
            $hSlider = ControlGetHandle($hWnd, "", "msctls_trackbar32" & ($i + 1) / 3)
            Return SetError(0, 0, $hSlider)
        EndIf
        $i += 1
    WEnd
EndFunc   ;==>_GetVolumeSlider

Func _SetVolumeLevel($hSlider, $iLevel)
    Switch $iLevel
        Case 0
            ControlSend($hWnd, "", $hSlider, "{END}")
        Case 1 To 99
            Local $iCur = _GUICtrlSlider_GetPos($hSlider) - 100
            Local $iNeed = $iLevel + $iCur, $iPGUPDN, $iUPDN
            If Not $iNeed Then Return SetError(0, 1, 0)

            If $iNeed > 0 Then
                $iPGUPDN = Int($iNeed / 20)
                If $iPGUPDN Then ControlSend($hWnd, "", $hSlider, "{PGUP " & $iPGUPDN & "}")
                $iUPDN = $iNeed - $iPGUPDN * 20
                If $iUPDN Then ControlSend($hWnd, "", $hSlider, "{UP " & $iUPDN & "}")
            Else
                $iNeed = Abs($iNeed)
                $iPGUPDN = Int($iNeed / 20)
                If $iPGUPDN Then ControlSend($hWnd, "", $hSlider, "{PGDN " & $iPGUPDN & "}")
                $iUPDN = $iNeed - $iPGUPDN * 20
                If $iUPDN Then ControlSend($hWnd, "", $hSlider, "{DOWN " & $iUPDN & "}")
            EndIf
        Case 100
            ControlSend($hWnd, "", $hSlider, "{HOME}")
    EndSwitch
EndFunc   ;==>_SetVolumeLevel

 

« Последнее редактирование: Октябрь 16, 2017, 20:35:28 от Tempo »

Оффлайн OlegSmirnov [?]

  • Новичок
  • *
  • Сообщений: 52

  • Автор темы
  • Репутация: 0
    • Награды
  • Версия AutoIt: 3.3.14.0
Tempo , огромное спасибо

Русское сообщество AutoIt

Re: Выбор скриптом названия программы из списка в файле txt
« Ответ #2 Отправлен: Октябрь 16, 2017, 20:37:32 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
32 Ответов
16018 Просмотров
Последний ответ Ноябрь 18, 2012, 00:00:03
от glax24
4 Ответов
1670 Просмотров
Последний ответ Ноябрь 25, 2014, 10:32:49
от Fanatmb
2 Ответов
1210 Просмотров
Последний ответ Август 07, 2015, 14:24:27
от uritalex
8 Ответов
2322 Просмотров
Последний ответ Октябрь 10, 2015, 16:57:18
от Garrett
1 Ответов
999 Просмотров
Последний ответ Декабрь 03, 2015, 14:33:00
от kvitnitskiy
2 Ответов
2024 Просмотров
Последний ответ Июль 13, 2016, 03:03:52
от rafaga
7 Ответов
4008 Просмотров
Последний ответ Ноябрь 29, 2018, 14:15:27
от AndreyImmax
2 Ответов
571 Просмотров
Последний ответ Апрель 24, 2017, 00:30:11
от Atomica
1 Ответов
274 Просмотров
Последний ответ Апрель 06, 2018, 15:02:46
от Vovsla
2 Ответов
115 Просмотров
Последний ответ Октябрь 11, 2018, 14:44:41
от Werwolfik