c#获取windows桌面背景代码示例
#region 获取windows桌面背景
[System.Runtime.InteropServices.DllImport("user32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto, SetLastError = true)]
public static extern int SystemParametersInfo(int uAction, int uParam, StringBuilder lpvParam, int fuWinIni);
private const int SPI_GETDESKWALLPAPER = 0x0073;
#endregion
void WindowsBtn_Click(object sender, RoutedEventArgs e)
{
//定义存储缓冲区大小
StringBuilder s = new StringBuilder(300);
//获取Window 桌面背景图片地址,使用缓冲区
SystemParametersInfo(SPI_GETDESKWALLPAPER, 300, s, 0);
//缓冲区中字符进行转换
string wallpaper_path = s.ToString(); //系统桌面背景图片路径
}
调用windows api获取
使用的时候需要注意StringBuilder的大小不能小于255,因为windows的路径最大支持255,如果定义过小...
如果当前系统桌面无背景或为纯色则返回空.
相关文章
VS2010写的程序在自己电脑可以运行、其他电脑上不能运行的解决方案
自己用Visual Studio 2010 旗舰版写了一个软件,在自己电脑上运行完全没有问题,但是拷贝到其他人电脑上之后不管双击还是以管理身份运行,均没有反应,进程管理器中相关进程也只是一闪而过2013-04-04
最新评论