Рефераты
 

Настройка Windows по средствам системного реестра

oDispBackgroundPage: String =

'Software\Microsoft\Windows\CurrentVersion\'

+'Policies\System\NoDispBackgroundPage';

NoDispScrSavPage: String =

'Software\Microsoft\Windows\CurrentVersion\'

+'Policies\System\NoDispScrSavPage';

NoDispSettingsPage: String =

'Software\Microsoft\Windows\CurrentVersion\'

+'Policies\System\NoDispSettingsPage';

NoDispAppearancePage: String =

'Software\Microsoft\Windows\CurrentVersion\'

+'Policies\System\NoDispAppearancePage';

Wallpaper: String = 'Control Panel\Desktop\Wallpaper';

TileWallpaper: String = 'Control Panel\Desktop\TileWallpaper';

procedure IncEdit1; stdcall;

procedure IncEdit2; stdcall;

procedure IncEdit3; stdcall;

type

TForm1 = class(TForm)

PageControl1: TPageControl;

TabSheet1: TTabSheet;

PageControl2: TPageControl;

TabSheet6: TTabSheet;

CheckBox1: TCheckBox;

CheckBox2: TCheckBox;

CheckBox3: TCheckBox;

CheckBox4: TCheckBox;

CheckBox5: TCheckBox;

CheckBox6: TCheckBox;

CheckBox8: TCheckBox;

CheckBox9: TCheckBox;

TabSheet7: TTabSheet;

CheckBox12: TCheckBox;

CheckBox13: TCheckBox;

CheckBox14: TCheckBox;

CheckBox15: TCheckBox;

CheckBox17: TCheckBox;

CheckBox18: TCheckBox;

CheckBox19: TCheckBox;

TabSheet9: TTabSheet;

CheckBox20: TCheckBox;

CheckBox23: TCheckBox;

CheckBox24: TCheckBox;

CheckBox25: TCheckBox;

CheckBox26: TCheckBox;

CheckBox28: TCheckBox;

TabSheet10: TTabSheet;

CheckBox29: TCheckBox;

CheckBox30: TCheckBox;

CheckBox31: TCheckBox;

TabSheet11: TTabSheet;

CheckBox32: TCheckBox;

CheckBox33: TCheckBox;

CheckBox34: TCheckBox;

CheckBox35: TCheckBox;

CheckBox36: TCheckBox;

TabSheet3: TTabSheet;

PageControl4: TPageControl;

TabSheet14: TTabSheet;

TabSheet16: TTabSheet;

TabSheet17: TTabSheet;

TabSheet4: TTabSheet;

CheckBox37: TCheckBox;

CheckBox38: TCheckBox;

CheckBox39: TCheckBox;

CheckBox40: TCheckBox;

CheckBox41: TCheckBox;

CheckBox42: TCheckBox;

CheckBox43: TCheckBox;

ComboBox2: TComboBox;

CheckBox46: TCheckBox;

CheckBox22: TCheckBox;

ComboBox1: TComboBox;

CheckBox47: TCheckBox;

CheckBox48: TCheckBox;

CheckBox49: TCheckBox;

CheckBox55: TCheckBox;

CheckBox54: TCheckBox;

CheckBox53: TCheckBox;

CheckBox52: TCheckBox;

CheckBox51: TCheckBox;

CheckBox50: TCheckBox;

CheckBox56: TCheckBox;

CheckBox57: TCheckBox;

CheckBox58: TCheckBox;

CheckBox59: TCheckBox;

CheckBox60: TCheckBox;

CheckBox61: TCheckBox;

CheckBox62: TCheckBox;

CheckBox63: TCheckBox;

CheckBox21: TCheckBox;

Image1: TImage;

Image2: TImage;

Image3: TImage;

Image4: TImage;

Image5: TImage;

Image6: TImage;

Image7: TImage;

Image8: TImage;

Image9: TImage;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Bevel1: TBevel;

Bevel2: TBevel;

Bevel3: TBevel;

Bevel4: TBevel;

Bevel5: TBevel;

Bevel6: TBevel;

Bevel7: TBevel;

Bevel8: TBevel;

Bevel9: TBevel;

Label11: TLabel;

Label10: TLabel;

Label12: TLabel;

Label13: TLabel;

Label14: TLabel;

Label15: TLabel;

Label16: TLabel;

Label17: TLabel;

Label18: TLabel;

Bevel10: TBevel;

Bevel11: TBevel;

Bevel12: TBevel;

Bevel13: TBevel;

Bevel14: TBevel;

Bevel15: TBevel;

Bevel16: TBevel;

Bevel17: TBevel;

Panel1: TPanel;

Image10: TImage;

Button1: TButton;

Button2: TButton;

Button3: TButton;

OpenPictureDialog1: TOpenPictureDialog;

SavePictureDialog1: TSavePictureDialog;

procedure FormShow(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure CheckBox33Click(Sender: TObject);

procedure CheckBox21Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

th1,th2,th3: Cardinal;

h1,h2,h3: Integer;

fstart: Boolean;

end;

procedure Execute1;

procedure Execute2;

procedure Execute3;

var

Form1: TForm1;

implementation

uses MiniReg;

{$R *.dfm}

procedure Execute1;

var f: Boolean; d,d1,d2: DWORD; s,s1,s2: String; a1,a0: array of Byte;

begin

SetLength(a1,1); SetLength(a0,1); a1[0] := 1; a0[0] := 0;

while true do begin

f := (Form1.PageControl1.ActivePageIndex <> 0);

if f or(Form1.PageControl2.ActivePageIndex<>0)

or Form1.fstart then begin

RegGetDWORD(HKEY_LOCAL_MACHINE,

ClearPageFileAtShutdown, d);

Form1.CheckBox1.Checked := (d > 0); d := 0;

RegGetString(HKEY_LOCAL_MACHINE,

DebugDrWatsonAuto, s);

Form1.CheckBox2.Checked := (s <> '') and (s = '0');

RegGetDWORD(HKEY_LOCAL_MACHINE,

AlwaysUnloadDLL, d);

Form1.CheckBox3.Checked := (d > 0); d := 0;

RegGetDWORD(HKEY_CURRENT_USER,

NoInstrumentation, d);

Form1.CheckBox4.Checked := (d > 0); d := 0;

RegGetString(HKEY_LOCAL_MACHINE,

DefaultSeparateVDM, s);

Form1.CheckBox5.Checked := (s = 'yes');

RegGetDWORD(HKEY_LOCAL_MACHINE, DoReport,

d1);

RegGetDWORD(HKEY_LOCAL_MACHINE, ShowUI, d2);

Form1.CheckBox6.Checked := (d1 = 0) or (d2 = 0);

RegGetString(HKEY_LOCAL_MACHINE,

BootOptimizeFunction, s);

Form1.CheckBox8.Checked := (s <> '')and(s = 'Y');

RegGetDWORD(HKEY_CURRENT_USER,

ConsoleQuickEdit, d);

Form1.CheckBox9.Checked := (d > 0); d := 0;

end

else begin

if Form1.CheckBox1.Checked then

RegSetDWORD(HKEY_LOCAL_MACHINE,

ClearPageFileAtShutdown, 1)

else RegSetDWORD(HKEY_LOCAL_MACHINE,

ClearPageFileAtShutdown, 0);

if Form1.CheckBox2.Checked then

RegSetString(HKEY_LOCAL_MACHINE,

DebugDrWatsonAuto, '0')

else RegSetString(HKEY_LOCAL_MACHINE,

DebugDrWatsonAuto, '1');

if Form1.CheckBox3.Checked then

RegSetDWORD(HKEY_LOCAL_MACHINE,

AlwaysUnloadDLL, 1)

else RegSetDWORD(HKEY_LOCAL_MACHINE,

AlwaysUnloadDLL, 0);

if Form1.CheckBox4.Checked then

RegSetDWORD(HKEY_CURRENT_USER,

NoInstrumentation, 1)

else RegSetDWORD(HKEY_CURRENT_USER,

NoInstrumentation, 0);

if Form1.CheckBox5.Checked then

RegSetString(HKEY_LOCAL_MACHINE,

DefaultSeparateVDM, 'yes')

else RegSetString(HKEY_LOCAL_MACHINE,

DefaultSeparateVDM, 'no');

if Form1.CheckBox6.Checked then begin

RegSetDWORD(HKEY_LOCAL_MACHINE, DoReport,

0);

RegSetDWORD(HKEY_LOCAL_MACHINE, ShowUI, 0);

end

else begin

RegSetDWORD(HKEY_LOCAL_MACHINE, DoReport,

1)

RegSetDWORD(HKEY_LOCAL_MACHINE, ShowUI, 1); end;

if Form1.CheckBox8.Checked then

RegSetString(HKEY_LOCAL_MACHINE,

BootOptimizeFunction, 'Y')

else RegSetString(HKEY_LOCAL_MACHINE,

BootOptimizeFunction, 'N');

if Form1.CheckBox9.Checked then

RegSetDWORD(HKEY_CURRENT_USER,

ConsoleQuickEdit, 1)

else RegSetDWORD(HKEY_CURRENT_USER,

ConsoleQuickEdit, 0);

end;

if f or(Form1.PageControl2.ActivePageIndex<>1)

or Form1.fstart then begin

RegGetDWORD(HKEY_CURRENT_USER,

NoLowDiskSpaceChecks, d);

Form1.CheckBox12.Checked := (d > 0);

RegGetString(HKEY_CURRENT_USER, MinAnimate, s);

Form1.CheckBox13.Checked := (s <> '') and (s = '1');

RegGetDWORD(HKEY_CURRENT_USER,

SeparateProcess, d);

Form1.CheckBox14.Checked := (d > 0);

RegGetDWORD(HKEY_LOCAL_MACHINE,

AutoRestartShell, d);

Form1.CheckBox15.Checked := (d > 0);

RegGetBinary(HKEY_CURRENT_USER, LinkImg, s);

Form1.CheckBox17.Checked := (ord(s[1]) = 0); s := '';

RegGetBinary(HKEY_CURRENT_USER, NoSaveSettings,

s);

Form1.CheckBox18.Checked := (s <> '') and (s = '0'); s := '';

RegGetString(HKEY_CURRENT_USER, DragFullWindows,

s);

Form1.CheckBox19.Checked := (s <> '') and (s = '1');

end

else begin

if Form1.CheckBox12.Checked then

RegSetDWORD(HKEY_CURRENT_USER,

NoLowDiskSpaceChecks, 1)

else RegSetDWORD(HKEY_CURRENT_USER,

NoLowDiskSpaceChecks, 0);

if Form1.CheckBox13.Checked then

RegSetString(HKEY_CURRENT_USER, MinAnimate, '1')

else RegSetString(HKEY_CURRENT_USER, MinAnimate,

'0');

if Form1.CheckBox14.Checked then

RegSetDWORD(HKEY_CURRENT_USER,

SeparateProcess, 1)

else RegSetDWORD(HKEY_CURRENT_USER,

SeparateProcess, 0);

if Form1.CheckBox15.Checked then

RegSetDWORD(HKEY_LOCAL_MACHINE,

AutoRestartShell, 1)

else RegSetDWORD(HKEY_LOCAL_MACHINE,

AutoRestartShell, 0);

if Form1.CheckBox17.Checked then

RegSetBinary(HKEY_CURRENT_USER, LinkImg, a0)

else RegSetBinary(HKEY_CURRENT_USER, LinkImg, a1);

if Form1.CheckBox18.Checked then

RegSetBinary(HKEY_CURRENT_USER,

NoSaveSettings, a1)

else RegSetBinary(HKEY_CURRENT_USER,

NoSaveSettings, a0);

if Form1.CheckBox19.Checked then

RegSetString(HKEY_CURRENT_USER,

DragFullWindows, '1')

else RegSetString(HKEY_CURRENT_USER,

DragFullWindows, '0');

end;

if f or(Form1.PageControl2.ActivePageIndex<>2)

or Form1.fstart then begin

RegGetDWORD(HKEY_CURRENT_USER,

EnableBalloonTips, d);

Form1.CheckBox22.Checked := (d > 0);

RegGetDWORD(HKEY_CURRENT_USER,

TaskbarGlomming, d);

Form1.CheckBox21.Checked := (d > 0);

Form1.ComboBox1.Enabled := (d > 0);

RegGetDWORD(HKEY_CURRENT_USER,

TaskbarGroupSize, d);

Form1.ComboBox1.ItemIndex := Integer(d);

RegGetDWORD(HKEY_CURRENT_USER,

NoRecentDocsHistory, d);

Form1.CheckBox20.Checked := (d > 0);

RegGetDWORD(HKEY_CURRENT_USER,

Start_AutoCascade, d);

Form1.CheckBox23.Checked := (d > 0);

RegGetDWORD(HKEY_CURRENT_USER,

NoCommonGroups, d);

Form1.CheckBox24.Checked := (d > 0);

RegGetString(HKEY_CURRENT_USER,

StartMenuScrollPrograms, s);

Form1.CheckBox25.Checked := (s <> '') and (s = 'YES');

RegGetDWORD(HKEY_CURRENT_USER, IntelliMenus,

d);

Form1.CheckBox26.Checked := (d > 0);

RegGetDWORD(HKEY_CURRENT_USER,

StartMenuChange, d);

Form1.CheckBox28.Checked := (d > 0);

end

else begin

if Form1.CheckBox22.Checked then

RegSetDWORD(HKEY_CURRENT_USER,

EnableBalloonTips, 1)

else RegSetDWORD(HKEY_CURRENT_USER,

EnableBalloonTips, 0);

if Form1.CheckBox21.Checked then

RegSetDWORD(HKEY_CURRENT_USER,

TaskbarGlomming, 1)

else RegSetDWORD(HKEY_CURRENT_USER,

TaskbarGlomming, 0);

RegSetDWORD(HKEY_CURRENT_USER,

TaskbarGroupSize, DWORD(Form1.ComboBox1.ItemIndex));

if Form1.CheckBox20.Checked then

RegSetDWORD(HKEY_CURRENT_USER,

NoRecentDocsHistory, 1)

else RegSetDWORD(HKEY_CURRENT_USER,

NoRecentDocsHistory, 0);

if Form1.CheckBox23.Checked then

RegSetDWORD(HKEY_CURRENT_USER,

Start_AutoCascade, 1)

else RegSetDWORD(HKEY_CURRENT_USER,

Start_AutoCascade, 0);

if Form1.CheckBox24.Checked then

RegSetDWORD(HKEY_CURRENT_USER,

NoCommonGroups, 1)

else RegSetDWORD(HKEY_CURRENT_USER,

NoCommonGroups, 0);

if Form1.CheckBox25.Checked then

RegSetString(HKEY_CURRENT_USER,

StartMenuScrollPrograms, 'YES')

else RegSetString(HKEY_CURRENT_USER,

StartMenuScrollPrograms, 'NO');

if Form1.CheckBox26.Checked then

RegSetDWORD(HKEY_CURRENT_USER, IntelliMenus, 1)

else RegSetDWORD(HKEY_CURRENT_USER,

IntelliMenus, 0);

if Form1.CheckBox28.Checked then

RegSetDWORD(HKEY_CURRENT_USER,

StartMenuChange, 1)

else RegSetDWORD(HKEY_CURRENT_USER,

StartMenuChange, 0);

end;

if f or(Form1.PageControl2.ActivePageIndex<>3)

or Form1.fstart then begin

RegGetString(HKEY_LOCAL_MACHINE,

CodePage+'1250', s1);

RegGetString(HKEY_LOCAL_MACHINE,

CodePage+'1252', s2);

Form1.CheckBox29.Checked := (s1 = 'c_1251.nls')

and (s2 = 'c_1251.nls');

RegGetString(HKEY_LOCAL_MACHINE, DosKeybCodes,

s);

Form1.CheckBox30.Checked := (s = 'ru');

RegGetString(HKEY_CURRENT_USER, AutoEndTasks, s);

Form1.CheckBox31.Checked := (s <> '') and (s = '1');

RegGetDWORD(HKEY_LOCAL_MACHINE, AutoRunCD,

d);

Form1.CheckBox37.Checked := (d = 0);

end

else begin

if Form1.CheckBox29.Checked then begin

RegSetString(HKEY_LOCAL_MACHINE,

CodePage+'1250', 'c_1251.nls');

RegSetString(HKEY_LOCAL_MACHINE,

CodePage+'1252', 'c_1251.nls'); end

else begin

RegSetString(HKEY_LOCAL_MACHINE,

CodePage+'1250', 'c_1250.nls');

RegSetString(HKEY_LOCAL_MACHINE,

CodePage+'1252', 'c_1252.nls'); end;

if Form1.CheckBox30.Checked then

RegSetString(HKEY_LOCAL_MACHINE,

DosKeybCodes, 'ru')

else RegSetString(HKEY_LOCAL_MACHINE,

DosKeybCodes, 'us');

if Form1.CheckBox31.Checked then

RegSetString(HKEY_CURRENT_USER, AutoEndTasks,

'1')

else RegSetString(HKEY_CURRENT_USER,

AutoEndTasks, '0');

if Form1.CheckBox37.Checked then

RegSetDWORD(HKEY_LOCAL_MACHINE,

AutoRunCD, 0)

else RegSetDWORD(HKEY_LOCAL_MACHINE,

AutoRunCD, 1);

end;

if f or(Form1.PageControl2.ActivePageIndex<>4)

or Form1.fstart then begin

RegGetDWORD(HKEY_LOCAL_MACHINE,

DontDisplayLastUserName, d);

Form1.CheckBox32.Checked := (d > 0);

RegGetDWORD(HKEY_LOCAL_MACHINE,

DisableStatusMessages, d);

Form1.CheckBox33.Checked := (d > 0);

Form1.CheckBox34.Enabled := (d = 0);

RegGetDWORD(HKEY_LOCAL_MACHINE,

VerboseStatus, d);

Form1.CheckBox34.Checked := (d > 0);

RegGetString(HKEY_USERS, Hotkey, s);

Form1.CheckBox35.Checked := (s <> '') and (s = '2'); s := '';

RegGetString(HKEY_USERS, InitialKeyboardIndicators, s);

Form1.CheckBox36.Checked := (s <> '') and (s = '2');

end

else begin

if Form1.CheckBox32.Checked then

RegSetDWORD(HKEY_LOCAL_MACHINE,

DontDisplayLastUserName, 1)

else RegSetDWORD(HKEY_LOCAL_MACHINE,

DontDisplayLastUserName, 0);

if Form1.CheckBox33.Checked then

RegSetDWORD(HKEY_LOCAL_MACHINE,

DisableStatusMessages, 1)

else RegSetDWORD(HKEY_LOCAL_MACHINE,

DisableStatusMessages, 0);

if Form1.CheckBox34.Checked then

RegSetDWORD(HKEY_LOCAL_MACHINE,

VerboseStatus, 1)

else RegSetDWORD(HKEY_LOCAL_MACHINE,

VerboseStatus, 0);

if Form1.CheckBox35.Checked then

RegSetString(HKEY_USERS, Hotkey, '2')

else RegSetString(HKEY_USERS, Hotkey, '1');

if Form1.CheckBox36.Checked then

RegSetString(HKEY_USERS, InitialKeyboardIndicators, '2')

else RegSetString(HKEY_USERS, InitialKeyboardIndicators,

'0');

end;

Sleep(1000);

end;

end;

procedure Execute2;

var f: Boolean; d,d1,d2: DWORD; s: String;

begin

while true do begin

f := (Form1.PageControl1.ActivePageIndex <> 1);

if f or(Form1.PageControl4.ActivePageIndex<>0)

or Form1.fstart then begin

RegGetDWORD(HKEY_CURRENT_USER,

DisableTaskMgr, d);

Form1.CheckBox38.Checked := (d > 0);

RegGetDWORD(HKEY_CURRENT_USER,

DisableRegistryTools, d);

Form1.CheckBox39.Checked := (d > 0);

RegGetDWORD(HKEY_CURRENT_USER, NoLogOff, d);

Form1.CheckBox40.Checked := (d > 0);

RegGetDWORD(HKEY_CURRENT_USER, NoClose, d);

Form1.CheckBox41.Checked := (d > 0);

RegGetDWORD(HKEY_CURRENT_USER,

NoControlPanel, d);

Form1.CheckBox42.Checked := (d > 0);

RegGetDWORD(HKEY_CURRENT_USER, NoDispCPL, d);

Form1.CheckBox43.Checked := (d > 0);

RegGetDWORD(HKEY_CURRENT_USER, DisableCMD,

d);

Form1.ComboBox2.ItemIndex := Integer(d); d1 := 5; d2 := 5;

RegGetDWORD(HKEY_LOCAL_MACHINE,

RestrictAnonymous, d);

Form1.CheckBox46.Checked := (d > 0);

end

else begin

if Form1.CheckBox38.Checked then

RegSetDWORD(HKEY_CURRENT_USER,

DisableTaskMgr, 1)

else RegSetDWORD(HKEY_CURRENT_USER,

DisableTaskMgr, 0);

if Form1.CheckBox39.Checked then

RegSetDWORD(HKEY_CURRENT_USER,

DisableRegistryTools, 1)

else RegSetDWORD(HKEY_CURRENT_USER,

DisableRegistryTools, 0);

if Form1.CheckBox40.Checked then

RegSetDWORD(HKEY_CURRENT_USER, NoLogOff, 1)

else RegSetDWORD(HKEY_CURRENT_USER, NoLogOff,

0);

if Form1.CheckBox41.Checked then

RegSetDWORD(HKEY_CURRENT_USER, NoClose, 1)

else RegSetDWORD(HKEY_CURRENT_USER, NoClose,

0);

if Form1.CheckBox42.Checked then

RegSetDWORD(HKEY_CURRENT_USER,

NoControlPanel, 1)

else RegSetDWORD(HKEY_CURRENT_USER,

NoControlPanel, 0);

if Form1.CheckBox43.Checked then

RegSetDWORD(HKEY_CURRENT_USER,

NoDispCPL, 1)

else RegSetDWORD(HKEY_CURRENT_USER,

NoDispCPL, 0);

RegSetDWORD(HKEY_CURRENT_USER, DisableCMD,

DWORD(Form1.ComboBox2.ItemIndex));

if Form1.CheckBox46.Checked then

RegSetDWORD(HKEY_LOCAL_MACHINE,

RestrictAnonymous, 1)

else RegSetDWORD(HKEY_LOCAL_MACHINE,

RestrictAnonymous, 0);

end;

if f or(Form1.PageControl4.ActivePageIndex<>1)

or Form1.fstart then begin

RegGetDWORD(HKEY_CURRENT_USER,

NoViewContextMenu, d);

Form1.CheckBox47.Checked := (d > 0);

RegGetDWORD(HKEY_CURRENT_USER, NoFileMenu,

d);

Form1.CheckBox48.Checked := (d > 0);

RegGetDWORD(HKEY_CURRENT_USER,

NoShellSearchButton, d);

Form1.CheckBox49.Checked := (d > 0);

end

else begin

if Form1.CheckBox47.Checked then

RegSetDWORD(HKEY_CURRENT_USER,

NoViewContextMenu, 1)

else RegSetDWORD(HKEY_CURRENT_USER,

NoViewContextMenu, 0);

if Form1.CheckBox48.Checked then

RegSetDWORD(HKEY_CURRENT_USER,

NoFileMenu, 1)

else RegSetDWORD(HKEY_CURRENT_USER,

NoFileMenu, 0);

if Form1.CheckBox49.Checked then

RegSetDWORD(HKEY_CURRENT_USER,

NoShellSearchButton, 1)

else RegSetDWORD(HKEY_CURRENT_USER,

NoShellSearchButton, 0);

end;

if f or(Form1.PageControl4.ActivePageIndex<>2)

or Form1.fstart then begin

RegGetDWORD(HKEY_CURRENT_USER, NoSetTaskbar,

d);

Form1.CheckBox50.Checked := (d > 0);

RegGetDWORD(HKEY_CURRENT_USER,

NoChangeStartMenu, d);

Form1.CheckBox51.Checked := (d > 0);

RegGetDWORD(HKEY_CURRENT_USER, NoFind, d);

Form1.CheckBox52.Checked := (d > 0);

RegGetDWORD(HKEY_CURRENT_USER, NoRun, d);

Form1.CheckBox53.Checked := (d > 0);

RegGetDWORD(HKEY_CURRENT_USER, NoSMHelp, d);

Form1.CheckBox54.Checked := (d > 0);

RegGetDWORD(HKEY_CURRENT_USER,

NoRecentDocsMenu, d);

Form1.CheckBox55.Checked := (d > 0);

RegGetDWORD(HKEY_CURRENT_USER,

NoTrayContextMenu, d);

Form1.CheckBox56.Checked := (d > 0);

end

else begin

if Form1.CheckBox50.Checked then

RegSetDWORD(HKEY_CURRENT_USER,

NoSetTaskbar, 1)

else RegSetDWORD(HKEY_CURRENT_USER,

NoSetTaskbar, 0);

if Form1.CheckBox51.Checked then

RegSetDWORD(HKEY_CURRENT_USER,

NoChangeStartMenu, 1)

else RegSetDWORD(HKEY_CURRENT_USER,

NoChangeStartMenu, 0);

if Form1.CheckBox52.Checked then

RegSetDWORD(HKEY_CURRENT_USER, NoFind, 1)

else RegSetDWORD(HKEY_CURRENT_USER, NoFind, 0);

if Form1.CheckBox53.Checked then

RegSetDWORD(HKEY_CURRENT_USER, NoRun, 1)

else RegSetDWORD(HKEY_CURRENT_USER, NoRun, 0);

if Form1.CheckBox54.Checked then

RegSetDWORD(HKEY_CURRENT_USER, NoSMHelp, 1)

else RegSetDWORD(HKEY_CURRENT_USER,

NoSMHelp, 0);

if Form1.CheckBox55.Checked then

RegSetDWORD(HKEY_CURRENT_USER,

NoRecentDocsMenu, 1)

else RegSetDWORD(HKEY_CURRENT_USER,

NoRecentDocsMenu, 0);

if Form1.CheckBox56.Checked then

RegSetDWORD(HKEY_CURRENT_USER,

NoTrayContextMenu, 1)

else RegSetDWORD(HKEY_CURRENT_USER,

NoTrayContextMenu, 0);

end;

Sleep(1000);

end;

end;

procedure Execute3;

var f: Boolean; d,d1,d2: DWORD; s,s1,s2: String;

begin

while true do begin

if (Form1.PageControl1.ActivePageIndex<>2)

or Form1.fstart then begin

RegGetDWORD(HKEY_CURRENT_USER,

PaintDesktopVersion, d);

Form1.CheckBox57.Checked := (d > 0);

RegGetDWORD(HKEY_CURRENT_USER, NoDesktop, d);

Form1.CheckBox58.Checked := (d > 0);

RegGetDWORD(HKEY_CURRENT_USER,

NoActiveDesktop, d);

Form1.CheckBox59.Checked := (d > 0);

RegGetDWORD(HKEY_CURRENT_USER,

NoDispBackgroundPage, d);

Form1.CheckBox60.Checked := (d > 0);

RegGetDWORD(HKEY_CURRENT_USER,

NoDispScrSavPage, d);

Form1.CheckBox61.Checked := (d > 0);

RegGetDWORD(HKEY_CURRENT_USER,

NoDispSettingsPage, d);

Form1.CheckBox62.Checked := (d > 0);

RegGetDWORD(HKEY_CURRENT_USER,

NoDispAppearancePage, d);

Form1.CheckBox63.Checked := (d > 0);

end

else begin

if Form1.CheckBox57.Checked then

RegSetDWORD(HKEY_CURRENT_USER,

PaintDesktopVersion, 1)

else RegSetDWORD(HKEY_CURRENT_USER,

PaintDesktopVersion, 0);

if Form1.CheckBox58.Checked then

RegSetDWORD(HKEY_CURRENT_USER, NoDesktop, 1)

else RegSetDWORD(HKEY_CURRENT_USER,

NoDesktop, 0);

if Form1.CheckBox59.Checked then

RegSetDWORD(HKEY_CURRENT_USER,

NoActiveDesktop, 1)

else RegSetDWORD(HKEY_CURRENT_USER,

NoActiveDesktop, 0);

if Form1.CheckBox60.Checked then

RegSetDWORD(HKEY_CURRENT_USER,

NoDispBackgroundPage, 1)

else RegSetDWORD(HKEY_CURRENT_USER,

NoDispBackgroundPage, 0);

if Form1.CheckBox61.Checked then

RegSetDWORD(HKEY_CURRENT_USER,

NoDispScrSavPage, 1)

else RegSetDWORD(HKEY_CURRENT_USER,

NoDispScrSavPage, 0);

if Form1.CheckBox62.Checked then

RegSetDWORD(HKEY_CURRENT_USER,

NoDispSettingsPage, 1)

else RegSetDWORD(HKEY_CURRENT_USER,

NoDispSettingsPage, 0);

if Form1.CheckBox63.Checked then

RegSetDWORD(HKEY_CURRENT_USER,

NoDispAppearancePage, 1)

else RegSetDWORD(HKEY_CURRENT_USER,

NoDispAppearancePage, 0);

end;

Sleep(1000);

end;

end;

procedure IncEdit1; begin Execute1; end;

procedure IncEdit2; begin Execute2; end;

procedure IncEdit3; begin Execute3; end;

procedure TForm1.CheckBox33Click(Sender: TObject);

begin CheckBox34.Enabled := not CheckBox33.Checked; end;

procedure TForm1.CheckBox21Click(Sender: TObject);

begin ComboBox1.Enabled := CheckBox21.Checked; end;

procedure TForm1.FormShow(Sender: TObject);

begin

fstart := true;

Form1.PageControl1.ActivePageIndex := 2;

Form1.PageControl2.ActivePageIndex := 4;

h1 := BeginThread(nil, 1024, @incedit1, nil, 1, th1);

h2 := BeginThread(nil, 1024, @incedit2, nil, 2, th2);

h3 := BeginThread(nil, 1024, @incedit3, nil, 3, th3);

Form1.PageControl2.ActivePageIndex := 0;

Form1.PageControl1.ActivePageIndex := 0;

Sleep(1000);

Button3Click(Sender);

fstart := false;

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

TerminateThread(h1, 0);

TerminateThread(h2, 0);

TerminateThread(h3, 0);

end;

procedure TForm1.Button2Click(Sender: TObject);

var s: String;

begin

if OpenPictureDialog1.Execute then begin

s := OpenPictureDialog1.FileName;

RegSetString(HKEY_CURRENT_USER, Wallpaper, s);

RegSetString(HKEY_CURRENT_USER, TileWallpaper, '0');

SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, nil,

SPIF_SENDWININICHANGE);

