Программирование
Главная » FAQ |
// Способ первый uses ..., ShellAPI; function DeleteFile( sFileName: string ): boolean; var fos: TSHFileOpStruct; begin sFileName := sFileName + #0; FillChar( fos, SizeOf( fos ), 0 ); with fos do begin wFunc := FO_DELETE; pFrom := PChar( sFileName ); fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION or FOF_SILENT; end; Result := ( 0 = ShFileOperation( fos ) ); end; procedure TForm1.Button1Click(Sender: TObject); begin DeleteFile( 'c:\test.txt' ); end; // Способ второй uses ..., ShellAPI; function DeleteFile( const FileName: string; Wnd: HWND = 0 ): boolean; var FileOp: TSHFileOpStruct; begin FillChar( FileOp, SizeOf( FileOp ), 0 ); if Wnd = 0 then Wnd := Application.Handle; FileOp.Wnd := Wnd; FileOp.wFunc := FO_DELETE; FileOp.pFrom := PChar( FileName ); FileOp.fFlags := FOF_ALLOWUNDO or FOF_NOERRORUI or FOF_SILENT; Result := ( SHFileOperation( FileOp ) = 0 ) and ( not FileOp.fAnyOperationsAborted ); end; procedure TForm1.Button1Click(Sender: TObject); begin DeleteFile( 'c:\test.txt', Handle ); end; |
procedure EmptyRecycleBin; const SHERB_NOCONFIRMATION = $00000001; SHERB_NOPROGRESSUI = $00000002; SHERB_NOSOUND = $00000004; type TSHEmptyRecycleBin = function ( Wnd: HWND; pszRootPath: PChar; dwFlags: DWORD): HRESULT; stdcall; var SHEmptyRecycleBin: TSHEmptyRecycleBin; LibHandle: THandle; begin LibHandle := LoadLibrary( PChar( 'Shell32.dll' ) ); if LibHandle <> 0 then @SHEmptyRecycleBin := GetProcAddress( LibHandle, 'SHEmptyRecycleBinA' ) else begin MessageDlg( 'Failed to load Shell32.dll.', mtError, [mbOK], 0 ); Exit; end; if @SHEmptyRecycleBin <> nil then SHEmptyRecycleBin( Application.Handle, nil, SHERB_NOCONFIRMATION or SHERB_NOPROGRESSUI or SHERB_NOSOUND ); FreeLibrary( LibHandle ); @SHEmptyRecycleBin := nil; end; |
procedure TForm1.Cut1Click(Sender: TObject); SendMessage (ActiveControl.Handle, WM_Cut, 0, 0); end; procedure TForm1.Copy1Click(Sender: TObject); begin SendMessage (ActiveControl.Handle, WM_Copy, 0, 0); end; procedure TForm1.Paste1Click(Sender: TObject); begin SendMessage (ActiveControl.Handle, WM_Paste, 0, 0); end; |
uses procedure TForm1.Button1Click(Sender: TObject); var Registry: TRegistry; begin { создаём объект TRegistry } Registry := TRegistry.Create; { устанавливаем корневой ключ; напрмер hkey_local_machine или hkey_current_user } Registry.RootKey := hkey_local_machine; { открываем и создаём ключ } Registry.OpenKey('software\MyRegistryExample',true); { записываем значение } Registry.WriteString('MyRegistryName','MyRegistry Value'); { закрываем и освобождаем ключ } Registry.CloseKey; Registry.Free; end; // для удаления ключа используется функция Registry.DeleteKey |
procedure SetAutorun(aProgTitle,aCmdLine: string; aRunOnce: boolean ); var hKey: string; hReg: TRegIniFile; begin if aRunOnce then hKey := 'Once' else hKey := ''; hReg := TRegIniFile.Create( '' ); hReg.RootKey := HKEY_LOCAL_MACHINE; hReg.WriteString('Software\Microsoft\Windows\CurrentVersion\Run' + hKey + #0, aProgTitle, aCmdLine ); hReg.destroy; end; |