//просимулировать нажатие клавиши мыши
{! Не проверено}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);
if visi then begin
//Включение курсора
while CState<0 do CState:=ShowCursor(True);
end else begin
//Выключение курсора
while Cstate >= 0 do Cstate := ShowCursor(False);
end;
End;
//Cache,Cookies,Desktop,Favorites,Fonts,Personal,Programs,SendTo,Start Menu,Startup
function ShellFolder(const folderType:string):string;
var registry:TRegistry;
begin
result:='';
Registry := TRegistry.Create;
try
Registry.RootKey := HKey_Current_User;
Registry.OpenKey('Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders', False);
result:= Registry.ReadString(folderType);
finally
Registry.Free;
end;
end;
procedure SetWallpaper(const fileName:string;tile:boolean);
var Reg: TRegIniFile;
begin
Reg:=TRegIniFile.Create('Control Panel');
Reg.WriteString('desktop', 'Wallpaper', fileName);