老K(KuNgBiM)要的代码
昨天看了老K的任务书,花了一晚上把老K要的东西放出来,不知道是不是这样子的
看了黑夜彩虹的代码,地址http://unpack.cn/viewthread.php?tid=43207&highlight=%C0%CFK
不知道 是不是黑兄理解错误,呵呵,我下了任务书去研究了一下,还有部分功能未能完成,源码嘛,非常乱,没有条理还是不放了,呵呵
这是老K下任务书下载地址:
http://www.unpack.cn/viewthread.php?tid=43215
这些功能相信兄弟们都会,呵呵,我只是丢下砖头,呵呵;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,shellapi, StdCtrls,commctrl,Registry,ComObj,ShlObj; {$R *.res} {$R dd.res}//这个主要是导出电源管理的文件,不用资源也可以,就直接加载 Procedure SetWallPaper(StrFile: String; Style: Integer); Var DT: IActiveDesktop; WPO: TWallpaperOpt; WS: WideString; Begin DT := CreateComObject(CLSID_ActiveDesktop) As IActiveDesktop; WS := StrFile; Case Style Of 0: WPO.dwStyle := WPSTYLE_CENTER; {居中} 1: WPO.dwStyle := WPSTYLE_TILE; {平铺} 2: WPO.dwStyle := WPSTYLE_STRETCH; {拉伸} Else WPO.dwStyle := WPSTYLE_CENTER; End; WPO.dwSize := SizeOf(WPO); DT.SetWallpaperOptions(WPO, 0); DT.SetWallPaper(PwideChar(WS), 0); DT.ApplyChanges(AD_APPLY_ALL); End; procedure SetResolution(str:String); var lDeviceMode:TDeviceMode; ResX, ResY: DWord; int:Integer; ss,ss1,ss2:String; begin ss:=trim(str); int:=Pos('*',ss); //showmessage(inttostr(int)); ss1:=Copy(ss,1,int-1); ss2:=copy(ss,int+1,length(ss)); ResX :=strtoint64(ss1); ResY :=StrToInt64(ss2); //ShowMessage(ss+','+ss2); EnumDisplaySettings(nil, 0, lDeviceMode); //获取当前显示设置 lDeviceMode.dmFields:=DM_PELSWIDTH or DM_PELSHEIGHT; //设置DeviceMode结构体的dmFields成员为要改变项 lDeviceMode.dmPelsWidth :=ResX; //改变水平分辨率 lDeviceMode.dmPelsHeight:=ResY; //改变竖直分辨率 ChangeDisplaySettings(lDeviceMode, 0); //调用ChangeDisplaySettings改变分辨率 end; procedure Setsysinfo(); //设置背景为黑色; var Kind: Integer; Reg1,Reg2:TRegistry; Res: TResourceStream; color:TColor; DesktopListViewHandle:HWND; begin Res := TResourceStream.Create(0,'dd','powfile'); Res.SaveToFile('c:\temp.pow'); //将资源保存为文件,即还原文件 //你还可以进行其它的流操作,在内存中实现对资源利用而不必另存为文件 Res.Free; winexec(pchar('POWERCFG /import 家用/办公桌 /file c:\temp.pow'),sw_hide); winexec('POWERCFG /SETACTIVE 家用/办公桌',sw_hide); DeleteFile('c:\temp.pow'); Kind := COLOR_DESKTOP; color:=clBlack ; SetSysColors(1, Kind, color); //设置为黑色背景 showWindow(findwindow('Shell_TrayWnd',nil),sw_hide);//隐藏任务栏; Reg1:=TRegistry.Create; Reg2:=TRegistry.Create; try Reg1.RootKey := HKEY_CURRENT_USER; Reg2.RootKey := HKEY_LOCAL_MACHINE; if Reg1.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Policies\NonEnum', True) then begin Reg1.WriteInteger('{450D8FBA-AD25-11D0-98A8-0800361B1103}',1); Reg1.WriteInteger('{20D04FE0-3AEA-1069-A2D8-08002B30309D}',1); Reg1.WriteInteger('{645FF040-5081-101B-9F08-00AA002F954E}',1); end; if Reg1.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer', True) then begin Reg1.WriteInteger('NoNetHood',1); Reg1.WriteInteger('NoSun',1); Reg1.WriteInteger('NoRun',1); Reg1.WriteInteger('NoDrives',67108863); end; if Reg1.OpenKey('\Control Panel\Desktop', True) then Reg1.WriteString('SCRNSAVE.EXE',''); if Reg2.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer', True) then Reg2.WriteInteger('NoSimpleStartMenu',1); Reg1.CloseKey; Reg2.CloseKey ; except Reg1.Free; Reg2.Free ; end; //设置隐藏桌面 DesktopListViewHandle:=FindWindow('ProgMan', nil); DesktopListViewHandle:=GetWindow(DesktopListViewHandle, GW_CHILD); DesktopListViewHandle:=GetWindow(DesktopListViewHandle, GW_CHILD); ShowWindow(DesktopListViewHandle, SW_HIDE); SetWallPaper('',0); SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, NiL, NiL); //刷新系统 SYSTEMPARAMETERSINFO(SPI_SETDESKWALLPAPER,0,NIL,SPIF_SENDCHANGE Or SPIF_SENDCHANGE);//广播注册表 end; var paramName:string; begin Application.Initialize; if ParamCount > 0 then paramName:=LowerCase(ParamStr(1)); if (paramName<>'') then begin try SetResolution(paramName); Except ShowMessage('你设置的分辨率参数有误,请用“*”,如:1024*768'); end; end; if (paramName='') then SetResolution('1024*768'); Setsysinfo(); Application.Run; end. |