Что делать:
Запускаешь 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);