- May 16, 2008
- 11,418
- 2,335
- Home Country
- Germany
Can you post a screenshot? Maybe I am looking at the wrong place.It shows for me with that theme.
Can you post a screenshot? Maybe I am looking at the wrong place.It shows for me with that theme.
What do you mean? You mean it should not be visible if there is no disc in the drive? How would you eject the tray to put in a disc?After ejecting in Explorer the menu entry is still visible. Is this how you designed it?
There are two types of drives. Tray and slot ones. The former always have an eject button, the latter don’t.How would you eject the tray to put in a disc?
I can't see the difference from code, so I always assume it's a slot one.The former always have an eject button, the latter don’t.
That's how it should work. If Windows tells me there's an optical drive I set the action visible.PC has a disc drive - eject command in menu
PC has no drive - no eject command
TryExecuteAction with your changes works, the disc is ejecting from OSDTry with my latest changes.
[2020-01-05 19:16:45,691] [37934 ] [44 ] [ERROR] - ApplicationLauncher: Unhandled exception in application
System.Runtime.InteropServices.InvalidComObjectException: Ein COM-Objekt, das vom zugrunde liegenden RCW getrennt wurde, kann nicht verwendet werden.
bei System.StubHelpers.StubHelpers.GetCOMIPFromRCW(Object objSrc, IntPtr pCPCMD, IntPtr& ppTarget, Boolean& pfNeedsRelease)
bei DirectShow.IMediaSeeking.GetRate(Double& pdRate)
bei MediaPortal.UI.Players.Video.BaseDXPlayer.get_PlaybackRate()
bei MediaPortal.UI.Players.Video.BaseDXPlayer.get_IsPlayingAtNormalRate()
bei MediaPortal.UI.Players.Video.BaseDXPlayer.get_IsSeeking()
bei MediaPortal.UI.Services.Players.PlayerContext.get_PlaybackState() in C:\Users\ge230\Documents\Mediaportal 2\Git_WIP2.3\MediaPortal\Source\Core\MediaPortal.UI\Services\Players\PlayerContext.cs:Zeile 231.
bei MediaPortal.Plugins.WifiRemote.Messages.MessageStatus.get_IsPaused() in C:\Users\ge230\Documents\Mediaportal 2\Git_WIP2.3\MediaPortal\Incubator\WifiRemote\Messages\MessageStatus.cs:Zeile 72.
bei MediaPortal.Plugins.WifiRemote.Messages.MessageStatus.IsChanged() in C:\Users\ge230\Documents\Mediaportal 2\Git_WIP2.3\MediaPortal\Incubator\WifiRemote\Messages\MessageStatus.cs:Zeile 151.
bei MediaPortal.Plugins.WifiRemote.Messages.StatusUpdater.DoStatusUpdate() in C:\Users\ge230\Documents\Mediaportal 2\Git_WIP2.3\MediaPortal\Incubator\WifiRemote\Messages\StatusUpdater.cs:Zeile 61.
bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Threading.ThreadHelper.ThreadStart()
Is this dynamic? I ejected the drive in Explorer parallel to the running client app and the menu entry was still displayed. If it’s not dynamic I just need to restart the client. And indeed after that the entry is gone.That's how it should work. If Windows tells me there's an optical drive I set the action visible.
I did not design it for virtual drives but for physical ones. How do you imagine the scenario you describe would happen on a living room HTPC? What should trigger the creation and removal of virtual drives?Good solution if you are looking for absolute perfection you would need to register the respective Windows event of creation and removal of drives.