C# – 在任务栏上的鼠标hover上,生成一个预览 我怎么能通过C#编码实现这一点

我正在开发一个winForm应用程序,我列出了所有正在运行的进程。 在任何进程的鼠标hover时,我需要预览窗口(如在Windows 7中,将鼠标hover在任务栏中的应用程序上时,会生成预览,显示应用程序窗口的内容

任何想法如何实现这一点,我无法得到它。 任何build议都会有帮助。 谢谢..

显示Windows对话框后如何处理?

使用C uder Window OS与UTC时间同步系统时钟

在Windows中从C ++应用程序进行Thrift调用

Python:Howto启动一个完整的进程而不是subprocess并检索PID

如何编写一个工具,反转Windows中的颜色?

find()方法获取时间search-c ++

扩展时重绘comboBox项目

是否有可能将Windows Mobile仿真build立到应用程序中?

程序在缓冲区溢出时没有崩溃

为什么没有Microsoft.Win64命名空间?

完整的例子在这网站

你需要两个功能

[DllImport("dwmapi.dll")] static extern int DwmRegisterThumbnail(IntPtr dest,IntPtr src,out IntPtr thumb); [DllImport("dwmapi.dll")] static extern int DwmUpdateThumbnailProperties(IntPtr hThumb,ref DWM_THUMBNAIL_PROPERTIES props);

使用DwmRegisterThumbnail

你在你的形式 ,并处理它你想在你的程序上绘制一个外部程序。

IntPtr hWnd = process.MainWindowHandle; int i = DwmRegisterThumbnail(this.Handle,hWnd,out thumb);

注册后,你只要说窗口的位置来绘制图片

DWM_THUMBNAIL_PROPERTIES props = new DWM_THUMBNAIL_PROPERTIES(); props.fVisible = true; props.dwFlags = DWM_TNP_VISIBLE | DWM_TNP_RECTDESTINATION | DWM_TNP_OPACITY; props.opacity = 255; props.rcDestination = new Rect(panel.Left,panel.Top,panel.Right,panel.Bottom); DwmUpdateThumbnailProperties(thumb,ref props);

你不需要编写任何代码来实现这一点。 它是Windows Vista中引入的Aero主题的一部分,仍然存在于Windows 7中。认情况下,当您将鼠标悬停在任务栏中的图标上时,会显示应用程序窗口的一个缩略图。 对于您展示的Skype示例,以及您自己编写的C#应用​​程序,情况也是如此。

如果您想要更精确地控制预览中显示内容(如果您只想显示应用程序窗口的一小部分),则可以编写一些调用一个或多个相关DWM API函数代码

但是不要自己编写所有的P / Invoke代码。 使用一个现有的库,以.NET友好的方式封装它,如Windows Forms Aero或Windows API Code Pack 。

如果你想自己的应用程序显示一个Aero缩略图,也许这个C ++示例可以帮助你。 显然它使用DwmRegisterThumbnail()来表示“此HWND现在将显示一个缩略图”。

所以,一个小小的P / Invoke调用和IWin32Window …

相关文章

本篇内容主要讲解“gitee如何上传代码”,感兴趣的朋友不妨来...
这篇“从gitee上下的代码如何用”文章的知识点大部分人都不太...
这篇文章主要介绍“gitee如何下载仓库里的项目”,在日常操作...
本篇内容主要讲解“怎么在Gitee上更新代码”,感兴趣的朋友不...
本文小编为大家详细介绍“怎么将工程托管到gitee”,内容详细...
这篇文章主要介绍了gitee中图片大小如何调整的相关知识,内容...