主题:  如何输出桌面背景

coo

职务:普通成员
等级:1
金币:0.0
发贴:163
#12001/10/15 10:22:43
有没有办法把舞台图形直接设置成桌面背景

用Xtra还是直接编程?



草原风

职务:版主
等级:5
金币:13.0
发贴:3489
#22001/10/15 12:10:50
好象见过有人做过一个外部的程序来设置的



coo

职务:普通成员
等级:1
金币:0.0
发贴:163
#32001/10/15 12:17:54
可以详细谈谈吗?



草原风

职务:版主
等级:5
金币:13.0
发贴:3489
#42001/10/15 17:02:47
实在是对不住,这个东东我是见过别人做过的,自己没有做过,好象他们是自己编写的一个程序来实现这个功能的,详细情况我不太清楚,但是你可以也自己做一个嘛,呵呵



threem

职务:普通成员
等级:2
金币:1.0
发贴:338
#52001/10/16 0:18:25
以下代码可以将桌面的“面貌”输入位图演员“***”中,然后通过演员复制到剪贴班上!
再节下来如何生成文件并设置威桌面背景就不知道到了。


set member("***").image=(the stage).image
copyToClipboard member 111



coo

职务:普通成员
等级:1
金币:0.0
发贴:163
#62001/10/17 15:01:15
制作方法:
在D内用 FileXtra3 Xtra 把舞台拷贝给到系统文件夹内:
"Picture":
tempTarget = fxObj.fx_fileSaveAsDialog ("C:\" ,"Jajce.Bmp","Enter a filename to save the picture",True)
updatestage
starttimer
repeat while the timer < 60
end repeat
updatestage
"WallPaper":

tempTarget = fxObj.fx_folderGetSpecialPath("CSIDL_WINDOWS")
tempTarget = tempTarget & "Zjfq.Bmp"

拷贝完后调用一个外部的执行设置桌面背景的程序

用VB写一个设置wallpaper的程序:
Option Explicit
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As String, ByVal fuWinIni As Long) As Long
Const SPIF_UPDATEINIFILE = &H1
Const SPI_SETDESKWALLPAPER = 20
Const SPIF_SENDWININICHANGE = &H2
Dim X As Long
'Above: ?? Has to do with the actual changing of the wallpaper and is not my code

Dim FileName As String 'stores the filename
Dim Preview As Boolean 'If preview is enabled or not

Private Sub Form_Load()
FileName = "c:\winnt\zjfq.bmp"

'if file is selected set current file to wallpaper
X = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0&, FileName, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)

End

End Sub

记得把Form设置成不可见

编辑历史:[这消息被boyzai编辑过(编辑时间2001-10-17 15:15:46)]


cqpsm

职务:普通成员
等级:1
金币:0.0
发贴:15
#72001/10/18 9:01:56
关于设置墙纸的步骤,可以用API插件中的函数可以简单设置,用不着用VB写外部程序。草原风原先是见到我用外部程序做的,但是那时我的大部分功能都是用D8.5做的,只是我需要的是将jpg的图象设置为墙纸,不是舞台。但是我发现windows对jpg的墙纸支持不如bmp(比如说设置后不能立即更新等问题),所以我需要将jpg转换成bmp,但是在D8.5中没有这个功能,所以我是用外部程序将jpg转换成bmp图,再使用API插件中的API函数设置成墙纸。



草原风

职务:版主
等级:5
金币:13.0
发贴:3489
#82001/10/18 9:10:54
cqpsm在上个帖子中说
引用:
关于设置墙纸的步骤,可以用API插件中的函数可以简单设置,用不着用VB写外部程序。草原风原先是见到我用外部程序做的,但是那时我的大部分功能都是用D8.5做的,只是我需要的是将jpg的图象设置为墙纸,不是舞台。但是我发现windows对jpg的墙纸支持不如bmp(比如说设置后不能立即更新等问题),所以我需要将jpg转换成bmp,但是在D8.5中没有这个功能,所以我是用外部程序将jpg转换成bmp图,再使用API插件中的API函数设置成墙纸。

哦,是你呀,我以前看到的可不是你的,呵呵
再有你的问题解决后可不可以把心得与具体的方法写上来让大家也看看呢?毕竟这里是技术论坛,不只是提问,也可以把自己的心得写上来,我们欢迎这样的帖子



coo

职务:普通成员
等级:1
金币:0.0
发贴:163
#92001/10/18 12:27:55
对,希望cqpsm能具体介绍下API Xtra 的用法,方便大家学习



potato

职务:普通成员
等级:1
金币:0.0
发贴:6
#102001/10/18 23:37:45
可以用DirectOS Xtras ,有set wallpaper 等功能



coo

职务:普通成员
等级:1
金币:0.0
发贴:163
#112001/10/20 9:59:42
以下介绍API Xtra 设置桌面的过程,
1.在on startmovie 影片剧本中注册插件:

set funcs = baRegister( "DiABLO [ORiON]" , 3157792 )

2. 拷贝图片到系统文件夹:上边的帖子有介绍

3.设置 WallPaper:

set WinDir = baSysFolder( "windows" )
WallPaper_File=windir&"Zjfq.Bmp"
set oldw=baSetWallpaper( WallPaper_File,0 )



threem

职务:普通成员
等级:2
金币:1.0
发贴:338
#122001/10/20 14:55:58
Boyzai :
API Xtra 能不能给我一个?我想要很久了!谢!
three-m@etang.com

编辑历史:[这消息被threem编辑过(编辑时间2001-10-20 15:07:28)]
[这消息被threem编辑过(编辑时间2001-10-20 15:11:58)]


cqpsm

职务:普通成员
等级:1
金币:0.0
发贴:15
#132001/10/20 18:58:16
上次过后一直没时间上来看,实际上我设置墙纸的方法和boyazi的一样,api插件的函数如果不注册,一次只能用两个函数,其注册和使用方法和boyazi的说明一样,我只是做了个外部的将图片由jpg转为bmp图的程序,每次设置墙纸前先运行此程序,再设置为墙纸。谢谢草原风的提醒,以后我一定会在论坛上多发帖子。也欢迎大家和我交流。



稻草人

职务:普通成员
等级:1
金币:0.0
发贴:51
#142001/10/20 19:58:50
不知大家看过〈趋势〉 这本杂志没有,在一张图片上点右键,就可直接设为墙纸。我翻了翻没有找到 这一方面的xtra,这是咋么做的呢?



coo

职务:普通成员
等级:1
金币:0.0
发贴:163
#152001/10/22 9:59:10
稻草人在上个帖子中说
引用:
不知大家看过〈趋势〉 这本杂志没有,在一张图片上点右键,就可直接设为墙纸。我翻了翻没有找到 这一方面的xtra,这是咋么做的呢?


这个也是用 API Xtra实现的,只要触发右击事件,把点击的图片拷贝到系统文件夹内,然后用API Xtra设置成桌面即可。