Советы по Delphi. Версия 1.4.3 от 1.1.2001
Шрифт:
//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);
if tile then Reg.WriteString('desktop', 'TileWallpaper', '1')
else Reg.WriteString('desktop', 'TileWallpaper', '0');
Reg.Free;
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, nil, SPIF_SENDWININICHANGE);
end;
{procedure setWallPaper(fileName:string);
begin
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, pChar(fileNAme), 0);
end;}
procedure refreshWindowsDesktop;
begin
SendMessage(FindWindow('Progman', 'Program Manager'), WM_COMMAND, $A065, 0);
end;
procedure mouseEmul(absPoint:TPoint; up,down:boolean);
Поделиться с друзьями: