社区
C#
帖子详情
如何获得屏幕当前的壁纸?不用注册表
argo_lzq
2005-03-17 06:15:57
从注册表得到屏幕当前的壁纸并不难,但有时用api更改墙纸后,在注册表上没有资料,我试过用SPI_GETDESKWALLPAPER和SystemParametersInfo(115,MAX_PATH,path,0);之类的,不知是参数没有设好还是什么,并没有取得成功。好象这是个很高深的问题,好久了,没有人能搞定,高手可否赐教?
...全文
280
13
打赏
收藏
如何获得屏幕当前的壁纸?不用注册表
从注册表得到屏幕当前的壁纸并不难,但有时用api更改墙纸后,在注册表上没有资料,我试过用SPI_GETDESKWALLPAPER和SystemParametersInfo(115,MAX_PATH,path,0);之类的,不知是参数没有设好还是什么,并没有取得成功。好象这是个很高深的问题,好久了,没有人能搞定,高手可否赐教?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
argo_lzq
2005-04-17
打赏
举报
回复
C#中组件添加项中,并没有ActiveDesktop 的COM,必须要用到API吗?还是有别的引用途径?谢谢
coolksj
2005-04-15
打赏
举报
回复
需要使用ActiveDesktop 的COM。。。我的顶尖虚拟桌面2005就是这样实现的,不过不能贴源码给你
argo_lzq
2005-04-15
打赏
举报
回复
这个早就用过了,在注册表里用的是.gif,在WinAPI.SystemParametersInfo()中只能用.bmp,这就是两个文件名完全不同了,内容也会不同,.gif的文件会动画的,.bmp是静止的,根本无法判断目前的这个BMP内容是我们原来的.gif的内容。
egxsun
2005-04-09
打赏
举报
回复
RegistryKey RK = Registry.CurrentUser;
RegistryKey ControlPanel = RK.OpenSubKey("Control Panel",true);
RegistryKey Desktop = ControlPanel.OpenSubKey("Desktop",true);
Desktop.SetValue("Wallpaper",FileNameStr);//FileNameStr是图片路径和名称
int nResult = WinAPI.SystemParametersInfo(SPI_SETDESKWALLPAPER,1,FileNameStr,SPIF_SENDCHANGE); //用WINAPI对桌面壁纸进行操作
lxkim
2005-04-09
打赏
举报
回复
1、用鼠标右键点击桌面,会看到【背景】→【墙纸】里面的文件名是空的。
2、重新启动后桌面墙纸消失。
3、没告诉您怎么切换"居中"或"平铺"。
怎么解决这些问题呢?
1、Windows的墙纸必须以BMP格式的文件存放在Windows目录下面,如果您的图片不在该目录
或不是BMP文件,那么就会出现第一个问题。因此必须把您的图片转换成BMP文件并复制到Windows
目录下面。
2、要使重新启动后需要在注册表里面修改相应的键值,具体位置是
HKEY_CURRENT_USER\Control Panel\desktop中的Wallpaper键,让它的键值等于您的全路径文
件名。
3、在更换墙纸以前首先设置是否"居中",需要修改注册表中HKEY_CURRENT_USER\Control
Panel\desktop中的TileWallpaper键,键值"0"表示"居中","1"表示"平铺"。
syeerzy
2005-03-18
打赏
举报
回复
用api的setdesk,是不会在注册表中写下记录的,怎么取?用注册表根本取不到的,老大,这里真的没有高手吗?
如果能用注册表取到文件名和路径不就行了么??图片本身当然不会在注册表里。
DeltaCat
2005-03-18
打赏
举报
回复
shit
argo_lzq
2005-03-18
打赏
举报
回复
用api的setdesk,是不会在注册表中写下记录的,怎么取?用注册表根本取不到的,老大,这里真的没有高手吗?
argo_lzq
2005-03-18
打赏
举报
回复
各位老大,这问题真的那么难吗?
argo_lzq
2005-03-18
打赏
举报
回复
好象大家还没有明白,SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "c:\temp\shit.bmp",0);
能够设置壁纸,把以前的给覆盖掉;但设完后,注册表是不会有任何反映的,下次启动,也会重新显示注册表的图片,怎么才能取到现在这个用api设立的壁纸的文件路径和名称?或者判断是空的。国外有人试过SystemParametersInfo(SPI_GETDESKWALLPAPER, (uint)sWallpaper.Length, sWallpaper, (uint)0),但也没有成功。哪位高手得闲可否帮帮忙? 菜bird的就不要再说那些不好听的话了。好吗。
zealic
2005-03-18
打赏
举报
回复
绝对要用注册表!!!
argo_lzq
2005-03-17
打赏
举报
回复
不行,这样不能得到具体的文件,不过还是感谢
cybernaute
2005-03-17
打赏
举报
回复
被使用的墙纸,会被复制到一个特定的文件夹下
win2000为例,C:\Documents and Settings\Administrator\Application Data\Microsoft\Internet Explorer
在这个文件夹下,会有一个“Internet Explorer 墙纸.bmp”的文件。他的内容随墙纸的不同而不同,但名字好象是一样的。
不知道这个能不能给你点提示。
小弟菜鸟,见笑了!
Promise深入理解
本文详细介绍了如何从零实现一个符合Promise/A+规范的Promise。首先分析Promise的基本特性,包括状态管理、异步处理和链式调用。然后逐步实现:1) 基础Promise结构;2) 异步处理机制;3) 链式调用功能;4) 完整的resolvePromise解决过程。通过发布订阅模式处理异步,使用队列微任务确保执行顺序,并按照规范处理各种返回值情况。最终实现的Promise通过了所有872个官方测试用例。
深入理解 Promise:使用指南与手动实现
Promise是一个表示异步操作最终完成(或失败)及其结果值的对象。Pending(等待中):初始状态,既不是成功,也不是失败。Fulfilled(已成功):操作成功完成。Rejected(已失败):操作失败。Promise的核心功能是通过thencatch和finally方法处理异步操作的结果。通过本文,我们学习了Promise的基本用法,包括创建、使用、链式调用以及静态方法。同时,我们还手动实现了一个简化版的Promise,深入理解了Promise。
深入理解Promise
ES6提供的Promise对象是异步控制相较于回调的更好的一种方法。包括ES8提供的asyncFunction本质上也是基于Promise和生成器的结合,因此在已经了解Promise对象的常用API基础上,更加深入的去了解如何使用Promise去解决一些常见的难题对于开发将会有一些帮助。 文章阅读前,希望读者已经对Promise的使用及相关api有了一定的了解 。[ 快速学习Promise ] 一、如何对Promise异步任务进行超时监听 任务描述 作为一道开胃小菜,这个问题还是不难解决的。平时对于一些.
Promise的深入理解
一、promise 的认识 1.js的单线程 1)javascript的执行环境是单线程的 2)单线程:指JS引擎中负责解释和执行JavaScript代码的线程只有一个,也就是一次只能完成一项任务,这个任务执行完后才能执行下一个,它会「阻塞」其他任务,这个任务可称为主线程,但是实际上还有其他线程,如事件触发线程、ajax请求线程等 2.同步与异步 1)同步模式:也就是单线程模式,一次只能执行一个任务,函数调用后需等到函数执行结束,返回执行的结果,才能进行下一个任务,如果这个任务执行的时间较长,就会导致线程阻
C#
111,128
社区成员
642,536
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章