怎么设置电脑桌面默认图片

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么设置电脑桌面默认图片相关的知识,希望对你有一定的参考价值。

参考技术A

一)XP系统修改背景图片:

步骤1)鼠标在屏幕空白处右击-属性-桌面

步骤2)背景选系统自带的其它图片,或点浏览去选别处的想设置的图片。点应用,就更换了桌面图片。

二)WIN7系统,修改背景图片:

步骤1)鼠标在屏幕空白处右击-个性化-桌面背景

步骤2)选系统提供的各种背景图片或浏览下载的图片。

步骤3)选中一个图片,保存修改,桌面默认图片就换新貌了。

VC++如何获取并保存桌面背景?

我想要获取整个桌面背景,要求不带软件快捷方式等图标,也不是要桌面壁纸路径。
假如用户用一张小图片做壁纸,且是以居中的方式显示在桌面,这样没被图片覆盖的桌面就用纯色来填充了,我想用vc获取这种样式的整个桌面背景并保存为图片。
请不要乱贴别人的代码,谢谢。

要实现的话,比较麻烦。

1)获取窗口句柄,桌面其实里面有一个LISTVIEW,因此要获取的窗口句柄不是DESKTOP,而是LISTVIEW

2)调用ClistView的GetBkImage或对应的WIN32 API函数获取LISTVIEW中LISTCTRL控件所具有的背景图片的详细信息(参见MSDN中关于LVBKIMAGE结构的说明)

3)由于桌面对应的CListCtrl控件不是我们自己程序中创建的控件,因此不能直接调用GetBkImage。因此比较麻烦的事情就在这里,需要下钩子,将自己的线程代码注入到CListCtrl所在的进程中,然后调用GetBkImage的WIN32 API函数获取背景图片的详细信息,最后反馈到自己进程中进行绘制,最终保存至BMP图片。

不知道楼主明白了没有,总之没什么基本功的话,该程序功能实现很困难。

换一个思路:
由于桌面在下次开机启动后能够被设置成上次关机前的状态。因此,桌面的信息肯定是被存在注册表中的。因此,如果通过读注册表来实现会容易很多。关键是壁纸对应的注册表键值需要楼主自己搜集了。
------------------------------------------
wawoo2007厉害,应该是个不错的办法。
HWND hwndPM = ::FindWindow(_T("ProgMan"), NULL);
参考技术A this->ShowWindow(SW_HIDE);
FindWindow(L"Shell_TrayWnd",NULL)->ShowWindow(SW_HIDE);
CWnd *pWndPrev;
pWndPrev=FindWindow(L"Progman",NULL);
if (pWndPrev)

pWndPrev->ShowWindow(SW_HIDE);
HDC myDC=::GetDC(0);
int x=GetSystemMetrics(SM_CXSCREEN);
int y=GetSystemMetrics(SM_CYSCREEN);
HDC hDCMemory = CreateCompatibleDC(myDC) ;
HBITMAP hBmp = CreateCompatibleBitmap(myDC, x, y) ;
HGDIOBJ hBmpPrev = SelectObject(hDCMemory, hBmp) ;
BitBlt(hDCMemory, 0, 0, x, y, myDC, 0, 0, SRCCOPY);
CImage image;
image.Attach(hBmp);
image.Save(L"c:\\1.bmp");
::ReleaseDC(0,myDC);
pWndPrev->ShowWindow(SW_SHOW);

this->ShowWindow(SW_SHOW);
FindWindow(L"Shell_TrayWnd",NULL)->ShowWindow(SW_SHOW);

放到函数体里面就行了。本回答被提问者采纳
参考技术B 1)找到 program manager 窗口,取句柄,ShowWindow 给它隐藏
2)截屏
3)恢复隐藏的窗口

以上是关于怎么设置电脑桌面默认图片的主要内容,如果未能解决你的问题,请参考以下文章

笔记本电脑查看图片,怎么设置成默认预览?

我家电脑上的系统里准备的桌面图片十分美丽,我想把这些图片保存到我的文件夹里,我该怎么操作?

windows10如何把gif图片放在电脑桌面上,可以移动的,谢谢

一张图片怎样铺满空间电脑屏幕

如何设置Marker图标的位置

go桌面怎么自定义图标?