I've been working with integrating BeyondTV into XLobby for several months now, and I've learned a few things along the way. (Maybe I did this because I was too cheap to BeyondMedia, or maybe because I found Mediaplayer Classic was better at viewing wirelessly-networked video on my client laptop than BTV-Link. Mostly because I'm a tinkerer at heart.)

I've also put together a skin that mimics BTV's interface to increase the WAF. But don't ask me to post it, because most of the images come from Snapstream (look in "C:\Program Files\SnapStream Media\Beyond TV 3\FSMedia\Images"), and the rest from Colby. Anyway, here are my tips:

* Don't bother with the "exclusivefs" mode, once you switch active windows (including xmovewindow) it goes back to "windowed".

* Speaking of xmovewindow, I don't use it because there are no documented API commands. If someone wants to reverse-engineer these (spy or girder?), please post! Still not the best solution, because in my experience an undocumented API tends to change with the new versions.

* In BTV, I setup multiple recording folders (e.g. "Sports", "Dramas", "Kids" etc.) and select the appropriate folder when I select a show to record. Necessary step if you want some hiearchy to your shows (and easier for me than setting up DB filtering in my Xlobby skin).

database=videos
display=%name% %month%-%day%-%year%
layout=nocover default
(folders get two little dashes after them, but its more readable than plain old file names)

* BTV prevents any screen-saver or power-saver from coming on when the ViewScape is open, no way to override it. I added a timer event to shutdown the ViewScape at 2am (we're always asleep by then) so power-saver can kick in overnight. The "/closegui" switch does the trick.

* Once you're in BTV there's no shortcut back to Xlobby, so my trick uses my ATI RemoteWonder. I just map the "A" button to switch to Xlobby, and the "B" button to switch to BeyondTV using cmdow:

http://www.commandline.co.uk/cmdow/A button: "c:\tools\cmdow.exe "xlobby" /ACT"
B button: "C:\Program Files\SnapStream Media\Beyond TV 3\BTVD3DShell.exe" (only one BTV GUI can run at a time, so you just call the executable and the GUI comes up, whether it's running or not)

* My laptop is a Xlobby fat client, so although the skin is the same between the server and client, you have to go in and change the directory of the "execute file" commands for BTV:

* For example, set wParam = 32 (that's the space bar), now you've got a Xlobby event that pauses BeyondTV. By the way, this method will work for any program that can be controlled by keyboard shortcuts.

* If you wanted to be really picky, you ought to send a WM_KEYDOWN, wait 100ms, then a WM_KEYUP to simulate a real key press. BTV doesn't seem to wait for the key up, so I didn't bother with that in my skin. (It might be necessary if your app had a shift+key combination.)

Below is my events code for BeyondTV control. Now I don't have to worry about switching focus between XL and BTV in my skin, plus now I can create a PPC remote skin to control BTV. Now I just need to find the time to finish the skin!

What I did was:
I created a TV page - linked from the main menu
Used XMoveWindow and linked it to BTV
Created some buttons - Go to Recorded Shows/Go to Live TV/Go to TV Guide/Make BTV window fullscreen
Created a script to display my upcoming recordings and their info
Created another script to toggle between xlobby and BTV so I can control both with the remote and still be able to use the buttons in the BTV GUI.