Jump to content

COM Interface: Action 16382 (Minimize)


mrphlox

Recommended Posts

Hallo

 

wie von nuts in diesem Thread schon aufgezeigt, funktioniert die Action 'WindowMinimize' im EventGhost DVBViewer Plugin seit ein paar DVBViewer Versionen nicht mehr.

 

Bin der Sache ein wenig nachgegangen und habe dabei herausgefunden:

  • Sobald man einen EventHandler für die DVBViewer Events installiert, funktioniert Action 16382 (Minimize) nicht mehr. Lässt man den EventHandler weg, funktionierts.
  • Es spielt keine Rolle, ob ein EG Plugin oder eine andere Anwendung den EventHandler installiert: Auch mit dem 'DVBVSpy' Programm (Members Area) lässt sich der Fehler reproduzieren. Sobald DVBVSpy läuft, ist 'DVBViewer.exe -x16382' wirkungslos. Das heisst auch, dass der Fehler nichts mit dem EG Plugin zu tun hat. (Getestet unter W7-32bit)

@Lars & Christian: Jetzt seid Ihr wieder einmal gefragt :) Wäre natürlich super, wenn Ihr Euch das mal anschauen und im nächsten Release fixen könntet.

 

Danke und Gruss

Link to comment

Ist diese Beschreibung des IDVBViewerEvents Interfaces eigentlich noch aktuell?

Vielleicht hat ja nur das Interface ein wenig geändert...

 

Methods
procedure onAction(ActionID: Integer); 
procedure onAddRecord(ID: Integer); 
procedure OnChannelChange(ChannelNr: Integer); 
procedure onControlChange(WindowID: Integer; ControlID: Integer); 
procedure onDVBVClose; 
procedure onEndRecord; 
procedure onOSDWindow(WindowID: Integer); 
procedure OnPlaybackEnd; 
procedure onPlaybackstart; 
procedure onPlaylist(const Filename: WideString); 
procedure OnPlaystatechange(RendererType: TRendererTyp; State: TPlaystates); 
procedure onRDS(const RDS: WideString); 
procedure onSelectedItemChange; 
procedure onStartRecord(ID: Integer); 

Link to comment

Ich hab das gerade nochmal überprüft und kann die Beobachtung von mrphlox bestätigen.

Sobald ein Eventhandler registriert wird (darauf muss man erstmal kommen :D - gut gemacht!) funktioniert die Action 16382 (Minimize) nicht mehr.

 

edit\ Super! Danke Lars & mrphlox :bye:

Edited by nuts
Link to comment

Also mal ganz ehrlich. Ich weiss zwar woran das liegt und habe einen weg gefunden das problem sicher (=ohne nebenwirkungen) zu beheben, aber warum es überhaupt auftritt ist mir ein absolutes rätzel. :blink:

Link to comment

Bestätigt und ich hab den grund gefunden. Ist gefixed.

wow, das ging ja blitzschnell!! Vielen Dank!!

 

edit\ Super! Danke Lars & mrphlox :bye:

Du hast - vlt unwissentlich - selbst den wichtigsten Beitrag geliefert: dank deinem 'DVBViewer simple' Plugin, wo das Problem ja nicht auftritt, und ZappoB's Hinweis darauf, war es nur noch etwas Fleissarbeit, die Ursache zu finden :rolleyes:

Link to comment

Also auf den Zusammenhang mit dem Eventhandler wäre ich nie gekommen. :bounce:

 

Aber schön zu sehen, dass du auch am orginal DVBViewer-Plugin dran bist!

Ich hätte da auch noch eine Anmerkung:

 

Ist es wirklich unproblematisch

"win32com.client.EnsureDispatch" bzw. "win32com.client.Dispatch" zu verwenden?

Ich hab die win32com nun nicht näher untersucht, aber Lars hat schon öfters erwähnt, dass die Verbindung zum DVBViewer nicht mit CreateObject (dem entspricht das doch oder?) hergestellt werden sollte.

Deshalb verwende ich in meinem Plugin: "win32com.client.GetObject"

Link to comment
  • 3 weeks later...

erst mal sorry für die späte Antwort - ich hatte in den letzten Wochen schlicht keine Zeit, mich diesem Hobby zu widmen.

Aber schön zu sehen, dass du auch am orginal DVBViewer-Plugin dran bist!

Nun ja, im Moment backe ich da nur ganz kleine Brötchen, mein Zeitbudget lässt derzeit nicht mehr zu...

 

Ist es wirklich unproblematisch

"win32com.client.EnsureDispatch" bzw. "win32com.client.Dispatch" zu verwenden?

Ich hab die win32com nun nicht näher untersucht, aber Lars hat schon öfters erwähnt, dass die Verbindung zum DVBViewer nicht mit CreateObject (dem entspricht das doch oder?) hergestellt werden sollte.

Muss ich mir mal genauer anschauen. Aus bisheriger Beobachtung (als Anwender des DVBViewer Plugins) würde ich sagen: solange DVBViewer über die Kommandozeile gestartet wurde, ist es unproblematisch, mit "win32com.client.EnsureDispatch" bzw. "win32com.client.Dispatch" auf das COM Api zu connecten. Ich habe aber auch schon bemerkt, dass wenn DVBViewer indirekt aus EG über das COM API gestartet wurde, dass er anschliessend nicht richtig funktioniert, z.B. geht der OSD Hintergrund bei mir verloren.

 

In der Prio noch weiter oben sehe ich jedoch den (u.a. auch von dir) schon beschriebenen Bug, dass nach einem provizierten Absturz des DVBViewers EG komplett hängt und der EG Prozess abgeschossen werden muss. Das werde ich mir als nächstes mal anschauen, vielleicht ist es eine Kleinigkeit, z.B. ein Deadlock im Thread Handling.

Link to comment

Ich habe aber auch schon bemerkt, dass wenn DVBViewer indirekt aus EG über das COM API gestartet wurde, dass er anschliessend nicht richtig funktioniert, z.B. geht der OSD Hintergrund bei mir verloren.

Genau das meinte ich.

Link to comment
  • 4 years later...

Hallo Community,

 

nach einem Update auf DVBViewer 5.6.4.0 tritt das Problem mit EventGhost 0.4.1r1722 wieder auf.

 

>> Das Event "DVBViewer.Action:16382"

 

ergibt im DVBViewer-Plugin den Fehler:

 

>> DVBViewer: WindowMinimize (Plugin-Fehler)

 

Mit DVBViewer 5.3.1 und identischem EventGhost trat das Problem nicht auf. Hat jemand eine Idee / Lösung ?

 

mfg galaxy7

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...