Запуск нескольких файлов с автоматическим расположением

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

BezDNaU
Сообщения: 65
Зарегистрирован: Сб май 31, 2008 10:56

Запуск нескольких файлов с автоматическим расположением

Сообщение BezDNaU »

Задача такая:
Запустить выделенные файлы в ассоциированом приложении (например несколько видеофайлов в PotPayer) и автоматически их распределить по рабочему столу в виде мозаики.
Можно ли такое реализовать скриптом или чем еще. ОС Win7.
Заранее всем спасибо.
Аватара пользователя
ask-rus
Сообщения: 2077
Зарегистрирован: Вт ноя 10, 2009 14:06
Откуда: Russian Federation

Сообщение ask-rus »

BezDNaU писал(а):и автоматически их распределить по рабочему столу в виде мозаики.
:shock: Что значит "распределить"? Скопировать на рабочий стол? Перенести? Ярлыки? Мозаика, это как?
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
BezDNaU
Сообщения: 65
Зарегистрирован: Сб май 31, 2008 10:56

Сообщение BezDNaU »

Распределить - равномерно разместить по рабочему столу окна (например 9 окон расположить 3 на 3 окна)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

BezDNaU
На AutoIt намудрить, может, и можно.
А чем панели быстрого запуска не устраивают? Полно же всяких программ аля Winstep Nexus Dock. Зачем на Рабочий стол "гадить"? Ну, чтобы при использовании иконок красиво было, можно, конечно, Stardock Fences и т.п. использовать, но я не совсем понимаю, зачем при наличии ТС, PP, TLB, TrC и т.д. обращаться к Рабочему столу.

Создать ярлыки из выделенного там - не проблема, а вот расположить плиткой... Тут нужна утилита с поддержкой комстроки. В окнах знаю только такую (Pass: serbis.net.ru), но плитку она делать не умеет, только по кругу и выравнивание по сетке, не считая всяких двигающихся извращений. Есть ещё запуск схемы-файла с относительно простым синтаксисом (<имя> <координаты>). Т.е. сперва нужно просмотреть список иконок и потом расписать для каждой в строке положения относительно размеров экрана. Можно, конечно, повозиться с элементарной математикой и написать скрипт, но, ИМХО, лучше попросить автора, чтобы добавил команду. :wink:
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Flasher, ему не ярлыками надо рабочий стол загадить, он неточно выразился. Ему нужно запустить несколько экземпляров программы (например, видеоплейера) и расположить окна этих экземпляров плиткой по экрану.
BezDNaU
Сообщения: 65
Зарегистрирован: Сб май 31, 2008 10:56

Сообщение BezDNaU »

MVV писал(а):Flasher, ему не ярлыками надо рабочий стол загадить, он неточно выразился. Ему нужно запустить несколько экземпляров программы (например, видеоплейера) и расположить окна этих экземпляров плиткой по экрану.
Да именно так. Извините если неточно выразился (но про ярлыки у меня нигде не было написано). Спасибо MVV за правку.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MVV писал(а):расположить окна этих экземпляров плиткой по экрану
А, это другое дело. А то написал сперва про Рабочий стол, что меня и сбило. Можно WinPos подключить.
Аватара пользователя
ask-rus
Сообщения: 2077
Зарегистрирован: Вт ноя 10, 2009 14:06
Откуда: Russian Federation

Сообщение ask-rus »

Когда-то Tol!k упоминал утилиту.
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
BezDNaU
Сообщения: 65
Зарегистрирован: Сб май 31, 2008 10:56

Сообщение BezDNaU »

Частично решил задачу используя Mplayer и такой батник:

Код: Выделить всё