Screen.Realign;

Button3Click(Sender);

end;

end;

procedure TForm1.Button3Click(Sender: TObject);

var s: String;

begin

RegGetString(HKEY_CURRENT_USER, Wallpaper, s);

if FileExists(s) then

Image10.Picture.LoadFromFile(s);

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

if Image10.Picture.GetNamePath<>'' then

if SavePictureDialog1.Execute then

Image10.Picture.SaveToFile(SavePictureDialog1.FileName);

end;

end.

Интерфейс программы

Интерфейс программы основан на идеи разделения настроек (системы) на категории, представленные вкладками. Каждая вкладка окна программы имеет определенный набор параметров соответствующий определенной группе (вкладки первого уровня) и подгруппе (вкладки второго уровня) настроек. Теперь рассмотрим каждую из вкладок более подробнее.

Вклада "Система"

Данная вкладка предназначения для настройки некоторых основных параметров системы, которые наиболее привлекают внимание пользователя. Тем не менее, некоторые довольно интересные параметры здесь не встретятся, за той простоя причиной, что ими может управлять и сама система, да и на большинстве современных компьютеров они не влияют на стабильность и быстродействие системы (например, изменить размер файла подкачки и вообще разрешить/запретить его использование здесь нельзя - размера файла подкачки устанавливаемого системой по умолчанию вполне хватает для работы системы, при том объеме ОП ПК что сейчас доступен пользователю).

