C# 在桌面背景播放视频,鼠标可以穿透播放器

请问C# 在桌面背景播放视频,鼠标可以穿透播放器怎么实现呀.就是我在全屏播放视频的时候,视频是透明的,在桌面背景播放,不影响我鼠标点击桌面的图标等.桌面的图标不会被全屏的播放器界面所遮挡.
我要的不是哪个软件有这个功能.我是问用C#语言怎么做出这个功能出来呀.

如果播放器是全屏的话,你可以截获播放视频的那个控件的鼠标消息,并把消息发送给桌面,这样就可以实现透过半透明的窗体操作桌面的效果,给你举个例子

这个例子是截获窗体的鼠标消息,你可以换成相应的控件
窗体无边框,大小位置为桌面工作区(不包括任务栏)的大小位置,窗体半透明

using System.Runtime.InteropServices;

[DllImport("user32.dll", EntryPoint = "PostMessage")]
public static extern int PostMessage(IntPtr hwnd, int wMsg, IntPtr wParam, IntPtr lParam);
[DllImport("user32.dll", EntryPoint = "GetWindow")]
public static extern IntPtr GetWindow(IntPtr hwnd, int wCmd);
[DllImport("user32.dll", EntryPoint = "FindWindow")]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
const int WM_MOUSEMOVE = 0x0200;
const int WM_MOUSELEAVE = 0x02A3;
const int WM_SETCURSOR = 0x0020;
const int WM_LBUTTONDOWN = 0x0201;
const int WM_LBUTTONUP = 0x0202;
const int WM_LBUTTONDBLCLK = 0x0203;
const int WM_RBUTTONDOWN = 0x0204;
const int WM_RBUTTONUP = 0x0205;
const int WM_RBUTTONDBLCLK = 0x0206;
const int GW_CHILD = 5;
IntPtr workingAreaHandle;

//获得桌面工作区的句柄
IntPtr GetDesktopListViewHandle()
{
IntPtr hResult;
hResult = FindWindow("ProgMan", null);
hResult = GetWindow(hResult, GW_CHILD);
hResult = GetWindow(hResult, GW_CHILD);
return hResult;
}

private void Form1_Load(object sender, EventArgs e)
{
workingAreaHandle = GetDesktopListViewHandle();
this.FormBorderStyle = FormBorderStyle.None;
this.Location = new Point(0, 0);
this.Size = new Size(Screen.PrimaryScreen.WorkingArea.Width,Screen.PrimaryScreen.WorkingArea.Height);
this.Opacity = 0.5f;
}

protected override void WndProc(ref Message m)
{
if (m.Msg == WM_MOUSEMOVE ||
m.Msg == WM_MOUSELEAVE ||
m.Msg == WM_SETCURSOR ||
m.Msg == WM_LBUTTONDOWN ||
m.Msg == WM_LBUTTONUP ||
m.Msg == WM_LBUTTONDBLCLK ||
m.Msg == WM_RBUTTONDOWN ||
m.Msg == WM_RBUTTONUP ||
m.Msg == WM_RBUTTONDBLCLK)
{
PostMessage(workingAreaHandle, m.Msg, m.WParam, m.LParam);
return;
}
base.WndProc(ref m);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-07-25
TMplayer
第2个回答  2009-07-25
现在有一款软件可以播放视频作为桌面,电脑卖场就有,你去搜索看看

C# 在桌面背景播放视频,鼠标可以穿透播放器
如果播放器是全屏的话,你可以截获播放视频的那个控件的鼠标消息,并把消息发送给桌面,这样就可以实现透过半透明的窗体操作桌面的效果,给你举个例子 这个例子是截获窗体的鼠标消息,你可以换成相应的控件 窗体无边框,大小位置为桌面工作区(不包括任务栏)的大小位置,窗体半透明 using System.Runtime.Inte...

C# win7 x64 如何替换系统自带的桌面? 非常感谢!
你说的是动态桌面么,那么你可以用这个附件实现,不过视频格式最好是WMV,一般来说windows media player支持的格式都可以

相似回答