![]() |
|
![]() |
#1 |
Member
Регистрация: 14.01.2010
Адрес: Екатеринбург сити
Сообщений: 33
|
![]()
Эта статья или копя HOW-TO руководства подготовлена Нельсоном Минаром. Это статья была отформатирована или изменена несколько раз.
XBMC Python Scripting Tutorial Заметим, что эта статья была написана для простоты понимания, в виду этого, опытных разработчиков Python может раздражать, насколько это все просто, примитивно описанное ниже, но этот учебник был написан не для них. Python не змей. Некоторые основные правила - будьте внимательны со змеёй! Некоторые функции добавляются со временем, и поэтому, мы очень советуем вам, иметь самую последнюю версию XBMC, иначе некоторые Python-скрипты могут не работать. Чтобы запустить скрипт нужно зайти в установки параметров XBMC, так что идите туда, чтобы запустить скрипт. При запуске скрипта, рядом с именем скрипта, появляется пометка “running”. Если во время работы скрипта, кликнуть по ней – выполнение скрипта остановится (зависит от скина, в большинстве скинов не успеваешь увидеть этот “running”). После того как выполнение остановлено, вы можете посмотреть отладочную информацию, нажав белую кнопку X-Pad (X-Pad это джойстик Xbox. На компьютере отладочную информацию можно посмотреть, выделив правой кнопкой мыши скрипт и в выпадающем меню выбрать «Показать отладочные данные»). Вам может потребоваться доступ в Интернет, чтобы запустить некоторые скрипты, поэтому настройте XBMC правильно и не забудьте изменить название сервера (a.k.a. DNS) для разрешения (поддержки) доменных имен. Всегда следите за поведением змеи. Вы должны знать, Python-кодирование основано на отступах. Поэтому нет необходимости в скобках {}, чтобы объявить о начале и конце функции, класса, if ... Всё является объектом. Очень изящно, но мудрёно для начинающих! Переменная считается локальной, пока вы не объявите её глобальной. Но это будет понятнее в учебной литературе. Целью этого документа является не изучение Python, так что я просто рекомендую вам прочитать документацию на www.python.org. Управление Этот HOWTO (как делать) предполагает, что вы используете X-Pad (джойстик) Xbox. При другом способе управления (например: клавиатура, XBOX DVD Remote, и т.д.) информацию можно найти в Глобальном Управлении (General Navigation). Начинается настоящая работа В XBMC только две библиотеки: xbmc и xbmcgui. Обе они для интерфейса и для клавиатуры. Python –код выделен голубым цветом(в переводе подписано: код). Я объясню только скрипты для GUI - графического интерфейса, так как консольные скрипты работают без xbmc библиотеки. Окно Поэтому первое, что нужно сделать это импорт библиотек: Код:
import xbmc, xbmcgui Код:
class MyClass(xbmcgui.Window): print 'hello world' Код:
mydisplay = MyClass() mydisplay .doModal() del mydisplay Кнопка X-Pad (pad button) Итак, теперь мы должны организовать должным образом выход из класса. Поэтому мы будем использовать X-Pad для этого. Вот полный код: Вставьте, не форматируя код, отсюда Код:
import xbmc, xbmcgui # actioncodes получить из keymap.xml ACTION_PREVIOUS_MENU = 10 class MyClass(xbmcgui.Window): def onAction(self, action): if action == ACTION_PREVIOUS_MENU: self.close() mydisplay = MyClass() mydisplay .doModal() del mydisplay # Добавим (или удалим) текстовую метку (Label) Теперь время показать, в созданном нами окне, текст. Мы будем использовать ControlLabel функцию. Эта функция содержит в себе параметры: позиция, цвет, прозрачность и размер шрифта. Ниже блок кода для вывода текста в окно Код:
self.strAction = xbmcgui.ControlLabel(300, 520, 200, 200, ' ', 'font14', '0xFFFFFF00') self.addControl(self.strAction) self.strAction.setLabel('BACK to quit') # Здесь: 300 - координата по оси X а 520 по оси Y, 200 - должно быть размер элемента но кажется он не работает с font14 (шрифт). Font13 также можно обозначить как 0xFFFFFF00, означает цвет и прозрачность закодированные в шеснадцатиричной системе (от 00 до FF), так что читайте это как 0xTTRRGGBB где Т и обозначает прозрачность. R (red)- это красные, G (grin)- зеленый и как вы догадались B (blue) - это голубой. Сейчас мы добавим этот код к предыдущему и выведем на экран покажем это благодаря кнопке А на X-Pad. (используй Enter на клавиатуре). Код:
import xbmc, xbmcgui #get actioncodes from keymap.xml ACTION_PREVIOUS_MENU = 10 ACTION_SELECT_ITEM = 7 class MyClass(xbmcgui.Window): def onAction(self, action): if action == ACTION_PREVIOUS_MENU: self.close() if action == ACTION_SELECT_ITEM: self.strAction = xbmcgui.ControlLabel(300, 200, 200, 200, '', 'font14', '0xFF00FF00') self.addControl(self.strAction) self.strAction.setLabel('Hello world') mydisplay = MyClass() mydisplay .doModal() del mydisplay Вы должны понять, надпись-метка является элементом окна, и поэтому мы смогли добавить её, но мы также можем удалить её с помощью removeControl. Мы будем использовать кнопку B на X-Pad (BackSpace на клавиатуре), чтобы удалить надпись : Код:
import xbmc, xbmcgui #get actioncodes from keymap.xml ACTION_PREVIOUS_MENU = 10 ACTION_SELECT_ITEM = 7 ACTION_PARENT_DIR = 9 class MyClass(xbmcgui.Window): def onAction(self, action): if action == ACTION_PREVIOUS_MENU: self.close() if action == ACTION_SELECT_ITEM: self.strAction = xbmcgui.ControlLabel(300, 200, 200, 200, '', 'font14', '0xFF00FF00') self.addControl(self.strAction) self.strAction.setLabel('Hello world') if action == ACTION_PARENT_DIR: self.removeControl(self.strAction) mydisplay = MyClass() mydisplay .doModal() del mydisplay # Код:
import xbmc, xbmcgui #get actioncodes from keymap.xml ACTION_PREVIOUS_MENU = 10 ACTION_SELECT_ITEM = 7 class MyClass(xbmcgui.Window): def __init__(self): self.strActionInfo = xbmcgui.ControlLabel(100, 120, 200, 200, '', 'font13', '0xFFFF00FF') self.addControl(self.strActionInfo) self.strActionInfo.setLabel('Push BACK to quit - A to reset text') self.strActionFade = xbmcgui.ControlFadeLabel(200, 300, 200, 200, 'font13', '0xFFFFFF00') self.addControl(self.strActionFade) self.strActionFade.addLabel('This is a fade label') def onAction(self, action): if action == ACTION_PREVIOUS_MENU: self.close() if action == ACTION_SELECT_ITEM: self.strActionFade.reset() mydisplay = MyClass() mydisplay .doModal() del mydisplay Когда класс 'MyClass' запущен, мы можем добавить элементы, которые будут выполняться при инициализации класса. Так вот, он идеально подходит, чтобы положить некоторое фоновое изображение или текст, которые всегда видны на экране. Добавим его в инициализации функции: Код:
import xbmc, xbmcgui #get actioncodes from keymap.xml ACTION_PREVIOUS_MENU = 10 ACTION_SELECT_ITEM = 7 ACTION_PARENT_DIR = 9 class MyClass(xbmcgui.Window): def __init__(self): self.strActionInfo = xbmcgui.ControlLabel(100, 120, 200, 200, '', 'font13', '0xFFFF00FF') self.addControl(self.strActionInfo) self.strActionInfo.setLabel('Push BACK to quit, A to display text and B to erase it') def onAction(self, action): if action == ACTION_PREVIOUS_MENU: self.close() if action == ACTION_SELECT_ITEM: self.strAction = xbmcgui.ControlLabel(300, 200, 200, 200, '', 'font14', '0xFF00FF00') self.addControl(self.strAction) self.strAction.setLabel('Hello world') if action == ACTION_PARENT_DIR: self.removeControl(self.strAction) mydisplay = MyClass() mydisplay .doModal() del mydisplay Код:
def __init__(self): self.addControl(xbmcgui.ControlImage(0,0,800,600, 'background.png')) self.strActionInfo = xbmcgui.ControlLabel(100, 120, 200, 200, '', 'font13', '0xFFFF00FF') self.addControl(self.strActionInfo) self.strActionInfo.setLabel('Push BACK to quit, A to display text and B to erase it') # ![]() Диалоговое окно Что такое dialog box (диалоговое окно)? И так, создадим функцию для добавления dialog box: Код:
def message(self): dialog = xbmcgui.Dialog() dialog.ok(" My message title", " This is a nice message ") # Код:
import xbmc, xbmcgui #get actioncodes from keymap.xml ACTION_PREVIOUS_MENU = 10 ACTION_SELECT_ITEM = 7 class MyClass(xbmcgui.Window): def __init__(self): self.strActionInfo = xbmcgui.ControlLabel(100, 120, 200, 200, '', 'font13', '0xFFFF00FF') self.addControl(self.strActionInfo) self.strActionInfo.setLabel('Push BACK') def onAction(self, action): if action == ACTION_PREVIOUS_MENU: self.close() if action == ACTION_SELECT_ITEM: self.message() def message(self): dialog = xbmcgui.Dialog() dialog.ok(" My message title", " This is a nice message ") mydisplay = MyClass() mydisplay .doModal() del mydisplay Вы также можете использовать функцию message в более общем виде: Код:
import xbmc, xbmcgui #get actioncodes from keymap.xml ACTION_PREVIOUS_MENU = 10 ACTION_SELECT_ITEM = 7 class MyClass(xbmcgui.Window): def __init__(self): self.strActionInfo = xbmcgui.ControlLabel(100, 120, 200, 200, '', 'font13', '0xFFFF00FF') self.addControl(self.strActionInfo) self.strActionInfo.setLabel('Push BACK') def onAction(self, action): if action == ACTION_PREVIOUS_MENU: self.message('goodbye') self.close() if action == ACTION_SELECT_ITEM: self.message('youpushed A ') def message(self, message): dialog = xbmcgui.Dialog() dialog.ok(" My message title", message) mydisplay = MyClass() mydisplay .doModal() del mydisplay ![]() Очень часто используют Yes/No диалог бокс: Код:
import xbmc, xbmcgui #get actioncodes from keymap.xml ACTION_PREVIOUS_MENU = 10 class MyClass(xbmcgui.Window): def __init__(self): self.strActionInfo = xbmcgui.ControlLabel(100, 120, 200, 200, '', 'font13', '0xFFFF00FF') self.addControl(self.strActionInfo) self.strActionInfo.setLabel('Push BACK') def onAction(self, action): if action == ACTION_PREVIOUS_MENU: self.goodbye() def goodbye(self): dialog = xbmcgui.Dialog() if dialog.yesno("message", "do you want to leave?"): self.close() mydisplay = MyClass() mydisplay .doModal() del mydisplay Пришло время создать кнопку! Мы будем использовать функцию ControlButton. Она содержит в себе 5 аргументов. xbmcgui.ControlButton (350, 500, 80, 30, "Hello"). Где 350- координата Х, 500- координата Y, 80-ширина, 30- высота и последнее в кавычках -текст на кнопке. Сначала мы должны создать кнопку, и установить на неё фокус. Код:
self.button0 = xbmcgui.ControlButton(350, 500, 80, 30, "HELLO") self.addControl(self.button0) self.setFocus(self.button0) # Код:
def onControl(self, control): if control == self.button0: print 'button pushed' Код:
self.removeControl(self.button0) Код:
import xbmc, xbmcgui #get actioncodes from keymap.xml ACTION_PREVIOUS_MENU = 10 class MyClass(xbmcgui.Window): def __init__(self): self.strActionInfo = xbmcgui.ControlLabel(100, 120, 200, 200, '', 'font13', '0xFFFF00FF') self.addControl(self.strActionInfo) self.strActionInfo.setLabel('Push BACK to quit') self.button0 = xbmcgui.ControlButton(350, 500, 80, 30, "HELLO") self.addControl(self.button0) self.setFocus(self.button0) def onAction(self, action): if action == ACTION_PREVIOUS_MENU: self.close() def onControl(self, control): if control == self.button0: self.message('you pushed the button') def message(self, message): dialog = xbmcgui.Dialog() dialog.ok(" My message title", message) mydisplay = MyClass() mydisplay .doModal() del mydisplay Код:
import xbmc, xbmcgui #get actioncodes from keymap.xml ACTION_PREVIOUS_MENU = 10 class MyClass(xbmcgui.Window): def __init__(self): self.strActionInfo = xbmcgui.ControlLabel(100, 120, 200, 200, '', 'font13', '0xFFFF00FF') self.addControl(self.strActionInfo) self.strActionInfo.setLabel('Push BACK to quit') self.button0 = xbmcgui.ControlButton(250, 100, 80, 30, "HELLO") self.addControl(self.button0) self.button1 = xbmcgui.ControlButton(250, 200, 80, 30, "HELLO2") self.addControl(self.button1) self.button2 = xbmcgui.ControlButton(450, 200, 80, 30, "HELLO3") self.addControl(self.button2) self.setFocus(self.button0) self.button0.controlDown(self.button1) self.button1.controlUp(self.button0) self.button1.controlRight(self.button2) self.button2.controlLeft(self.button1) def onAction(self, action): if action == ACTION_PREVIOUS_MENU: self.close() def onControl(self, control): if control == self.button0: self.message('you pushed the 1st button') if control == self.button1: self.message('you pushed the 2nd button') if control == self.button2: self.message('you pushed the 3rd button') def message(self, message): dialog = xbmcgui.Dialog() dialog.ok(" My message title", message) mydisplay = MyClass() mydisplay .doModal() del mydisplay Добавим возможность ввода текста с помощью виртуальной клавиатуры: Код:
import xbmc, xbmcgui #get actioncodes from keymap.xml ACTION_PREVIOUS_MENU = 10 class MyClass(xbmcgui.Window): def __init__(self): self.strActionInfo = xbmcgui.ControlLabel(100, 120, 200, 200, '', 'font13', '0xFFFF00FF') self.addControl(self.strActionInfo) self.strActionInfo.setLabel('Push BACK to quit') self.strActionInfo = xbmcgui.ControlLabel(100, 300, 200, 200, '', 'font13', '0xFFFFFFFF') self.addControl(self.strActionInfo) keyboard = xbmc.Keyboard('mytext') keyboard.doModal() if (keyboard.isConfirmed()): self.strActionInfo.setLabel(keyboard.getText()) else: self.strActionInfo.setLabel('user canceled') def onAction(self, action): if action == ACTION_PREVIOUS_MENU: self.close() mydisplay = MyClass() mydisplay .doModal() del mydisplay С начала апреля, появилась возможность создавать списки в XBMC Python. Нет необходимости говорить больше, ниже пример: Код:
import xbmc, xbmcgui #get actioncodes from keymap.xml ACTION_PREVIOUS_MENU = 10 class MyClass(xbmcgui.Window): def __init__(self): self.strActionInfo = xbmcgui.ControlLabel(250, 80, 200, 200, '', 'font14', '0xFFBBBBFF') self.addControl(self.strActionInfo) self.strActionInfo.setLabel('Push BACK to quit') self.list = xbmcgui.ControlList(200, 150, 300, 400) self.addControl(self.list) self.list.addItem('Item 1') self.list.addItem('Item 2') self.list.addItem('Item 3') self.setFocus(self.list) def onAction(self, action): if action == ACTION_PREVIOUS_MENU: self.close() def onControl(self, control): if control == self.list: item = self.list.getSelectedItem() self.message('You selected : ' + item.getLabel()) def message(self, message): dialog = xbmcgui.Dialog() dialog.ok(" My message title", message) mydisplay = MyClass() mydisplay.doModal() del mydisplay Код:
import xbmc, xbmcgui #get actioncodes from keymap.xml ACTION_PREVIOUS_MENU = 10 class MyClass(xbmcgui.Window): def __init__(self): self.strActionInfo = xbmcgui.ControlLabel(100, 120, 200, 200, '', 'font13', '0xFFFF00FF') self.addControl(self.strActionInfo) self.strActionInfo.setLabel('Push BACK to quit') screenx = self.getWidth() strscreenx = str(screenx) screeny = self.getHeight() strscreeny = str(screeny) self.strActionInfo = xbmcgui.ControlLabel(100, 200, 200, 200, '', 'font13', '0xFFFFFFFF') self.addControl(self.strActionInfo) self.strActionInfo.setLabel('screen width is ' + strscreenx) self.strActionInfo = xbmcgui.ControlLabel(100, 300, 200, 200, '', 'font13', '0xFFFFFFFF') self.addControl(self.strActionInfo) self.strActionInfo.setLabel('screen height is ' + strscreeny) def onAction(self, action): if action == ACTION_PREVIOUS_MENU: self.close() mydisplay = MyClass() mydisplay .doModal() del mydisplay Это информация может быть полезна для написания международного скрипта. GetLocalizedString была добавлена 6 апреля 2004. Она читает информацию из XML language файла. И в этом случае удобно использовать новый способ вызова функции: mydisplay.localinfos (). Функция localinfos () вызывается так, что вы можете думать только о том, как будет отображаться информация... За исключением класса MyClass, так как функция инициализации MyClass, обрабатываются и выводятся в первую очередь. Код:
import xbmc, xbmcgui #get actioncodes from keymap.xml ACTION_PREVIOUS_MENU = 10 class MyClass(xbmcgui.Window): def __init__(self): self.strActionInfo = xbmcgui.ControlLabel(250, 80, 200, 200, '', 'font14', '0xFFBBBBFF') self.addControl(self.strActionInfo) self.strActionInfo.setLabel('Push BACK to quit') def onAction(self, action): if action == ACTION_PREVIOUS_MENU: self.close() def localinfos(self): localtxt1 = xbmc.getLocalizedString(10000) localtxt2 = xbmc.getLocalizedString(10004) self.strActionInfo = xbmcgui.ControlLabel(100, 200, 200, 200, '', 'font13', '0xFFFFFFFF') self.addControl(self.strActionInfo) self.strActionInfo.setLabel('Text using your xml language file : ' + localtxt1 + ' , ' + localtxt2 ) myskin = xbmc.getSkinDir() self.strActionInfo = xbmcgui.ControlLabel(100, 300, 200, 200, '', 'font13', '0xFFFFFFFF') self.addControl(self.strActionInfo) self.strActionInfo.setLabel('Your skin dir is : /skin/' + myskin) mydisplay = MyClass() mydisplay.localinfos() mydisplay .doModal() del mydisplay Это моя первая попытка добавить функцию к библиотеке XBMC Python и я горжусь результатом. Код:
import xbmc, xbmcgui #get actioncodes from keymap.xml ACTION_PREVIOUS_MENU = 10 class MyClass(xbmcgui.Window): def __init__(self): self.strActionInfo = xbmcgui.ControlLabel(250, 60, 200, 200, '', 'font14', '0xFFBBBBFF') self.addControl(self.strActionInfo) self.strActionInfo.setLabel('Push BACK to quit') def onAction(self, action): if action == ACTION_PREVIOUS_MENU: self.close() def localinfos(self): myinfos1 = xbmc.getLanguage() self.strActionInfo = xbmcgui.ControlLabel(100, 150, 200, 200, '', 'font13', '0xFFFFFFFF') self.addControl(self.strActionInfo) self.strActionInfo.setLabel('Your language is : ' + myinfos1) myinfos2 = xbmc.getIPAddress() self.strActionInfo = xbmcgui.ControlLabel(100, 200, 200, 200, '', 'font13', '0xFFFFFFFF') self.addControl(self.strActionInfo) self.strActionInfo.setLabel('Your IP adress is : ' + myinfos2) myinfos3 = xbmc.getDVDState() self.strActionInfo = xbmcgui.ControlLabel(100, 250, 200, 200, '', 'font13', '0xFFFFFFFF') self.addControl(self.strActionInfo) dvdstate = '' if (myinfos3 == 1): dvdstate = 'DRIVE_NOT_READY' if (myinfos3 == 16): dvdstate = 'TRAY_OPEN' if (myinfos3 == 64): dvdstate = 'TRAY_CLOSED_NO_MEDIA' if (myinfos3 == 96): dvdstate = 'TRAY_CLOSED_MEDIA_PRESENT' self.strActionInfo.setLabel('dvd state : ' + dvdstate ) myinfos4 = xbmc.getFreeMem() self.strActionInfo = xbmcgui.ControlLabel(100, 300, 200, 200, '', 'font13', '0xFFFFFFFF') self.addControl(self.strActionInfo) self.strActionInfo.setLabel('free mem : ' + str(myinfos4) + ' Mb') myinfos5 = xbmc.getCpuTemp() self.strActionInfo = xbmcgui.ControlLabel(100, 350, 200, 200, '', 'font13', '0xFFFFFFFF') self.addControl(self.strActionInfo) self.strActionInfo.setLabel('cpu temp : ' + str(myinfos5) ) mydisplay = MyClass() mydisplay.localinfos() mydisplay .doModal() del mydisplay Это всегда удобно, добавить дочернее окно, когда нам не хватает места в главном окне. Таким образом, мы добавим еще один класс, который будет вызываться по нажатию кнопки A на X-PAD. Код:
import xbmc, xbmcgui #get actioncodes from keymap.xml ACTION_PREVIOUS_MENU = 10 ACTION_SELECT_ITEM = 7 class MainClass(xbmcgui.Window): def __init__(self): self.strActionInfo = xbmcgui.ControlLabel(180, 60, 200, 200, '', 'font14', '0xFFBBBBFF') self.addControl(self.strActionInfo) self.strActionInfo.setLabel('Push BACK to quit - A to open another window') self.strActionInfo = xbmcgui.ControlLabel(240, 250, 200, 200, '', 'font13', '0xFFFFFFFF') self.addControl(self.strActionInfo) self.strActionInfo.setLabel('This is the first window') def onAction(self, action): if action == ACTION_PREVIOUS_MENU: self.close() if action == ACTION_SELECT_ITEM: popup = ChildClass() popup .doModal() del popup class ChildClass(xbmcgui.Window): def __init__(self): self.addControl(xbmcgui.ControlImage(0,0,800,600, 'background.png')) self.strActionInfo = xbmcgui.ControlLabel(200, 60, 200, 200, '', 'font14', '0xFFBBFFBB') self.addControl(self.strActionInfo) self.strActionInfo.setLabel('Push BACK to return to the first window') self.strActionInfo = xbmcgui.ControlLabel(240, 200, 200, 200, '', 'font13', '0xFFFFFF99') self.addControl(self.strActionInfo) self.strActionInfo.setLabel('This is the child window') def onAction(self, action): if action == ACTION_PREVIOUS_MENU: self.close() mydisplay = MainClass() mydisplay .doModal() del mydisplay Вот пример того, как легко загрузить файл через HTTP. Try и Except – методы, которые используются для обработки исключений при тестировании (для проверки - как работает кусочек кода в скрипте). Для получения более подробной информации прочитайте документацию по Python. Код:
import xbmc, xbmcgui, urllib #get actioncodes from keymap.xml ACTION_PREVIOUS_MENU = 10 ACTION_SELECT_ITEM = 7 class MyClass(xbmcgui.Window): def __init__(self): self.strActionInfo = xbmcgui.ControlLabel(100, 120, 200, 200, '', 'font13', '0xFFFF00FF') self.addControl(self.strActionInfo) self.strActionInfo.setLabel('Push BACK to quit - A to download') def onAction(self, action): if action == ACTION_PREVIOUS_MENU: self.close() if action == ACTION_SELECT_ITEM: webfile = 'http://www.google.com/images/logo.gif' localfile = 'Q:\\scripts\\logo.gif' self.downloadURL(webfile,localfile) def downloadURL(self,source, destination): try: loc = urllib.URLopener() loc.retrieve(source, destination) self.message('download ok') except: self.message('download failed') def message(self, message): dialog = xbmcgui.Dialog() dialog.ok(" My message title", message) mydisplay = MyClass() mydisplay .doModal() del mydisplay Оригинал статьи http://xbmc.org/wiki/?title=HOW-TO_w...ripts_for_XBMC |
![]() |
![]() |
![]() |
#2 |
Senior Member
Регистрация: 11.12.2009
Адрес: Russia
Сообщений: 2,184
|
![]()
Молодец, спасибо за труды.
|
![]() |
![]() |
![]() |
#3 |
Senior Member
|
![]()
Побольше информативности надо на форуме выкладывать. Dim_OS - первопроходец в этом деле.
__________________
Ubuntu 20.0.х, Kodi next Последний раз редактировалось bigbax; 11.02.2011 в 16:51. |
![]() |
![]() |
![]() |
#4 |
Junior Member
Регистрация: 11.08.2010
Сообщений: 9
|
![]()
Подскажите как (из какого меню/раздела) запустить скрипт в XBMC? Не могу найти
![]() |
![]() |
![]() |
![]() |
#5 |
Senior Member
|
![]()
В Дополнениях XBMC *( программные дополнения) установить Launcher или Executor . После установки в Главное меню -Программы-Launcher . Указываете на скрипт , который хотели запустить.
Или делать в Главное меню ( делается в Home.xml) кнопку с опцией : или проще указать на сам файл запуска нужной проги , к примеру Opera:
__________________
Ubuntu 20.0.х, Kodi next Последний раз редактировалось bigbax; 19.11.2011 в 16:17. |
![]() |
![]() |
![]() |
#6 |
Junior Member
Регистрация: 11.08.2010
Сообщений: 9
|
![]()
Спасибо!
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Регистрация: 13.01.2011
Адрес: Саратов
Сообщений: 624
|
![]()
Люди добрые подскажите как в питон скрипте правильно прописывать запуск функций из кейборда.хмл хвмс, типа
Код:
ActivateWindow(Videos,MovieTitles) Sleep, 1000 Left Sleep, 1000 Play Код:
os.startfile(r'D:\AutoIt\other\Sound.ahk')
__________________
Windows 7-64 bit, NVidia GTX 570, ХВМС Kodi, Пульт IRLink + AutoHotkey. |
![]() |
![]() |
![]() |
#8 | ||
Senior Member
Регистрация: 12.06.2011
Адрес: Киев
Сообщений: 1,933
|
![]() Цитата:
Цитата:
ЗЫ. Лично я вообще набирают в Гугле на английском "python + (сделать что-то)" и ответ находится в 99% случаев. Вот XBMC, как раз, не тот случай, поскольку документированность плохая.
__________________
Координатор русского перевода Kodi: https://www.transifex.com/projects/p/kodi-main/ ------------------------------ Raspberry PI 2 + LibreELEC 8 (Kodi 17) Samsung Galaxy Tab A 10.1 + Kodi 17 for Android ------------------------------ Читаем и пополняем Википедию форума: http://xbmc.ru/wiki ------------------------------ На любые личные сообщения, не связанные с переводом Kodi, не отвечаю. Для обсуждений и советов есть форум. |
||
![]() |
![]() |
![]() |
#9 | |||||
Senior Member
Регистрация: 13.01.2011
Адрес: Саратов
Сообщений: 624
|
![]()
какой нибудь макрос
Цитата:
Как без питона сделать какой нибудь макрос? Цитата:
![]() Цитата:
Код:
os.startfile(r'D:\AutoIt\other\Sound.ahk') Цитата:
time.sleep(10) Цитата:
![]() з.ы. сейчас запускаю файлы из кейборда с помощью Код:
RunScript(D:\AutoIt\players\XBMC\Test.py) Код:
os.startfile(r'D:\AutoIt\players\XBMC\Test.анк') Код:
System.Exec(D:\AutoIt\players\XBMC\Test.анк)
__________________
Windows 7-64 bit, NVidia GTX 570, ХВМС Kodi, Пульт IRLink + AutoHotkey. Последний раз редактировалось serzh82saratov; 19.07.2012 в 16:23. |
|||||
![]() |
![]() |
![]() |
#10 |
Senior Member
Регистрация: 12.06.2011
Адрес: Киев
Сообщений: 1,933
|
![]()
2 serzh82saratov
Многабукаф, ниасилил. (с) Вы можете человеческим языком написать, чего вы хотите добиться?
__________________
Координатор русского перевода Kodi: https://www.transifex.com/projects/p/kodi-main/ ------------------------------ Raspberry PI 2 + LibreELEC 8 (Kodi 17) Samsung Galaxy Tab A 10.1 + Kodi 17 for Android ------------------------------ Читаем и пополняем Википедию форума: http://xbmc.ru/wiki ------------------------------ На любые личные сообщения, не связанные с переводом Kodi, не отвечаю. Для обсуждений и советов есть форум. |
![]() |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
Опции темы | |
Опции просмотра | |
|
|