Название подвкладки может прозвучать как тавтология, но количество повторов одного слова в данном случае здесь не играет роли, т.к. эта вкладка несет на себе настройки основных служб Windows. Например, параметр "Запускать 16-битные приложения в отдельных процессах" отвечает за режим работы 16-разрядной подсистемы, и позволяет сделать работу консольных приложений более стабильной (если одно из одновременно запушенных приложений сделает ошибку - это не приведет краху остальных). Так параметр "Очищать файл подкачки перед перезагрузкой системы" позволяет ускорить загрузку системы и её дальнейшею работы, т.к. весь страничный файл (-ы) будут очищаться и системе не нужно будет использовать его не занятую с прошлого сеанса работы часть, а начнет заполнять его с самого начала. Флаг "Отключить встроенный отладчик Dr.Watson" запрещает использовать стандартное средство отладки приложений, что позволяет существенно ускорить работу системы и отключить окно навязчивые окна с сообщением об ошибки приложения (в большинстве случаев). "Автоматически выгружать неиспользуемые библиотеки" - параметр, включение которого заставляет систему не хранить в памяти библиотеки которые давно не использовались, это позволяет несколько освободить память, особенно когда необходимо много приложений использовать одновременно, но может привести к несколько нестабильной работе системы. "Отключить слежение Windows за пользователем" - отключает ведение системой журнала часто запускаемых приложений, открытых приложений и т.д. "Не отсылать в Microsoft отчеты об ошибках" - отключает появление запроса на отправку отчета об ошибке программы или системы её разработчикам, т.к. это иногда нервирует, а при отладке своего приложения просто выводит из себя. Опция "Оптимизировать системные файлы при загрузке" заставляет системы дефрагментировать системные файлы (не использующиеся в данный момент) как на жестком диске так и в ОП, но только при загрузке системы, что может привести к замедлению её загрузки, но ускорит её дальнейшую работу. И наконец, последний параметр данной вкладки "Использовать быстрое редактирование в командной строке" позволяет использовать кнопки мыши для копирования и вставки (без контекстного меню - оно все равно будет недоступно!).

