Выбрать главу

Что делать:

Запускаешь regedit (regedt32), находишь где лежат описания счетчиков. Точно я не помню, под рукой NT нет, но примерно так – HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/PerfLib/409 (419). В каждом разделе по два ключа – список названий счетчиков и список их описаний. Заходишь в 409, открываешь ключ для изменений и при помощи Ctrl-Ins копируешь его содержимое в буфер обмена и жмешь Cancel. Теперь идешь в 419 открываешь тот же ключ, идешь в начало списка и при помощи Shift-Ins вставляешь, жмешь Ok. Так надо сделать и для названий счетчиков и для их описания. Для полного счастья можно и SQL счетчики из 419 в 409 (в конец) скопировать.

xWindows — FAQ

Артем Федюк прислал свой сборник любимых функций:

(*

Функции собрал Артем Федюк (Киев, 27.11.2000)E-Maiclass="underline" xartrain@hotmail.comсообщите, пожалуйста о найденных ошибках*)

{H+}//use huge strings

unit XWindows;

INTERFACE

uses classes, windows, shellApi, shlobj, sysUtils, forms, mmsystem, controls, Messages, Registry, IniFiles;

{***************************ПРОЦЕССЫ И УПРАВЛЕНИЕ ИМИ**************************}

procedure execWait(const comLine:string);

procedure shellExec(const fileName:string);

//также можно использовать Sleep(ms:DWORD);

procedure Delay(msecs : DWORD);

//фактически определяется запущена ли сейчас среда Delphi

function isDelphiRunning:boolean;

function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall; external 'KERNEL32.DLL';

procedure applicationInCtrlAltDelList(visi:boolean);

procedure applicationInTaskBar(visi:boolean);

//Запретить/разрешить Ctrl-Alt-Del

procedure CtrlAltDel(state:boolean);

//Окно без закладки в TaskBar

procedure noAppInTaskbar;

//Определение какие приложения уже запущены

procedure ApplicationList(formHandle:THandle; var stringList:TStringList);

{***************************ВРЕМЯ**********************************************}

function SetTime(DateTime:TDateTime):Boolean;

//обновить часы - SendMessage(HWND_TOPMOST,WM_TIMECHANGE,0,0);

{***************************ИНТЕРФЕЙС WINDOWS**********************************}

//Cache,Cookies,Desktop,Favorites,Fonts,Personal,Programs,SendTo,Start Menu,Startup

function ShellFolder(const folderType:string):string;

procedure refreshWindowsDesktop;

procedure Startbutton(visi:boolean);

//убрать/показать TaskBar

procedure TaskBar(visi:boolean);

//оч2истить меню "Документы"

procedure clearDocuments;

//добавить документ в меню 'Документы'

// Для данного файла должно быть зарегистрировано средство просмотра

procedure addFileToDocuments(const fileName:string);

//Значение функции TRUE если мелкий шрифт

function SmallFonts:Boolean;

{! проверить}procedure setWallPaper(const fileName:string; tile:boolean);

{***************************МОНИТОР********************************************}

procedure RunCurrentScreenSaver;

//use application:TApplication object

procedure monitorState(state:boolean);

{***************************КЛАВИАТУРА*****************************************}

procedure RussianKbdLayout;

procedure EnglishKbdLayout;

procedure UkrainianKbdLayout;

{***************************МЫШЬ***********************************************}

//относительные координаты в абсолютные - function ClientToScreen(Pt:TPoint):TPoint;

procedure mouseEmul(absPoint:TPoint; up,down:boolean);

procedure mouseCursor(visi:boolean);

//просимулировать нажатие клавиши мыши

{! Не проверено}procedure SendMouseClick(x,y:integer;wHandle:THandle);

{**8*************************ДИСКОВЫЕ ФУНКЦИИ**********************************}

//8FAT,FAT32,CDFS,NWCOMPA

//0-"A",1-"B",2-"C"

function GetFileSysName(Drive : Byte) : String;

function GetVolumeName(Drive : Byte) : String;

function DriveExists(Drive : Byte) : Boolean;

//'?';'Path2 does not exists';'Removable';'Fixed';'Remote';'CD-ROM';'RAMDISK'

function CheckDriveType(Drive : Byte) : String;

//Определение готовности дисковода к работе

function DiskInDrive(const Drive: char): Boolean;

function HDDSerialNum(const drivePath:string{'C:\'}):integer;

{***************************CD-ROM*********************************************}

function getCdromPath:string;

procedure CDROMOpen;

procedure CDROMClose;

{***************************REGISTRY*******************************************}

procedure StartFromRegistry(appName,appPath:string);

//запускается до WindowsLogon

procedure StartServiceFromRegistry(appName,appPath:string);

procedure StartFromWinIni(appPath:string);

function IsInstalled (FileExe: String): Boolean;

IMPLEMENTATION

(*

Вопрос:

Можно ли как-то уменьшить мерцание при перерисовке компонента?

Ответ:

Если добавить флаг csOpaque (непрозрачный) к свойству ControlStyle компонента - то фон компонента перерисовываться не будет.

Пример:

constructor TMyControl.Create;

begin

 inherited;

 //проверка "if not inIDE" должна быть вставлена в том случае, когда TMyControl - компонент

 //чтобы среда IDE Delphi не глючила на этапе разработки

 if not inIDE then ControlStyle := ControlStyle + [csOpaque];

end;

...

procedure Register;

begin

 RegisterComponents('MyGraphics', [TMyControl]);

 inIDE:=True;

end;

*)

procedure mouseCursor(visi:boolean);

Var CState:Integer;

Begin

 CState:= ShowCursor(True);