怎么设置电脑桌面默认图片
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)恢复隐藏的窗口
以上是关于怎么设置电脑桌面默认图片的主要内容,如果未能解决你的问题,请参考以下文章
我家电脑上的系统里准备的桌面图片十分美丽,我想把这些图片保存到我的文件夹里,我该怎么操作?