Вкладка "Проводник" предназначена для настройки параметров системной службы "Explorer" ("Проводник"). Т.к. в Windows Проводник является и графической оболочкой и программой навигации по файловой системе, то следует уточнить, что здесь представлены параметры для Проводника как графической оболочки. Опция "Отключить сообщения о недостатке свободного места" в принципе приведена здесь больше для систем под управлением Windows 2000 и более ранних, т.к. именно они боле используются на ПК с жесткими дисками малого объема. "Анимация при сворачивании и разворачивании окон" уставлена в системе по умолчанию и делает интерфейс более красочным, но требует несколько боле ресурсов для оболочки, отключение этой опции позволяет выделить больше процессорного времени и памяти на действительно необходимы цели (актуально для слабых машин). "Запуск окна Проводника в отдельном процессе", позволяет сделать работу системы более стабильной за счет того что окна Проводника работают не в отдельных потоках, а в отдельных процессах и при "зависании" одного окна весь Рабочий стол с другими окнами Проводника не будет закрываться. Параметр "Автоматически перезагружать проводник при ошибках" заставляет следить за стабильной работой проводника, и если он не отвечает на запросы системы - перезагружать его, это может спасти от длительных зависаний системы по причинам связанных с работой оболочки или Проводников. "Не добавлять "Ярлык для…" у новых ярлыков" говорит само за себя - имя ярлыка будет то же что и объекта на который он ссылается. "Отключить автозапись состояния окон Проводника" говорит системе о том, что не надо сохранять размеры и положение последнего окна проводника для использования их при следующем запуске Проводника. "Отображать содержимое окна при перетаскивании" заставляет систему при перемещении окна динамически изменять положение перетаскиваемого она, а не отображать рамку окна до завершения перетаскивания (отключение опции актуально для слабых машин).

