Автор Тема: Определение пути файла, запущенного в проигрывателе VLC  (Прочитано 386 раз)

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

Эта тема содержит сообщение, помеченное как лучший ответ. Кликните здесь для перехода к этому сообщению.

Оффлайн Visors [?]

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

Есть такая программа - проигрыватель VLC.
Известен адрес процесса этой запущенной программы.
Но как узнать адрес видео-файла, который проигрывается в настоящий момент времени - непонятно.

Скажите - как это можно сделать скриптом autoit ?
(Как скриптом autohotkey - узнать адрес видеофайла, который проигрывается в VLC в настоящий момент времени)
В самой программе VLC - это вкладка "Инструменты" - "Информация о медиафайле" - "Расположение".

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


Оффлайн Visors [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Подскажите - возможно ли вытащить полный путь проигрываемого файла из VLC при помощи autoit ?

Оффлайн Glass4217 [?]

  • Новичок
  • *
  • Сообщений: 48
  • Репутация: 3
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Я могу предложить, получить заголовок окна VLC... в моем случае это "11-31 мая 2018.avi - Медиапроигрыватель VLC"
Код: AutoIt [Выделить]
WinGetTitle ("- Медиапроигрыватель VLC")

после для получения только имени файла "11-31 мая 2018.avi" используем
Код: AutoIt [Выделить]
StringRegExpReplace ( "11-31 мая 2018.avi - Медиапроигрыватель VLC", "- Медиапроигрыватель VLC", "")

и произвести поиск файла по всем дискам в системе.
с поиском файла поможет эта статья http://autoit-script.ru/index.php?topic=315.0
Попробуйте, возможно вам подойдет.
« Последнее редактирование: Май 21, 2019, 09:09:37 от Glass4217 »
Нам разум дал  стальные руки-крюки.

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


Оффлайн Visors [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Glass4217
Да вы правы, наверное это решение подойдет.

Нашел по указанной вами ссылке - такой скрипт:
Код: AutoIt [Выделить]
#include <Array.au3>

$aReturn = _FileSearch(@DesktopDir, "*.txt;*.htm")
_ArrayDisplay($aReturn)

;$iFlag = 0 - Файлы и папки (по умолчанию)
;$iFlag = 1 - Только файлы
;$iFlag = 2 - Только папки
Func _FileSearch($sPath, $sFileMask, $iFlag = 0)
    Local $sOutBin, $sOut, $aOut, $sRead, $hDir, $sAttrib
   
    Switch $iFlag
        Case 1
            $sAttrib = ' /A-D'
        Case 2
            $sAttrib = ' /AD'
        Case Else
            $sAttrib = ' /A'
    EndSwitch
   
    $sOut = StringToBinary('0' & @CRLF, 2)
    $aMasks = StringSplit($sFileMask, ';')
   
    For $i = 1 To $aMasks[0]
        $hDir = Run(@ComSpec & ' /U /C DIR "' & $sPath & '\' & $aMasks[$i] & '" /S /B' & $sAttrib, @SystemDir, @SW_HIDE, 6)
       
        While 1
            $sRead = StdoutRead($hDir, False, True)
           
            If @error Then
                ExitLoop
            EndIf
           
            If $sRead <> "" Then
                $sOut &= $sRead
            EndIf
        Wend
    Next
   
    $aOut = StringRegExp(BinaryToString($sOut, 2), '[^\r\n]+', 3)
   
    If @error Then
        Return SetError(1)
    EndIf
   
    $aOut[0] = UBound($aOut)-1
    Return $aOut
EndFunc

 


А куда в нем добавить эти строчки, чтобы он через msgbox выдал полный путь (нужен только поиск в "C:\видео файлы") ?

Код: AutoIt [Выделить]
WinGetTitle ("- Медиапроигрыватель VLC")

и
Код: AutoIt [Выделить]
StringRegExpReplace ( "11-31 мая 2018.avi - Медиапроигрыватель VLC", "- Медиапроигрыватель VLC", "")



Помечен как лучший ответ пользователем Visors Отправлен Май 22, 2019, 04:26:50

Оффлайн Glass4217 [?]

  • Новичок
  • *
  • Сообщений: 48
  • Репутация: 3
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
вы пошли по сложному пути, вам более подходит первое сообщение из поста
вот работающий скрипт

Код: AutoIt [Выделить]
#Include <File.au3>
#include <Array.au3>
Opt("WinTitleMatchMode", 2)
$sTitle = WinGetTitle (" - Медиапроигрыватель VLC")
$sFilename = StringRegExpReplace ($sTitle, " - Медиапроигрыватель VLC", "")
$sCatalog = "c:\видео файлы"

_FindFiles($sCatalog, $sFilename)

Func _FindFiles($sRoot, $sFile)
    Local $FileList
    $FileList = _FileListToArray($sRoot, $sFile, 1)
    If Not @error Then
        For $i = 1 To $FileList[0]
;~             ConsoleWrite($sRoot & '\' & $FileList[$i] & @CR)
            MsgBox(0, "Полный путь к файлу", $sRoot & '\' & $FileList[$i] & @CR)
        Next
    EndIf
    $FileList = _FileListToArray($sRoot, '*', 2)
    If Not @error Then
        For $i = 1 To $FileList[0]
            _FindFiles($sRoot & '\' & $FileList[$i], $sFile)
        Next
    EndIf
EndFunc   ;==>_FindFiles

« Последнее редактирование: Май 22, 2019, 02:57:27 от Glass4217 »

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


Оффлайн Visors [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Glass4217
Спасибо. Теперь все работает.

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


 

Похожие темы

  Тема / Автор Ответов Последний ответ
3 Ответов
3101 Просмотров
Последний ответ Декабрь 24, 2011, 16:53:07
от Garrett
4 Ответов
2334 Просмотров
Последний ответ Октябрь 24, 2014, 16:58:40
от InnI
2 Ответов
1205 Просмотров
Последний ответ Февраль 26, 2015, 15:02:29
от firex
3 Ответов
2065 Просмотров
Последний ответ Июнь 10, 2015, 11:22:57
от kotugopese
0 Ответов
748 Просмотров
Последний ответ Февраль 18, 2016, 08:30:08
от sokolovska
8 Ответов
3829 Просмотров
Последний ответ Июнь 10, 2016, 06:38:18
от Grx-Lin
3 Ответов
311 Просмотров
Последний ответ Июль 22, 2018, 13:15:03
от joiner
0 Ответов
155 Просмотров
Последний ответ Ноябрь 12, 2018, 15:20:41
от VUBlack
2 Ответов
503 Просмотров
Последний ответ Декабрь 13, 2018, 13:31:36
от mikzin
0 Ответов
199 Просмотров
Последний ответ Май 28, 2019, 14:16:01
от RipVanWinkel