Isch003 Posted June 1, 2008 Share Posted June 1, 2008 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 Quote Link to comment
Lars_MQ Posted June 1, 2008 Share Posted June 1, 2008 probier mal postmessage, das ist viel besser dafür. Quote Link to comment
Isch003 Posted June 1, 2008 Author Share Posted June 1, 2008 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. Quote Link to comment
Lars_MQ Posted June 1, 2008 Share Posted June 1, 2008 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... Quote Link to comment
Isch003 Posted June 1, 2008 Author Share Posted June 1, 2008 Also so war das nicht gemeint... Kannst du mir eine Antwort auf meine Frage(n) geben? Quote Link to comment
Lars_MQ Posted June 1, 2008 Share Posted June 1, 2008 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 Quote Link to comment
Isch003 Posted June 1, 2008 Author Share Posted June 1, 2008 So ich hab jetzt PostMessage benutzt. Und siehe da... Es funktioniert. Nunja danke für die schnelle Hilfe. MfG Isch Quote Link to comment
Battlesoft Posted October 1, 2008 Share Posted October 1, 2008 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 Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.