Вкладка "Панель задач и меню Пуск" служит для изменения некоторых параметров соответствующих элементов. Опция "Показывать всплывающие подсказки" разрешает системе выводить "подсказки" для элементов меню Пуск и Панели задач. При помощи опции "Группировать сходные кнопки на панели задач" позволяет высвободить место для отображения кнопок новых окон благодаря группировки окон с одного приложения в кнопку с раскрывающимся списком. А список уточнения этого параметра может помочь настроить эту функцию пользователю под себя. Параметр "Не вести историю открытых документов" заставит систему очистить список недавно открытых документов в меню Пуск и не больше не запретит его пополнение. Опция "Раскрывать меню при наведении и задержке указателя" позволит открывать подпункты меню Пуск просто наведением указателя на него, при этом клик уже не нужен будет, хотя и не запрещен (включено по умолчанию). "Не показывать общие ярлыки (All Users)" разрешит отображение в меню Пуск только ярлыком текущего пользователя (для каждого пользователя задается отдельно). "Использовать прокрутку меню пуск" по умолчанию выключено, для отображения меню в несколько рядов дабы показать все его пункты, а с прокруткой меню будет иметь одну колонку и кнопки прокрутки, в случае если не пунктов больше чем на одну колонку (возможно актуально для ПК с мониторами малого разрешения или по индивидуальному вкусу). "Использование сокращенного меню" скроет те пункты меню, что давно использовались, до нажатия кнопок прокрутки (рекомендуется использовать с предыдущим параметром, но можно и без него). "Разрешение перетаскивания объектов" позволяет помещать в меню Пуск ярлыки и файлы с рабочего стола или другого места простым перетаскиванием в нужную категорию.

