Jump to content

Frage an den / die Entwickler


Recommended Posts

Hallo,

 

ich benutze ein von mir gebasteltes Programm zum steuern von DVBViewer. Zur Ansteuerung meiner Hardware (TT-budget S2-3200) benutze ich das von TechnoTrend gelieferte SDK.

 

Bei mir ist folgender Effekt zu beobachten.

 

Ich kann DVBViewer ohne Probleme über SendMessage(...) ansteuern. Sobald ich aber ein OSD-Menü (über die Taste (OSD-Blue)) öffne nimmt meine Anwendung keine IR-Aktivitäten von der Karte mehr an.

Nachdem ich das Menü über die ESC-Taste schließe funktioniert alles wieder.

 

Ich kann diese Menüs also nicht mit der FB ansteuern.

 

Kann es sein, dass beim öffnen dieser Menüs ein zusätzliches Callback registriert wird und das von meiner Anwendung "stört"? Falls ja, ist es möglich dieses Verhalten abzuschalten?

 

MfG

Isch

Link to comment

Ich denke mit SendMessage bzw. PostMessage hat mein Problem nichts zu tun.

 

Wie schon beschrieben: Wenn ich die besagten Menüs öffne, bekommt mein Programm (TTRemoteTray) keine Infos mehr von der TV-Karte.

 

Ich bräuchte wirklichn nur eine kurze Info, ob ich mit meiner Vermutung richtig liege oder nicht.

Link to comment

Nunja, wenn Du es sowieso besser weisst, braucht ich Dir ja nicht zu helfen... Ich hab den Kram ja nur geschrieben (und 90% der inputplugins), also was weiss ich schon... :)

Link to comment

Du MUSST PostMessage nehmen.

Der erste sendmessage call um das menü zu öffnen blockiert solange bis das menü geschlossen wird (modal). Daher kommt dort nichts weiter durch.

Postmessage is asynchron und der Viewer/Windows kümmern sich darum, das die korrekt verarbeitet werden. Das hätte Dir ein kurzer test nach meinem ersten Post schon gezeigt :)

Link to comment
  • 3 months later...

Hallo,

 

ich schaffe es einfach nicht, DVBViewer über PostMessage anzusteuern. Hier mein Ansatz in VB.NET:

 

Dim Handle As IntPtr = FindWindow("TfrmMain", "DVBViewer")

If Handle = 0 Then MsgBox("Not found") : Exit Sub

PostMessage(Handle, WM_DVBVIEWER, WM_REMOTE, 106)

PostMessage(Process.GetProcessesByName("DVBViewer")(0).MainWindowHandle, WM_DVBVIEWER, WM_REMOTE, 106)

 

Leider interessiert sich DVBViewer nicht im geringsten für den Befehl. Ich schicke 106 = 6 + 100 in der Erwartung, dass er sich schließt.

Auch andere Funktionen funktionieren nicht. Wie man sieht habe ich zwei Möglichkeiten das Fenster zu erkennen - beide liefern das jeweils korrekte Handle, keins der Fenster springt auf den Befehl an.

 

Vielen Dank für eure Hilfe

Philipp

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...