start HideC.exe mplayer.exe -noborder -ontop -loop 0 -shuffle -xy 640 -geometry 0:0 -playlist %~f1
@ping -n 3 localhost > nul
start HideC.exe mplayer.exe -noborder -ontop -loop 0 -shuffle -xy 640 -geometry 640:0 -playlist %~f1
@ping -n 3 localhost > nul
start HideC.exe mplayer.exe -noborder -ontop -loop 0 -shuffle -xy 640 -geometry 1280:0 -playlist %~f1
@ping -n 3 localhost > nul
start HideC.exe mplayer.exe -noborder -ontop -loop 0 -shuffle -xy 640 -geometry 0:350 -playlist %~f1
@ping -n 3 localhost > nul
start HideC.exe mplayer.exe -noborder -ontop -loop 0 -shuffle -xy 640 -geometry 640:350 -playlist %~f1
@ping -n 3 localhost > nul
start HideC.exe mplayer.exe -noborder -ontop -loop 0 -shuffle -xy 640 -geometry 1280:350 -playlist %~f1
@ping -n 3 localhost > nul
start HideC.exe mplayer.exe -noborder -ontop -loop 0 -shuffle -xy 640 -geometry 0:700 -playlist %~f1
@ping -n 3 localhost > nul
start HideC.exe mplayer.exe -noborder -ontop -loop 0 -shuffle -xy 640 -geometry 640:700 -playlist %~f1
@ping -n 3 localhost > nul
start HideC.exe mplayer.exe -noborder -ontop -loop 0 -shuffle -xy 640 -geometry 1280:700 -playlist %~f1
HideC.exe - для скрытия консольного окна. В параметры кнопки ставиться %L.
Решение не самое элегантное и совсем не автоматизированное, в связи с чем просьба к скриптописателям, как нибудь облагородить это дело. Хотелось бы конечно автоматическое определение разрешения монитора и видеокадра, и исходя из этого расчет размера видео (параметр -xy) и его положения на экране (-geometry X:Y).
Спасибо.
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

Код: Выделить всё

@echo off &setlocal enableextensions &chcp 1251 >nul
:: Пример параметров: "%L" 9

set play=start HideC.exe mplayer.exe -noborder -ontop -loop 0 -shuffle -playlist %1
goto :%2

:4
set xy=960
set h=0 960
set v=0 525
goto :play

:9
set xy=640
set h=0 640 1280
set v=0 350 700
goto :play

:16
set xy=480
set h=0 480 960 1440
set v=0 262 525 787
goto :play

:play
for %%v in (%v%) do (
	for %%h in (%h%) do (
		%play% -xy %xy% -geometry %%h:%%v
		ping -n 3 localhost >nul
	)
)
goto :eof
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

BezDNaU
Советую на форумы с AutoIt (1, 2, 3) обратиться, там с этим лучше (без лишних утилит) справятся.
BezDNaU
Сообщения: 65
Зарегистрирован: Сб май 31, 2008 10:56

Сообщение BezDNaU »

Спасибо Tol!k!
Спасибо Flasher за совет.
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

с определением размера экрана

Код: Выделить всё

@echo off &setlocal enableextensions &chcp 1251 >nul
::  http://forum.wincmd.ru/viewpost.php?p=91908
::  Пример параметров: "%L" 3x4

set play=start HideC.exe mplayer.exe -noborder -ontop -loop 0 -shuffle -playlist %1

for /f %%s in (
'wmic DesktopMonitor get ScreenHeight^,ScreenWidth /value ^|find "="'
) do set "%%s"
for /f "tokens=1,2 delims=*xX:хХ/" %%x in ("%~2") do (set /a x=%%x &set /a y=%%y)
set /a Width=ScreenWidth/x &set /a Height=ScreenHeight/y
call :grid %x% %y% &goto :play

:play
for %%v in (%v%) do (
	for %%h in (%h%) do (
		%play% -x %Width% -y %Height% -geometry %%h:%%v
		ping -n 3 localhost >nul
	)
)
goto :eof

:grid
set /a h=v=_=.=0
for /l %%i in (2,1,%1) do (set /a _+=Width &call set "h=%%h%% %%_%%")
for /l %%i in (2,1,%2) do (set /a .+=Height &call set "v=%%v%% %%.%%")
goto :eof
изменён 2ой параметр
BezDNaU
Сообщения: 65
Зарегистрирован: Сб май 31, 2008 10:56

Сообщение BezDNaU »

Вообще супер!!!
Спасибо Tol!k!
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

BezDNaU
Так изначально запрос не касался mplayer. Разве нужно было не что-то универсальное?
Ответить