桌面->右键->属性->外观->高级->项目选择(窗口)、颜色1(L)选择(其它)将色调改为:85。饱和度:123。亮度:205->添加到自定义颜色->在自定义颜色选定点确定->确定这样所有的文档都不再是刺眼的白底黑字,而是非常柔和的豆沙绿色,这个色调是眼科专家配置的,长时间使用会很有效的缓解眼睛疲劳保护眼睛
用代码实现,给个思路
给代码,再加分
用代码实现,给个思路
给代码,再加分
解决方案 »
- blazingfire近来接分2(如何在内存中直接打开Word文档?)
- rave report 报表中如何实现在一张报表中显示数据库中两个表中的字段内容?在线等!急!!在此谢过了
- 如何隐藏/显示StringGrid中的某一列
- 急:在线等 Windows下面用什么Api可以验证域用户名密码的正确性?
- 唉……生病!不爽,散分!先到多得……
- 大家好>我想请教SQL SERVER为什么非要使用ODBC才能连接
- 急!请问各位高手,我想在delphi中嵌入汇编,并且将结果传到delphi的变量中,不知能不能做到?或者让delphi调用中断也行
- 在线等,如何把fastreport里面生成的随机数传回给delphi?
- 按钮问题
- 如何把一个3M单独文件拷到三张软盘作备份,用什么工具
- delphi 怎么判断局域网的机子在线
- delphi 开发完一个系统后,客户要求源码,也一起给他们吗。
名:Window
值:199 237 204
试了一下,不行,只相当于f5的效果
//SendMessage(FindWindow('Progman', 'Program Manager'), WM_COMMAND, 106597, 0);
//sendMessage(FindWindow('Progman','Program Manager'),WM_COMMAND,$A065,0);
//SYSTEMPARAMETERSINFO(SPI_SETDESKWALLPAPER,0,NIL,SPIF_UPDATEINIFILE Or SPIF_SENDCHANGE);
SHChangeNotify(SHCNE_ASSOCCHANGED,SHCNF_IDLIST+SHCNF_FLUSH,nil,nil);
//SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,0);
// SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, NiL, NiL);这些都不行
const
FNoFolderOptions = 'NoFolderOptions';
FCIDM_MENU_VIEW_REFRESH = FCIDM_SHVIEWSHELL + $0103;
function EnumWindowsProc(AHWnd: HWND;LPARAM: lParam): boolean; stdcall;procedure TfrmMain.RefershDesk;
begin
PostMessage(HWND_BROADCAST, WM_COMMAND, FCIDM_MENU_VIEW_REFRESH, 0);
SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,0);
UpdateExplorer;
end;function EnumWindowsProc(AHWnd: HWND;LPARAM: lParam): boolean; stdcall;
var
WClassName : array[0..254] of char;
begin
Result := True;
GetClassName(AHWnd, @WClassName, 254);
if SameText(WClassName,'CabinetWClass') then
begin
PostMessage(AHWnd,$111, 28931, 0);
end;
end;Procedure UpdateExplorer;
var
AHandle : THandle;
begin
EnumWindows(@EnumWindowsProc, 0);
AHandle := FindWindow('Progman',Nil);
if AHandle <> 0 then PostMessage(AHandle,$111, 28931, 0);
end;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
const
FCIDM_SHVIEWSHELL = $7000;
FNoFolderOptions = 'NoFolderOptions';
FCIDM_MENU_VIEW_REFRESH = FCIDM_SHVIEWSHELL + $0103;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}
{function EnumWindowsProc(AHWnd: HWND;LPARAM: lParam): boolean; stdcall;procedure RefershDesk;
begin
PostMessage(HWND_BROADCAST, WM_COMMAND, FCIDM_MENU_VIEW_REFRESH, 0);
SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,0);
UpdateExplorer;
end; }function EnumWindowsProc(AHWnd: HWND;LPARAM: lParam): boolean; stdcall;
var
WClassName : array[0..254] of char;
begin
Result := True;
GetClassName(AHWnd, @WClassName, 254);
if SameText(WClassName,'CabinetWClass') then
begin
PostMessage(AHWnd,$111, 28931, 0);
end;
end;Procedure UpdateExplorer;
var
AHandle : THandle;
begin
EnumWindows(@EnumWindowsProc, 0);
AHandle := FindWindow('Progman',Nil);
if AHandle <> 0 then PostMessage(AHandle,$111, 28931, 0);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
UpdateExplorer;
end;end.
我哪里用错了吗?
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,registry;
const
FCIDM_SHVIEWSHELL = $7000;
FNoFolderOptions = 'NoFolderOptions';
FCIDM_MENU_VIEW_REFRESH = FCIDM_SHVIEWSHELL + $0103;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}
function EnumWindowsProc(AHWnd: HWND;LPARAM: lParam): boolean; stdcall;
var
WClassName : array[0..254] of char;
begin
Result := True;
GetClassName(AHWnd, @WClassName, 254);
if SameText(WClassName,'CabinetWClass') then
begin
PostMessage(AHWnd,$111, 28931, 0);
end;
end;
//function EnumWindowsProc(AHWnd: HWND;LPARAM: lParam): boolean; stdcall;
Procedure UpdateExplorer;
var
AHandle : THandle;
begin
EnumWindows(@EnumWindowsProc, 0);
AHandle := FindWindow('Progman',Nil);
if AHandle <> 0 then PostMessage(AHandle,$111, 28931, 0);
end;
procedure RefershDesk;
begin
PostMessage(HWND_BROADCAST, WM_COMMAND, FCIDM_MENU_VIEW_REFRESH, 0);
SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,0);
UpdateExplorer;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
reg:tregistry;
begin
reg:=tregistry.Create;
reg.RootKey:=HKEY_CURRENT_USER;
reg.OpenKey('\Control Panel\Colors',true);
reg.WriteString('window','199 237 204');
reg.CloseKey;
reg.Free;
RefershDesk;
end;end.还是没有反映,运行后,屏幕确实有刷新的动作,但各个窗口的背景色依然是白色???
打开窗口,然后模拟手动操作呢?
虽然不及注册表方便,但只要能实现就可以,分一样给
reg.WriteString('ActiveTitle','2 3 4');
试了n次了,不能刷新
在你的机器上可以刷新吗?
如你所说,改了,注册表写入成功,但没有效果
procedure TForm1.Button1Click(Sender: TObject);
var
ColorNo:integer;
Colors:COLORREF;
begin
//下列常量表示设置的是哪些显示元素,这些常量已定义在Windows单元中,不必再定义,直接使用即可
// COLOR_SCROLLBAR =0 //滚动条颜色
// COLOR_BACKGROUND =1 //无墙纸时的背景色
// COLOR_ACTIVECAPTION =2 //活动窗口标题颜色
// COLOR_INACTIVECAPTION =3 //非活动窗口标题颜色
// COLOR_MENU =4 //菜单
// COLOR_WINDOW =5 //Windows背景
// COLOR_WINDOWFRAME =6 //Window frame
// COLOR_MENUTEXT =7 //Window文字
// COLOR_WINDOWTEXT =8 //3D阴影(Win95)
// COLOR_CAPTIONTEXT =9 //窗口标题中的文字
// COLOR_ACTIVEBORDER =10 //活动窗口边框
// COLOR_INACTIVEBORDER =11 //非活动窗口边框
// COLOR_APPWORKSPACE =12 //MDI桌面的背景
// COLOR_HIGHLIGHT =13 //选择项背景
// COLOR_HIGHLIGHTTEXT =14 //选择菜单项
// COLOR_BTNFACE =15 //按钮
// COLOR_BTNSHADOW =16 //3D按钮阴影
// COLOR_GRAYTEXT =17 //Grey text,of zero if dithering is used.
// COLOR_BTNTEXT =18 //按钮文本
// COLOR_INACTIVECAPTIONTEXT=19 //非活动窗口文本
// COLOR_BTNHIGHLIGHT =20 //3D高亮按钮
// COLOR_2NDACTIVECAPTION =27 //只用于Win98:第2活动窗口颜色
// COLOR_2NDINACTIVECAPTION =28 //只用于Win98:第2非活动窗口颜色
COLORNO:=COLOR_WINDOW; //设置Windows背景
Colors:=RGB(199,237,204);
SetSysColors(1, ColorNo,Colors); //这个函数无论是否使用桌面主题,都能生效
end;
这个函数是测试过的,没有问题。
主要是没有显示改变桌面主题时的那个“请稍候”的窗口。
没想到,你效率这么高!别的不说了,200分奉上!!还是说一声,谢谢!!