首页
社区
课程
招聘
6
[旧帖] [原创]关于使用SystemParametersInfo设置背景桌面的问题一点点心得 0.00雪花
发表于: 2011-10-7 10:47 3371

[旧帖] [原创]关于使用SystemParametersInfo设置背景桌面的问题一点点心得 0.00雪花

2011-10-7 10:47
3371

使用SystemParametersInfo桌面的时候,用法如下:



invoke SystemParametersInfo,SPI_SETDESKWALLPAPER,0,offset szPath,SPIF_UPDATEINIFILE



最近帮朋友写了一个随机换桌面背景的小程序,发现这个函数一个很关键的问题,需要了解的朋友接着往下看,高手安静的飘过吧,别说我垃圾就行……哈哈



程序源代码如下(使用win32汇编,IDE是RADASM):



  .386


  .model flat,stdcall


  option casemap:none


;※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※


include  windows.inc


include  kernel32.inc


includelib kernel32.lib


include  user32.inc


includelib user32.lib


include  Stdlib.Inc


includelib Stdlib.lib


;※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※


ICO_MAIN equ 1000h


;※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※


  .const


szPathBmp db 'C:/DesktopWall/*.bmp',0


szPathJpg db 'C:/DesktopWall/*.jpg',0



;szPathBmp db '*.bmp',0


;szPathJpg db '*.jpg',0


szError  db '未找到任何bmp和jpg的文件',0dh,0ah,


   '程序将退出',0dh,0ah,


   '谢谢使用',0dh,0ah,


   'BY:GLCWOLF',0


szErrorCap db '查找图片失败',0


  .data


szTest1  db '%d',0


szTest2  db '%s',0


szBufferTest db 128 dup (?)


szPath  db 'C:/DesktopWall/',0


  .data?


dwCount  dd ?


hFindFile  dd ?


szBuffer  db 256  dup (?)


szName  db MAX_PATH dup (?)


szBufferName db 100000 dup(?)


dwRand  dd ?


dwFileCount dd ?


dwAddr  dd ?


stWin32FindData WIN32_FIND_DATA


dwNameAddr dd ?


  .code


_FindBmpFiles proc uses esi;查找bmp文件


  invoke FindFirstFile,offset szPathBmp,offset stWin32FindData


  .if eax != INVALID_HANDLE_VALUE ;如果找到第一个bmp文件,保存句柄,进行FindNextFile


   mov hFindFile,eax


   mov esi,offset szBufferName


   .while TRUE


    inc dwCount


    invoke StrCpy,esi,offset stWin32FindData.cFileName   ;把找到的文件的文件名拼接到缓存区里


    add esi,sizeof stWin32FindData.cFileName


    mov dwNameAddr,esi


    invoke FindNextFile,hFindFile,offset stWin32FindData


    .break .if  eax ==  FALSE


   .endw


   invoke FindClose,hFindFile ;关闭文件句柄


  .endif


  ret


_FindBmpFiles  endp


;※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※


_FindJpgFiles proc uses esi;注释类似与_FindBmpFiles


  .if dwCount ==0


   mov esi,offset szBufferName    ;如果没找到BMP图片,那么把缓存区的地址给esi


[招生]科锐逆向工程师培训(2025年3月11日实地,远程教学同时开班, 第52期)!

收藏
免费 6
支持
分享
赞赏记录
参与人
雪币
留言
时间
伟叔叔
为你点赞~
2024-5-31 02:30
心游尘世外
为你点赞~
2024-3-10 00:25
飘零丶
为你点赞~
2024-3-1 00:07
QinBeast
为你点赞~
2024-2-7 00:24
shinratensei
为你点赞~
2024-1-24 02:15
PLEBFE
为你点赞~
2023-3-7 00:50
最新回复 (2)
雪    币: 23
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
图片格式转换可以用mfc去封装 一个专门的dll,然后用win32程序调用就行。。
直接 win32 实现 图片转换,除非你直接去分析 图片格式标准,无它法
2011-10-7 11:52
0
雪    币: 56
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
哦,谢谢!我去找找这样的DLL
2011-10-7 12:41
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册