Вкладка "Решение проблем" может помочь исправить некоторые неприятные ситуации когда вместо русского текста отображаются всякие непонятные знаки или когда система не завершается из-за зависшего приложения. Так параметр "Использовать кодировку 1251 вместо 1252" может помочь решить помочь решить проблему с отображением русского текста в некоторых приложениях. "Переключение на русскую раскладку в DOS приложениях" позволит вводить русский текст в консольных приложениях самостоятельно не меняющих раскладку самостоятельно. Опция "Автоматически завершать зависшие приложения" может быть очень полезна, особенно при перезагрузки, т.к. она заставляет систему ждать самостоятельного завершения приложения определенное время, а затем принудительно завершать их работу считая их зависшими, это может существенно повысить скорость выключения ПК. Параметр "Отключить автозапуск компакт-дисков" запрещает автозапуск так называемых "AutoRun" приложений присутствующих на всех современных дисках с ПО (игровых, сборниках музыки для ПК и т.д.).

Вкладка "Загрузка системы" позволяет изменить некоторые заметные пользователю параметры загрузки системы, т.е. до входа в тот или оной сеанс. Так опция "Не показывать имя последнего пользователя" запрещает системе отображать имя последнего использующего систему пользователя (актуально для систем предшествующих Windows XP, а так же в самой XP при использовании классического стиля). "Не показывать сообщения при входе/выходе" избавит пользователя от отображения всякого рода всплывающих окон при загрузке или завершении работы системы (в том числе и окон с уведомлениями от ошибках). "Показ выполняемых команд при входе/выходе" приведет к появлению окна с отчетом о выполняемых в текущее время (и выполненных) командах. "Использовать Ctrl+Shift для переключения раскладки" - говорит само за себя. Опция "Включить Num Lock при запуске" заставит систему включить соответствующий режим клавиатуры.

