Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
{ Constants: CSIDL_DESKTOP CSIDL_INTERNET CSIDL_PROGRAMS CSIDL_CONTROLS CSIDL_PRINTERS CSIDL_PERSONAL CSIDL_FAVORITES CSIDL_STARTUP CSIDL_RECENT CSIDL_SENDTO CSIDL_BITBUCKET CSIDL_STARTMENU CSIDL_DESKTOPDIRECTORY CSIDL_DRIVES CSIDL_NETWORK CSIDL_NETHOOD CSIDL_FONTS CSIDL_TEMPLATES CSIDL_COMMON_STARTMENU CSIDL_COMMON_PROGRAMS CSIDL_COMMON_STARTUP CSIDL_COMMON_DESKTOPDIRECTORY CSIDL_APPDATA CSIDL_PRINTHOOD CSIDL_ALTSTARTUP CSIDL_COMMON_ALTSTARTUP CSIDL_COMMON_FAVORITES CSIDL_INTERNET_CACHE CSIDL_COOKIES CSIDL_HISTORY } usesActiveX, ShlObj; procedure
TForm1.Button1Click(Sender: TObject);
// Replace CSIDL_HISTORY with the constants above varAllocator: IMalloc; SpecialDir: PItemIdList; FBuf: array
[0..MAX_PATH] of
Char; PerDir: string
; begin
if
SHGetMalloc(Allocator) = NOERROR then
begin
SHGetSpecialFolderLocation(Form1.Handle, CSIDL_HISTORY, SpecialDir); SHGetPathFromIDList(SpecialDir, @FBuf[0]); Allocator.Free(SpecialDir); ShowMessage(string
(FBuf)); end
; end
;
// With Windows Me/2000, the SHGetSpecialFolderLocation function // is superseded by ShGetFolderLocation. // function to get the desktop folder location: functionGetDeskTopPath : string
; var
shellMalloc: IMalloc; ppidl: PItemIdList; PerDir: string
; begin
ppidl := nil
; try
if
SHGetMalloc(shellMalloc) = NOERROR then
begin
SHGetSpecialFolderLocation(Form1.Handle, CSIDL_DESKTOP, ppidl); SetLength(Result, MAX_PATH); if
not
SHGetPathFromIDList(ppidl, PChar(Result)) then
raise
exception.create('SHGetPathFromIDList failed : invalid pidl'); SetLength(Result, lStrLen(PChar(Result))); end
; finally
if
ppidl <> nil
then
shellMalloc.free(ppidl); end
; end
;