Страница 1 из 1
Как добавить кнопку с функцией элемента контекстного меню
Добавлено: Чт май 29, 2014 15:06
megab00m
Вопрос такой. Поставил тут на днях Win 8.1 и порадовала меня возможность трансляции потокового видео на подключенный по локалке ТВ - отличная замена глючному HomeMediaSErver. И есть в контекстном меню проводника пунктик Play To.
Вопрос!=) Как сделать на панели инструментов кнопочку, чтобы при перетаскивании на нее видео файла запускался медиаплеер в режиме потокового воспроизведения?
Добавлено: Чт май 29, 2014 15:32
MVV
Посмотри, какая программа запускается по этому пунктику, добавь её на панель. Посмотреть можно или в диспетчере задач во время воспроизведения, или в реестре: в разделе HKCR\*.ext смотришь название ассоциированного типа (ext - твоё расширение видеофайла), затем в разделе с названием этого типа в подразделе shell ищешь команду, описывающую этот пункт меню, там будет указана командная строка (если, конечно, это не динамически подключаемый пункт меню).
Добавлено: Чт май 29, 2014 16:47
megab00m
Пункт меню появляется только при правом клике по видео-файлу и только когда ТВ включен, т.е. находится по локалке. Наверное динамический - если я правильно понимаю...
http://savepic.net/5633948.jpg
Запускается Windows Media Player вот в таком вот виде
http://savepic.net/5627804.jpg
Блин не дае форум нормально картинки вставить
CaptainFlint: Разблокировал ссылки.
Добавлено: Чт май 29, 2014 17:08
MVV
Да, пункт динамический, даже подпункт. Пробуй через Process Explorer / Process Hacker посмотреть командную строку запуска плейера, какие параметры ему передаются?
Добавлено: Чт май 29, 2014 18:57
Serge Yolkin
Из скрипта можно непосредственно пункт меню вызвать, но решение может зависеть от конкретной системы. Чисто для примера:
Код: Выделить всё
var
f=new ActiveXObject('Scripting.FileSystemObject'),
s=new ActiveXObject('Shell.Application'),
a=s.nameSpace(f.getParentFolderName(WScript.arguments(0))),
v=a.parseName(f.getFileName(WScript.arguments(0))).verbs();
if(a!=null){
if(v!=null){
i=-1;
while(v.item(++i))
if(v.item(i).name.toLowerCase().replace(/\&/,'')=='play to'){
v.item(i).DoIt();
break;
}
}
}
Полное имя файла передаётся аргументом.
Добавлено: Чт май 29, 2014 21:06
Flasher
Serge Yolkin
А зачем перебирать в цикле, если есть InvokeVerb?
Добавлено: Пт май 30, 2014 00:03
megab00m
ээээ... а вот как нить попроще... без кодинга, скриптинга и прочего рукоблудия?=)
Добавлено: Пт май 30, 2014 01:32
Flasher
Проще за деньги. Дал денег, открыл доступ к удалёнке через экран, а сам пошёл лузгать семки.
Добавлено: Пт май 30, 2014 01:47
Serge Yolkin
Flasher
А с инвоком какая-то засада была. ЕМНИП, в какой-то винде имя надо было указывать с амперсандом в нужном месте, а в другой - без. Точно не помню, но пример для себя храню именно с циклом и вырезанием амперсанда, ежели он есть.
Добавлено: Пт май 30, 2014 01:54
Flasher
Serge Yolkin
Учтём'c.
Добавлено: Пт май 30, 2014 08:52
megab00m
Flasher писал(а):Проще за деньги. Дал денег, открыл доступ к удалёнке через экран, а сам пошёл лузгать семки.
не совсем понятно. кому, сколько и главное за что надо давать денег, чтобы МОЙ телевизор показывал МОИ видео-файлы с МОЕГО компьютера?
Если у Вас есть какие-то конкретные предложения - озвучьте, нет - не стоит умничать.
Добавлено: Пт май 30, 2014 09:02
Flasher
megab00m
Это я так остроумничаю. Как ни странно, своя лень нередко порождает чужую. Коль самому 'рукоблудием' заниматься нет желания, то почему им должны на халяву заниматься за кого-то другие?
И предложений выше было недостаточно? Что было сделано в их направлении? На вопрос MVV о комстроке мы ответ увидели?
Добавлено: Пт май 30, 2014 19:24
megab00m
Flasher
эээ... ну вобщем-то мне не не жизненно необходимо сделать эту кнопку. Я думал, что может быть существует какой-то универсальный способ вытащить пункт контекстного меню на панель. Ну на нет и суда нет. Или кто-то делал что-то подобное и имеет готовое решение.
Ну чтож... Еще один минус в копилку ТК.
Топик можно закрывать.
ЗЫ. Если честно, то вот такие гуру в любых форумах рунета вызывают раздражение как минимум. Если вы не можете дать простое решение на заданный вопрос, то зачем сразу разгибать пальцы как павлиний хвост, втирать что-то про порождающую лень etc,...
Не буду больше ничего говорить, ибо не о чем и не за чем.
Добавлено: Пт май 30, 2014 19:37
Flasher
megab00m
Неужели до сих пор неясно, что готовое решение (возможно, более простое, хотя чего там и так сложного?) может возникнуть после того, как запрашивающая сторона начнёт реагировать на конкретные заданные вопросы и предложения, сделанные выше?
Так вот реальное раздражение прежде всего вызывает такая бестолковая демагогия на фоне безучастия в решении поставленной задачи.
P.S.: Мало кто захочет помогать тому, кто не хочет помочь себе сам.