痞子哥 发表于 2016-9-30 00:12:03

为什么换不了!

#cs ----------------------------------------------------------------------------

AutoIt Version: 3.3.6.1
Author:         黄岩博创电脑- Autt

Script Function:
                     随机换壁纸                  
Date :
         2011-09-11
               
Description:   
                壁纸目录在C:/windows/wallpaper
                              只支持将jpg格式的转换成bmp格式.
                              
Ver   :0.1.0                        
               
#ce ----------------------------------------------------------------------------

#AutoIt3Wrapper_Res_Comment=系统 V0.2
#AutoIt3Wrapper_Res_Description=系统 V0.2
#AutoIt3Wrapper_Res_LegalCopyright= 黄岩博创电脑
#AutoIt3Wrapper_Res_Field=产品版本|V0.1.2
#AutoIt3Wrapper_Res_Field=产品名称|桌面随心换 V0.1.2
#AutoIt3Wrapper_Res_Field=源文件名|converter.ExE
#AutoIt3Wrapper_Res_Field=内部名称|点我.exe
#AutoIt3Wrapper_Res_Field=程序作者|JOHn
#AutoIt3Wrapper_Res_Field=日期 | 2011-09-09

#include <GDIPlus.au3>
#include <Array.au3>

Local $arry
Local $count=0
Local $dest="C:\WINDOWS\WallPaper\"

$search=FileFindFirstFile("C:\WINDOWS\WallPaper\"&"*.*")

while 1
      $file=FileFindNextFile($search)
          if @error then ExitLoop
                _ArrayAdd($arry,$file)   
      $count=$count+1
WEnd                              ;循环目录中的所有文件

$rnd=Random(1,$count,1)                ; 产生随机数

$wpaper=$arry[$rnd]      ;随机图片

_GDIPlus_Startup ()
;初始化gdi
$hImage = _GDIPlus_ImageLoadFromFile ($dest&$wpaper)
;选择文件,保存句柄到$hImage

$sCLSID = _GDIPlus_EncodersGetCLSID ("BMP")
;理解成要保存的格式??

$tData = DllStructCreate("int Data")
;创建一个类似C++的数据结构

DllStructSetData($tData, "Data", $GDIP_EVTTRANSFORMROTATE90)

$tParams = _GDIPlus_ParamInit (1)
_GDIPlus_ParamAdd ($tParams, $GDIP_EPGTRANSFORMATION, 1, $GDIP_EPTLONG, DllStructGetPtr($tData, "Data"))

;_GDIPlus_ImageSaveToFileEx ($hImage, "Wallpaper1.bmp", $sCLSID, DllStructGetPtr($tParams))原句,非完美
_GDIPlus_ImageSaveToFileEx ($hImage, "c:\Wallpaper1.bmp", $sCLSID, DllStructGetPtr($tParams))   ;实现之处,就是给图片加个路径
;保存文件,并命名为wallpaper1.bmp
_GDIPlus_ShutDown ()

dllcall("user32","int","SystemParametersInfo","int",20,"int",1,"str","c:\Wallpaper1.bmp","int",1) ;同样在这句中给图片加设路径,即重启后背景图片为上一次所设定的,功能实现~!!!!!


这是在论坛里找一个换桌面的AU3代码,我现在想把C:\WINDOWS\WallPaper\改成读取config.ini里的Wallpaper路径,要怎么改
下面是config.ini的内容

Wallpaper=C:\Wallpaper

我把
Local $dest="C:\WINDOWS\WallPaper\"跟$search=FileFindFirstFile("C:\WINDOWS\WallPaper\"&"*.*")
改成
$dest = @ScriptDir & '\Wallpaper\' & IniRead('Config.ini', 'Wallpaper', 'Wallpaper', 0)
$search =FileFindFirstFile($dest & "*.*")
没用!为什么呢?

痞子哥 发表于 2016-9-30 10:11:20

咋没人呢?

veket_linux 发表于 2016-9-30 18:17:00

$dest =IniRead(@ScriptDir & '\' &'Config.ini', 'Wallpaper', 'Wallpaper', 0)

veket_linux 发表于 2016-9-30 18:17:19

$dest =IniRead(@ScriptDir & '\' &'Config.ini', 'Wallpaper', 'Wallpaper', 0)

痞子哥 发表于 2016-10-3 20:37:41

谢谢,解决了!同目录下不能加\ 把\删了就好了!
页: [1]
查看完整版本: 为什么换不了!