Вклада "Защита"

Эта вкладка предоставляет информация о параметрах защиты и позволяет их изменить. Под защитой в данном случае подразумевается не шифрование или доступ с паролем / по привилегии, а запрет вызова определенных служб и отображение некоторых вкладок системных утилит, для запрета изменения определенных параметров.

Вкладка "Система" несет на себе опции запрета использования тех или иных служб системы. Например опция "Запретить вызов Диспетчера задач" предотвращает вызов системной службы Диспетчер задач, а "Запрет изменения свойств экрана" не позволяет получить доступ к Свойствам экрана, открываемых через контекстное меню рабочего стола или через панель задач, но тем не менее не убирают команды их вызова. "Запрет редактирования реестра" не допускает внесение изменений в реестр и запрещает доступ к системной утилите RegEdit. "Запрещение завершение сеанса" наверное больше нужно для тех систем, что должны постоянно работать, таких как серверы, а предотвращение завершение работы на обычных станциях, я думаю ни к чему. Опция "Запретить завершении работы и убрать кнопку из меню Пуск" выполняет аналогичные предыдущему параметры действия, но они касаются не отдельного сеанса работы пользователя, а работы системы в целом. "Запрет запуска аплетов в Панели управления" разрешает работу Панели управления только с её стандартными утилитами, а использование утилит (в данном случае аплетов) установленных сторонним ПО будет недоступно. Далее на данной вкладке располагается раскрывающийся список для настройки "защиты" командной строки, дабы предотвратить несанкционированный доступ и/или запретить использование bat или reg файлов запускаемых консольными приложениями и потенциально способных навредить системе. Опция "Запретить анонимным пользователям просматривать ресурсы системы" запретит доступ как локальных так и сетевых пользователей вошедших как "Гости" или скрывающие свое имя к просмотри и соответственно получению доступа к ресурсам системы.

Вкладка "Меню Пуск и Панель задач" управляет доступом к настройкам соответствующих элементов интерфейса и некоторыми их элементам. Так, опция "Сделать недоступными свойства Панели задач и меню Пуск" запрещает открытие диалога настроек меню Пуск и Панели задач. "Запрет модификации меню Пуск" предотвращает изменение порядка и состава пунктов меню. "Запрет пункта Поиск в меню Пуск" предотвращает запуск из главного меню утилиты поиска, но не запрещает её вызов из Проводника. Аналогично со следующими опциями: "Запретить пункт Выполнить в меню Пуск", "Запретить пункт Справка и поддержка в меню Пуск", "Запретить пункт Недавние документы в меню Пуск". Параметр "Запретить контекстное меню Панели задач" не только не позволит изменять параметры Панели задач через её контекстное меню, но запретит и само контекстное меню.

Вклада "Рабочий стол"

Это последняя вкладка программы и на ней подвкладок, т.к. используемых мной параметров мало для разделения их на вкладки. Данная вкладка позволяет настроить доступ к настройкам Рабочего стола, и изменить фоновое изображение. Так опция "Версия Windows на рабочем столе" заставит explorer выводить строки с версией системы по углам экрана. А вот опции "Запретить рабочий стол" и "Запретить active Desktop" не приводят к отображение новой информации, а наоборот запрещают её вывод - первая опция запрещает отображение всех значков на Рабочем стола, даже тех что относятся к текущему пользователю, а вторая запрещает использование в качестве фона Рабочего стола какого-либо изображения и/или web-страницы. Остальные параметры начинающиеся со слов "Скрыть вкладку" относятся к диалогу свойств Рабочего стола и заставляют систему скрывать одноименные вкладки этого окна. Что касается последних элементов данной вкладки, расположенных ниже последнего разделителя, то они предоставляют возможность просмотра текущего фонового изображения (даже если его отображение запрещено на рабочем столе) и его изменение, а так же возможность сохранение его в произвольном графическом файле. При этом получается информация из реестра лишь о местоположении файла изображения и его установка, само изображение уже читается из файла.

Заключение

Теперь подведем итоги. В Курсовом проекте были использованы API-функции работы с реестром для работы с реестром, а так же для работы с потоками. Результат выполнения курсового проекта - приложение с тремя дочерними потоками считывающими из реестра значения параметром, распределенных по трем основным категориям (параметры системы (её основных компонент), защиты (управлении доступом к некоторым параметрам системы) и рабочего стола (управление доступа к настройкам рабочего стола и изменение некоторых параметров)), и заносящим изменения этих параметров в реестр. В состав созданного приложения входит модуль, в котором были описаны функции-надстройки над API функциями для сведения работы с ними к минимуму, и упрощению их использования. Таким образом задачу курсового проекта я считаю выполненной.

Используемая литература

1.
Система программирования Delphi 7. Фаронов В. 2005 г. С.-П.

2. Microsoft Windows 2000 Professional. Александров А. 2003 г. С.-П.

3. Microsoft Windows XP. Home Edition. Кокорев О. 2006 г. С.-П.

4. Delphi 7. Горман В.Н. 2005 г. М.

Страницы: 1, 2


© 2010 BANKS OF РЕФЕРАТ