Notice: This forum has been recovered from an old backup, so some content, links, and dates may be outdated. The forum is currently read-only while we restore sign-in and registration functionality. Details
If you find this forum valuable and would like to help keep it online, donations to help cover hosting and domain costs are greatly appreciated, but never expected. You can support the forum through Buy Me a Coffee or Ko-fi. Thank you for helping preserve the EventGhost community.
If you find this forum valuable and would like to help keep it online, donations to help cover hosting and domain costs are greatly appreciated, but never expected. You can support the forum through Buy Me a Coffee or Ko-fi. Thank you for helping preserve the EventGhost community.
FindWindow wie ist der richtige Aufruf?
FindWindow wie ist der richtige Aufruf?
Der Name des App ist MyTheatre Class Name ist TDVBMainForm und MyTheatre.exe der exe Name.
Ich m├Âchte das f├╝r ein Plugin verwenden.
Also so: hMedia = FindWindow(" was muß hier stehen? ", None)
Milbrot
Ich m├Âchte das f├╝r ein Plugin verwenden.
Also so: hMedia = FindWindow(" was muß hier stehen? ", None)
Milbrot
- Bitmonster
- Site Admin
- Posts: 2239
- Joined: Mon Feb 06, 2006 10:28 pm
win32gui.FindWindow sucht nach ClassName und WindowName. Die EXE wird dabei nicht berücksichtigt. In dem Fall wäre der Aufruf also:
hMedia = win32gui.FindWindow("TDVBMainForm", None)
wenn man nicht auch nach dem Titel suchen will. Falls der Titel auch bekannt ist und sich nicht verändert kann man auch den in die Suche reinnehmen mit:
hMedia = win32gui.FindWindow("TDVBMainForm", "MyTheatre")
Die FindWindow-Funktion von EG ist noch wesentlich ausgefeilter, weil sie z.B. auch die EXE mit einbezieht. Die Verwendung in einem Plugin ist aber auch etwas aufwendiger.
hMedia = win32gui.FindWindow("TDVBMainForm", None)
wenn man nicht auch nach dem Titel suchen will. Falls der Titel auch bekannt ist und sich nicht verändert kann man auch den in die Suche reinnehmen mit:
hMedia = win32gui.FindWindow("TDVBMainForm", "MyTheatre")
Die FindWindow-Funktion von EG ist noch wesentlich ausgefeilter, weil sie z.B. auch die EXE mit einbezieht. Die Verwendung in einem Plugin ist aber auch etwas aufwendiger.
Hm irgendwie läuft das nicht er findet anscheinend das Fenster nicht.
Ich habe das Plugin von MediaPlayerClassic verwendet und abgeändert,
leider bekomme ich immer die Meldung "MyTheatre not running"
woran k├Ânnte das liegen?
Das ganze hab ich so gemacht:
Ich habe das Plugin von MediaPlayerClassic verwendet und abgeändert,
leider bekomme ich immer die Meldung "MyTheatre not running"
woran k├Ânnte das liegen?
Das ganze hab ich so gemacht:
Code: Select all
CommonList = (
('num_0', 'num_0', 2399142008),
('num_1', 'num_1', 2399142009),
('num_2', 'num_2', 2399142010),
('num_3', 'num_3', 2399142011),
('num_4', 'num_4', 2399142012),
('num_5', 'num_5', 2399142013),
('num_6', 'num_6', 2399142014),
('num_7', 'num_7', 2399142015),
('num_8', 'num_8', 2399142016),
('num_9', 'num_9', 2399142017),
('pause/continue', 'pause/continue', 2399141991),
('fast_forward', 'fast_forward', 2399141990),
('rewind', 'fast_forward', 2399141989),
('vol_up', 'vol_up', 2399141993),
('vol_down', 'vol_down', 2399141992),
('mute', 'mute', 2399141994),
('sleep_timer', 'sleep_timer', 2399142001),
('fullscreen', 'fullscreen', 2399141995),
('OSD_info', 'OSD_info', 2399141996),
('DVD/file_to_live', 'DVD/file_to_live', 2399141997),
('live_to_DVD/file', 'live_to_DVD/file', 2399141998),
('OSD_menu', 'OSD_menu', 2399142000),
('optimize_for_widescreen', 'optimize_for_widescreen', 2399142022),
('cancel', 'cancel', 2399142087),
('exit_program', 'exit_program', 2399141999),
('pause/continue', 'pause/continue', 2399142019),
('fast_forward', 'fast_forward', 2399142020),
('fav1', 'fav1', 2399142021),
('fav2', 'fav2', 2399141993),
('fav3', 'fav3', 2399141992),
('open_file', 'open_file', 2399142023),
('sleep_timer_setup', 'sleep_timer_setup', 2399142024),
('best_fit', 'best_fit', 2399142025),
('stay_on_top_toggle', 'stay_on_top_toggle', 2399142026),
('show_on_primary_monitor', 'show_on_primary_monitor', 2399142027),
('settings', 'settings', 2399142028),
('background_mode_toggle', 'background_mode_toggle', 2399142029),
)
LiveList =(
('side_ch_list_toggle', 'side_ch_list_toggle', 2399142089),
('osd_fav_ch_list_toggle', 'osd_fav_ch_list_toggle', 2399142090),
('last', 'last', 2399142091),
('record', 'record', 2399142092),
('goto_rec_position', 'goto_rec_position', 2399142098),
('inc_speed', 'inc_speed', 2399142101),
('dec_speed', 'dec_speed', 2399142102),
('epg_window', 'epg_window', 2399142093),
('epg_osd', 'epg_osd', 2399142099),
('next_fav_ch', 'next_fav_ch', 2399142095),
('prev_fav_ch', 'prev_fav_ch', 2399142094),
('next_enum_ch', 'next_enum_ch', 2399141997),
('prev_enum_ch', 'prev_enum_ch', 2399141996),
('show_stream_info', 'show_stream_info', 2399142100),
('video_toggle', 'video_toggle', 2399142103),
('ivr/generic', 'ivr/generic', 2399142104),
('auto_pid', 'auto_pid', 2399142105),
('audio_ab', 'audio_ab', 2399142106),
('subtitles', 'subtitles', 2399142107),
('rec_timer_window', 'rec_timer_window', 2399142108),
('open_scheduler', 'open_scheduler', 2399142109),
('pid_grabber', 'pid_grabber', 2399142111),
('pid_list', 'pid_list', 2399142112),
('pid_statistic', 'pid_statistic', 2399142113),
('LNB_settings', 'LNB_settings', 2399142114),
('positioner_console', 'positioner_console', 2399142115),
('ci_console', 'ci_console', 2399142116),
)
FileList = (
('side_file_list', 'side_file_list', 2399142189),
('osd_file_list', 'osd_file_list', 2399142190),
('next_file', 'next_file', 2399142192),
('prev_file', 'prev_file', 2399142191),
)
DVDList = (
('dvd_subtitles', 'dvd_subtitles', 2399142291),
('next_chap', 'next_chap', 2399142293),
('prev_chap', 'prev_chap', 2399142292),
('osd_chap_list', 'osd_chap_list', 2399142294),
('chap_list', 'chap_list', 2399142290),
('dvd_menu', 'dvd_menu', 2399142289),
('dvd_move_up', 'dvd_move_up', 2399142295),
('dvd_move_dn', 'dvd_move_dn', 2399142296),
('dvd_move_left', 'dvd_move_left', 2399142297),
('dvd_move_right', 'dvd_move_right', 2399142298),
('dvd_select', 'dvd_select', 2399142299),
)
OSDList = (
('osd_up', 'dvd_subtitles', 2399142389),
('osd_dn', 'osd_dn', 2399142390),
('osd_left', 'osd_left', 2399142391),
('osd_right', 'osd_right', 2399142392),
('cat_up', 'cat_up', 2399142393),
('cat_down', 'cat_down', 2399142394),
('select', 'select', 2399142395),
('event_info', 'event_info', 2399142397),
)
SideList = (
('side_ch_file_up', 'side_ch_file_up', 2399142489),
('side_ch_file_down', 'side_ch_file_down', 2399142490),
('side_ch_file_select', 'side_ch_file_select', 2399142491),
('side_ch_file_delete', 'side_ch_file_delete', 2399142492),
('side_ch_file_sat', 'side_ch_file_sat', 2399142493),
('side_ch_file_prov', 'side_ch_file_prov', 2399142494),
('side_ch_file_provid', 'side_ch_file_provid', 2399142495),
('side_ch_file_transp', 'side_ch_file_transp', 2399142496),
('side_ch_file_fav', 'side_ch_file_fav', 2399142497),
('side_ch_file_all', 'side_ch_file_all', 2399142497),
)
EPGList = (
('epg_win_up', 'epg_win_up', 2399142589),
('epg_win_down', 'epg_win_down', 2399142590),
('epg_win_pgup', 'epg_win_pgup', 2399142591),
('epg_win_pgdn', 'epg_win_pgdn', 2399142592),
('epg_win_chup', 'epg_win_chup', 2399142593),
('epg_win_chdown', 'epg_win_chdown', 2399142594),
('epg_win_select', 'epg_win_select', 2399142595),
('epg_win_shedule', 'epg_win_shedule', 2399142596),
('epg_win_all/now/next', 'epg_win_all/now/next', 2399142597),
)
PresetsList = (
('preset1', 'preset1', 2399142689),
('preset2', 'preset2', 2399142690),
('preset3', 'preset3', 2399142691),
('preset4', 'preset4', 2399142692),
('preset5', 'preset5', 2399142693),
('preset6', 'preset6', 2399142694),
)
PluginsList = (
('plugin_up', 'plugin_up', 2399142789),
('plugin_down', 'plugin_down', 2399142790),
('plugin_left', 'plugin_left', 2399142791),
('plugin_right', 'plugin_right', 2399142792),
('plugin_pgup', 'plugin_pgup', 2399142793),
('plugin_pgdown', 'plugin_pgdown', 2399142794),
('plugin_select', 'plugin_select', 2399142795),
('plugin_altsel', 'plugin_altsel', 2399142796),
('plugin_cancel', 'plugin_cancel', 2399142797),
('plugin_tab', 'plugin_tab', 2399142798),
)
import eg
from win32gui import FindWindow
from win32api import SendMessage
from win32con import WM_COMMAND
class MyTheatreClassic(eg.PluginClass):
def __init__(self):
def makeActions(group_name, fn_list):
subGroup = self.AddGroup(group_name)
for tmp_name, tmp_description, tmp_value in fn_list:
class tmp_action(eg.ActionClass):
name = tmp_description
description = tmp_description
value = tmp_value
def __call__(self):
try:
hMedia = win32gui.FindWindow("TDVBMainForm", "MyTheatre")
PostMessage(hMedia, 3025, self.value, 0)
except:
eg.PrintError("MyTheatre not running")
tmp_action.__name__ = tmp_name
subGroup.AddAction(tmp_action)
makeActions('Common functions', CommonList)
makeActions('Live mode functions', LiveList)
makeActions('File mode', FileList)
makeActions('DVD mode', DVDList)
makeActions('OSD', OSDList)
makeActions('Side channel/file list functions', SideList)
makeActions('EPG window mode', EPGList)
makeActions('Presets', PresetsList)
makeActions('Plugins', PluginsList)
Last edited by Milbrot on Wed Aug 09, 2006 1:14 pm, edited 1 time in total.
- Bitmonster
- Site Admin
- Posts: 2239
- Joined: Mon Feb 06, 2006 10:28 pm
- Bitmonster
- Site Admin
- Posts: 2239
- Joined: Mon Feb 06, 2006 10:28 pm
Ok, da sind gleich eine Reihe von Problemen. Zuerst solltest du mal diesen Teil:
umschreiben, damit du die eigentlichen Fehlermeldungen kriegst:
Dann passt der win32gui.FindWindow nicht zu deinem import. Es muss in dem Fall also nur "FindWindow" ohne "win32gui." heißen.
Und dann hast du PostMessage gar nicht importiert, sondern nur SendMessage. Zudem ist das win32api.PostMessage mit dem gleichen Bug versehen, den du auch schon in dem anderen Thread gefunden hast. Daf├╝r kannst du es mal so versuchen:
Statt:
from win32api import SendMessage
nimmst du:
from eg.WinAPI.win32types import PostMessage
Code: Select all
def __call__(self):
try:
hMedia = win32gui.FindWindow("TDVBMainForm", "MyTheatre")
PostMessage(hMedia, 3025, self.value, 0)
except:
eg.PrintError("MyTheatre not running")
Code: Select all
def __call__(self):
#try:
hMedia = win32gui.FindWindow("TDVBMainForm", "MyTheatre")
PostMessage(hMedia, 3025, self.value, 0)
#except:
# eg.PrintError("MyTheatre not running")
Und dann hast du PostMessage gar nicht importiert, sondern nur SendMessage. Zudem ist das win32api.PostMessage mit dem gleichen Bug versehen, den du auch schon in dem anderen Thread gefunden hast. Daf├╝r kannst du es mal so versuchen:
Statt:
from win32api import SendMessage
nimmst du:
from eg.WinAPI.win32types import PostMessage
Das geänderte Plugin läuft schaut nun so aus:
Gruß Milbrot
Code: Select all
CommonList = (
('num_0', 'num_0', 2399142008),
('num_1', 'num_1', 2399142009),
('num_2', 'num_2', 2399142010),
('num_3', 'num_3', 2399142011),
('num_4', 'num_4', 2399142012),
('num_5', 'num_5', 2399142013),
('num_6', 'num_6', 2399142014),
('num_7', 'num_7', 2399142015),
('num_8', 'num_8', 2399142016),
('num_9', 'num_9', 2399142017),
('pause/continue', 'pause/continue', 2399141991),
('fast_forward', 'fast_forward', 2399141990),
('rewind', 'fast_forward', 2399141989),
('vol_up', 'vol_up', 2399141993),
('vol_down', 'vol_down', 2399141992),
('mute', 'mute', 2399141994),
('sleep_timer', 'sleep_timer', 2399142001),
('fullscreen', 'fullscreen', 2399141995),
('OSD_info', 'OSD_info', 2399141996),
('DVD/file_to_live', 'DVD/file_to_live', 2399141997),
('live_to_DVD/file', 'live_to_DVD/file', 2399141998),
('OSD_menu', 'OSD_menu', 2399142000),
('optimize_for_widescreen', 'optimize_for_widescreen', 2399142022),
('cancel', 'cancel', 2399142087),
('exit_program', 'exit_program', 2399141999),
('pause/continue', 'pause/continue', 2399142019),
('fast_forward', 'fast_forward', 2399142020),
('fav1', 'fav1', 2399142021),
('fav2', 'fav2', 2399141993),
('fav3', 'fav3', 2399141992),
('open_file', 'open_file', 2399142023),
('sleep_timer_setup', 'sleep_timer_setup', 2399142024),
('best_fit', 'best_fit', 2399142025),
('stay_on_top_toggle', 'stay_on_top_toggle', 2399142026),
('show_on_primary_monitor', 'show_on_primary_monitor', 2399142027),
('settings', 'settings', 2399142028),
('background_mode_toggle', 'background_mode_toggle', 2399142029),
)
LiveList =(
('side_ch_list_toggle', 'side_ch_list_toggle', 2399142089),
('osd_fav_ch_list_toggle', 'osd_fav_ch_list_toggle', 2399142090),
('last', 'last', 2399142091),
('record', 'record', 2399142092),
('goto_rec_position', 'goto_rec_position', 2399142098),
('inc_speed', 'inc_speed', 2399142101),
('dec_speed', 'dec_speed', 2399142102),
('epg_window', 'epg_window', 2399142093),
('epg_osd', 'epg_osd', 2399142099),
('next_fav_ch', 'next_fav_ch', 2399142095),
('prev_fav_ch', 'prev_fav_ch', 2399142094),
('next_enum_ch', 'next_enum_ch', 2399141997),
('prev_enum_ch', 'prev_enum_ch', 2399141996),
('show_stream_info', 'show_stream_info', 2399142100),
('video_toggle', 'video_toggle', 2399142103),
('ivr/generic', 'ivr/generic', 2399142104),
('auto_pid', 'auto_pid', 2399142105),
('audio_ab', 'audio_ab', 2399142106),
('subtitles', 'subtitles', 2399142107),
('rec_timer_window', 'rec_timer_window', 2399142108),
('open_scheduler', 'open_scheduler', 2399142109),
('pid_grabber', 'pid_grabber', 2399142111),
('pid_list', 'pid_list', 2399142112),
('pid_statistic', 'pid_statistic', 2399142113),
('LNB_settings', 'LNB_settings', 2399142114),
('positioner_console', 'positioner_console', 2399142115),
('ci_console', 'ci_console', 2399142116),
)
FileList = (
('side_file_list', 'side_file_list', 2399142189),
('osd_file_list', 'osd_file_list', 2399142190),
('next_file', 'next_file', 2399142192),
('prev_file', 'prev_file', 2399142191),
)
DVDList = (
('dvd_subtitles', 'dvd_subtitles', 2399142291),
('next_chap', 'next_chap', 2399142293),
('prev_chap', 'prev_chap', 2399142292),
('osd_chap_list', 'osd_chap_list', 2399142294),
('chap_list', 'chap_list', 2399142290),
('dvd_menu', 'dvd_menu', 2399142289),
('dvd_move_up', 'dvd_move_up', 2399142295),
('dvd_move_dn', 'dvd_move_dn', 2399142296),
('dvd_move_left', 'dvd_move_left', 2399142297),
('dvd_move_right', 'dvd_move_right', 2399142298),
('dvd_select', 'dvd_select', 2399142299),
)
OSDList = (
('osd_up', 'dvd_subtitles', 2399142389),
('osd_dn', 'osd_dn', 2399142390),
('osd_left', 'osd_left', 2399142391),
('osd_right', 'osd_right', 2399142392),
('cat_up', 'cat_up', 2399142393),
('cat_down', 'cat_down', 2399142394),
('select', 'select', 2399142395),
('event_info', 'event_info', 2399142397),
)
SideList = (
('side_ch_file_up', 'side_ch_file_up', 2399142489),
('side_ch_file_down', 'side_ch_file_down', 2399142490),
('side_ch_file_select', 'side_ch_file_select', 2399142491),
('side_ch_file_delete', 'side_ch_file_delete', 2399142492),
('side_ch_file_sat', 'side_ch_file_sat', 2399142493),
('side_ch_file_prov', 'side_ch_file_prov', 2399142494),
('side_ch_file_provid', 'side_ch_file_provid', 2399142495),
('side_ch_file_transp', 'side_ch_file_transp', 2399142496),
('side_ch_file_fav', 'side_ch_file_fav', 2399142497),
('side_ch_file_all', 'side_ch_file_all', 2399142497),
)
EPGList = (
('epg_win_up', 'epg_win_up', 2399142589),
('epg_win_down', 'epg_win_down', 2399142590),
('epg_win_pgup', 'epg_win_pgup', 2399142591),
('epg_win_pgdn', 'epg_win_pgdn', 2399142592),
('epg_win_chup', 'epg_win_chup', 2399142593),
('epg_win_chdown', 'epg_win_chdown', 2399142594),
('epg_win_select', 'epg_win_select', 2399142595),
('epg_win_shedule', 'epg_win_shedule', 2399142596),
('epg_win_all/now/next', 'epg_win_all/now/next', 2399142597),
)
PresetsList = (
('preset1', 'preset1', 2399142689),
('preset2', 'preset2', 2399142690),
('preset3', 'preset3', 2399142691),
('preset4', 'preset4', 2399142692),
('preset5', 'preset5', 2399142693),
('preset6', 'preset6', 2399142694),
)
PluginsList = (
('plugin_up', 'plugin_up', 2399142789),
('plugin_down', 'plugin_down', 2399142790),
('plugin_left', 'plugin_left', 2399142791),
('plugin_right', 'plugin_right', 2399142792),
('plugin_pgup', 'plugin_pgup', 2399142793),
('plugin_pgdown', 'plugin_pgdown', 2399142794),
('plugin_select', 'plugin_select', 2399142795),
('plugin_altsel', 'plugin_altsel', 2399142796),
('plugin_cancel', 'plugin_cancel', 2399142797),
('plugin_tab', 'plugin_tab', 2399142798),
)
import eg
from win32gui import FindWindow
from eg.WinAPI.win32types import PostMessage
from win32con import WM_COMMAND
class MyTheatreClassic(eg.PluginClass):
def __init__(self):
def makeActions(group_name, fn_list):
subGroup = self.AddGroup(group_name)
for tmp_name, tmp_description, tmp_value in fn_list:
class tmp_action(eg.ActionClass):
name = tmp_description
description = tmp_description
value = tmp_value
def __call__(self):
try:
hMedia = FindWindow("TDVBMainForm", "MyTheatre")
PostMessage(hMedia, 3025, self.value, 0)
except:
eg.PrintError("MyTheatre not running")
tmp_action.__name__ = tmp_name
subGroup.AddAction(tmp_action)
makeActions('Common functions', CommonList)
makeActions('Live mode functions', LiveList)
makeActions('File mode', FileList)
makeActions('DVD mode', DVDList)
makeActions('OSD', OSDList)
makeActions('Side channel/file list functions', SideList)
makeActions('EPG window mode', EPGList)
makeActions('Presets', PresetsList)
makeActions('Plugins', PluginsList)- Bitmonster
- Site Admin
- Posts: 2239
- Joined: Mon Feb 06, 2006 10:28 pm
Ok, eine Sache ist mir noch aufgefallen:
('side_ch_file_fav', 'side_ch_file_fav', 2399142497),
('side_ch_file_all', 'side_ch_file_all', 2399142497),
Da steht zweimal die gleiche Nummer. Tippfehler?
Und dann hätte ich da noch einen Wunsch, damit ich das Plugin gleich mit aufnehmen kann. Ist aber ein ziemliche Fleißarbeit:
Mache mal vier Datenfelder in den Listen.
1. Der Python-Klassenname. Der sollte "Camel-Case" sein und außer Buchstaben und Zahlen nichts enthalten. Also z.B. "Num0", "OptimizeForWidescreen", etc.
2. Der Aktions-Name. Der kann Leerschritte, Sonderzeichen, etc. enthalten. Das ist der Name unter dem der User die Aktion sieht. Also z.B. "Number 0", "Optimize for widescreen", etc.
3. Ein Beschreibungs-String. Das ist die Hilfe die der User zu der Aktion bekommt. Wenn dir nichts einfällt, dann nimm für das Feld einfach None.
4. Das Zahlenparameter.
Ich schreib dir gleich mal den Source um, damit er diese Parameterform nimmt.
('side_ch_file_fav', 'side_ch_file_fav', 2399142497),
('side_ch_file_all', 'side_ch_file_all', 2399142497),
Da steht zweimal die gleiche Nummer. Tippfehler?
Und dann hätte ich da noch einen Wunsch, damit ich das Plugin gleich mit aufnehmen kann. Ist aber ein ziemliche Fleißarbeit:
Mache mal vier Datenfelder in den Listen.
1. Der Python-Klassenname. Der sollte "Camel-Case" sein und außer Buchstaben und Zahlen nichts enthalten. Also z.B. "Num0", "OptimizeForWidescreen", etc.
2. Der Aktions-Name. Der kann Leerschritte, Sonderzeichen, etc. enthalten. Das ist der Name unter dem der User die Aktion sieht. Also z.B. "Number 0", "Optimize for widescreen", etc.
3. Ein Beschreibungs-String. Das ist die Hilfe die der User zu der Aktion bekommt. Wenn dir nichts einfällt, dann nimm für das Feld einfach None.
4. Das Zahlenparameter.
Ich schreib dir gleich mal den Source um, damit er diese Parameterform nimmt.
- Bitmonster
- Site Admin
- Posts: 2239
- Joined: Mon Feb 06, 2006 10:28 pm
Code: Select all
class MyTheatreClassic(eg.PluginClass):
def __init__(self):
def makeActions(group_name, fn_list):
subGroup = self.AddGroup(group_name)
for tmp_classname, tmp_name, tmp_description, tmp_value in fn_list:
if tmp_description is None:
tmp_description = tmp_name
class tmp_action(eg.ActionClass):
name = tmp_name
description = tmp_description
value = tmp_value
def __call__(self):
try:
hMedia = FindWindow("TDVBMainForm", "MyTheatre")
PostMessage(hMedia, 3025, self.value, 0)
except:
eg.PrintError("MyTheatre not running")
tmp_action.__name__ = tmp_classname
subGroup.AddAction(tmp_action)
makeActions('Common functions', CommonList)
makeActions('Live mode functions', LiveList)
makeActions('File mode', FileList)
makeActions('DVD mode', DVDList)
makeActions('OSD', OSDList)
makeActions('Side channel/file list functions', SideList)
makeActions('EPG window mode', EPGList)
makeActions('Presets', PresetsList)
makeActions('Plugins', PluginsList)Code: Select all
PresetsList = (
('Preset1', 'Preset 1', None, 2399142689),
('Preset2', 'Preset 2', None, 2399142690),
('Preset3', 'Preset 3', None, 2399142691),
('Preset4', 'Preset 4', None, 2399142692),
('Preset5', 'Preset 5', None, 2399142693),
('Preset6', 'Preset 6', None, 2399142694),
)
Mit dem neuen Code gibt es ein Fehlermeldung beim laden des Plugins
Traceback (most recent call last):
File "C:\Programme\EventGhost\eg\PluginTools.py", line 132, in CreatePluginInstance
File "plugins/MyTheatre/__init__.py", line 200, in __init__
File "plugins/MyTheatre/__init__.py", line 180, in makeActions
ValueError: need more than 3 values to unpack
Error loading plugin: MyTheatre
Traceback (most recent call last):
File "C:\Programme\EventGhost\eg\PluginTools.py", line 132, in CreatePluginInstance
File "plugins/MyTheatre/__init__.py", line 200, in __init__
File "plugins/MyTheatre/__init__.py", line 180, in makeActions
ValueError: need more than 3 values to unpack
Error loading plugin: MyTheatre
- Bitmonster
- Site Admin
- Posts: 2239
- Joined: Mon Feb 06, 2006 10:28 pm
Genau das war es.
Wie k├Ânnte ich es machen f├╝r das App gleich
eine Startfunktion in das Plugin einzubauen?
Es gibt 3 M├Âglichkeiten das App zu starten:
Live = C:\Programme\MyTheatre\MTStart.exe /toggle
File = C:\Programme\MyTheatre\MTStart.exe /remote F10
DVD = C:\Programme\MyTheatre\MTStart.exe /dvd
Wie k├Ânnte ich es machen f├╝r das App gleich
eine Startfunktion in das Plugin einzubauen?
Es gibt 3 M├Âglichkeiten das App zu starten:
Live = C:\Programme\MyTheatre\MTStart.exe /toggle
File = C:\Programme\MyTheatre\MTStart.exe /remote F10
DVD = C:\Programme\MyTheatre\MTStart.exe /dvd
- Bitmonster
- Site Admin
- Posts: 2239
- Joined: Mon Feb 06, 2006 10:28 pm
Eine M├Âglichkeit ist z.B.:
Wobei man das Verzeichnis des Programmes nach M├Âglichkeit aus der Registry lesen sollte. Dazu kannst du dir mal das Foobar2000-Plugin ansehen.
Code: Select all
from win32api import ShellExecute
ShellExecute(0, None, "MTStart.exe", "/dvd", "C:\\Programme\\MyTheatre", 0)Leider komme ich da nicht weiter.
Ich glaub ich verstehe nicht ganz wie die Funktion in das bestehende
Plugin einzubinden ist. Wie das ausehen muß damit es ausgeführt wird.
Objektorientierte Programmierung scheint nicht einfach.
Wenn ich das wenigstens debuggen k├Ânnte um zu sehen was falsch l├ñuft
aber leider bekomme ich mit PythonWin nur "ImportError: No module named eg".
Ich habe auch nichts dar├╝ber gefunden. Es w├ñre fein wenn du das genauer beschreiben k├Ânntest.
Ich glaub ich verstehe nicht ganz wie die Funktion in das bestehende
Plugin einzubinden ist. Wie das ausehen muß damit es ausgeführt wird.
Objektorientierte Programmierung scheint nicht einfach.
Wenn ich das wenigstens debuggen k├Ânnte um zu sehen was falsch l├ñuft
aber leider bekomme ich mit PythonWin nur "ImportError: No module named eg".
Ich habe auch nichts dar├╝ber gefunden. Es w├ñre fein wenn du das genauer beschreiben k├Ânntest.
- Bitmonster
- Site Admin
- Posts: 2239
- Joined: Mon Feb 06, 2006 10:28 pm