控制Windows的桌面壁纸是一些看图工具常有的功能,要实现该功能是非常容易的,以下的程序使壁纸换为我们想要的图片,如果THEPCHAR为空,那么就取消壁纸,变为Win默认色彩;但这种方法只是暂时的,在WINDOWS重新启动后还是恢复原来的位图,所以要永久保留还需要对WIN.INI文件进行改写操作,才能保存住我们改动的图片不被替换。但这种暂时性也好在让我们可以实现定时更换桌面图片功能: var THEPCHAR:pchar; begin THEPCHAR:='e:\a.jpg'; SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, THEPCHAR, SPIF_SENDWININICHANGE) end;
乙,40%
丙,50%
丁,80%则 total:= 50+40+50+80;
Randomize;
r:= Random(total);
根据r的大小就可以判断了
1 10
2 20
3 30
1的起始数是0 ,中止数是起始数0+1的比例/1000*总人数
2的起始数是1的中止数 ,中止数是起始数+2的比例/1000*总人数
.....
r:= Random(总数);
如果起始数<=r<=中止数,显示该人
缺陷:修改参数时候,要计算起始数 中止数
var
x:longint;
a:string;
begin
x := GetSystemMetrics(SM_CXSCREEN);
Str(x,a);
Label1.Caption := '显示器水平分辨率' + a;
x := GetSystemMetrics(SM_CYSCREEN);
Str(x,a);
Label2.Caption := '显示器垂直分辨率' + a;
end;
启动关闭热启动
如果你是要制作一个有密码保护的屏幕保护程序,那么关闭热启动将是非?匾模裨虮蝗艘话慈绕舳乇樟四愕某绦颍敲床皇瞧鸩涣吮;ぷ饔寐穑? 要使系统的热启动键(Ctrl+Alt+Del)失效,使用以下语句
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, 0, 0);
要恢复系统的热启动键(Ctrl+Alt+Del),使用以下语句
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, 0, 0);
启动屏幕保护程序
在一些比较高级的程序中,有些资料是秘密的,那么在有人接近的时候,就需要启动一个屏幕保护,保护自己的电脑资料,所以我们选用WINDOWS的屏幕保护功能,可是操作系统需要我们在一定的时间内不接触电脑才能启动保护程序,这是达不到实时效果的,所以利用下列语句直接开始Windows的屏幕保护程序:
SendMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_SCREENSAVE,0);
把以上语句放到程序的某个菜单中,并为该菜单定义一个热键,那么下次就只需按一个键就保护了自己的资料。
取得系统界面颜色
制作程序时,被Windows的界面色彩弄得头昏眼花,设计时是一种颜色,色彩搭配得挺好的,可是到了用户手里字体却看不清楚,严重影响了程序效果,所以结合操作系统调配颜色将是令用户用得开心的不可多得的步骤:
下面列出了操作系统界面各部位的名称,要取得系统颜色,把参数换一下就可以了
COLOR_SCROLLBAR 滚动条
COLOR_BACKGROUND 桌面背景
COLOR_ACTIVECAPTION 活动窗口标题
COLOR_INACTIVECAPTION 非活动窗口标题
COLOR_MENU 菜单
COLOR_WINDOW 窗口背景
COLOR_WINDOWFRAME 窗口框
COLOR_MENUTEXT 窗口文字
COLOR_WINDOWTEXT 3D 阴影 (Win95)
COLOR_CAPTIONTEXT 标题文字
COLOR_ACTIVEBORDER 活动窗口边框
COLOR_INACTIVEBORDER 非活动窗口边框
COLOR_APPWORKSPACE MDI 窗口背景
COLOR_HIGHLIGHT 选择条背景
COLOR_HIGHLIGHTTEXT 选择条文字
COLOR_BTNFACE 按钮
COLOR_BTNSHADOW 3D 按钮阴影
COLOR_GRAYTEXT 灰度文字
COLOR_BTNTEXT 按钮文字
COLOR_INACTIVECAPTIONTEXT 非活动窗口文字
COLOR_BTNHIGHLIGHT 3D 选择按钮}
var I:integer;
begin
//取得活动窗口标题颜色
I :=GetSysColor(COLOR_ACTIVECAPTION);
Label1.Caption:='颜色代码为:'+IntTostr(I);
end;
改网络计算机名
连接入网络的计算机都有一个自己的名称,改变或命名计算机在网络中的名字是不可少的步骤,下面的语句就实现了该功能,必须重新启动后才能生效:
SetComputerName('Hello World');
控制壁纸
控制Windows的桌面壁纸是一些看图工具常有的功能,要实现该功能是非常容易的,以下的程序使壁纸换为我们想要的图片,如果THEPCHAR为空,那么就取消壁纸,变为Win默认色彩;但这种方法只是暂时的,在WINDOWS重新启动后还是恢复原来的位图,所以要永久保留还需要对WIN.INI文件进行改写操作,才能保存住我们改动的图片不被替换。但这种暂时性也好在让我们可以实现定时更换桌面图片功能:
var THEPCHAR:pchar;
begin
THEPCHAR:='e:\a.jpg';
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, THEPCHAR, SPIF_SENDWININICHANGE)
end;
human_2(风一帆) 你的算法我考虑过 不过还是觉得不妥 希望有更好一点的算法
希望大家多帮忙