Hallo wie komme ich unter Windows Vista an folgende Verzeichnisse:
Schriftarten
Programme
und die Aktuelle Windows Version
Genutzt habe ich bischener
CSIDL_FONTS = $0014;
// A virtual folder containing fonts. A typical path is C:\Windows\Fonts.
Delphi-Quellcode:
function GetShellFolder(CSIDL: Integer): string;
implementation
type
PSHItemID = ^TSHItemID;
{$EXTERNALSYM _SHITEMID}
_SHITEMID = record
cb: Word;
abID: array[0..0] of Byte;
end;
TSHItemID = _SHITEMID;
{$EXTERNALSYM SHITEMID}
SHITEMID = _SHITEMID;
type
PItemIDList = ^TItemIDList;
{$EXTERNALSYM _ITEMIDLIST}
_ITEMIDLIST = record
mkid: TSHItemID;
end;
TItemIDList = _ITEMIDLIST;
{$EXTERNALSYM ITEMIDLIST}
ITEMIDLIST = _ITEMIDLIST;
function SHGetSpecialFolderLocation(hwndOwner: HWND; nFolder: Integer;
var ppidl: PItemIDList): HResult; stdcall; external 'shell32.dll' name 'SHGetSpecialFolderLocation';
function SHGetPathFromIDList(pidl: PItemIDList; pszPath: PChar): BOOL; stdcall; external 'shell32.dll' name 'SHGetPathFromIDListA';
function GetShellFolder(CSIDL: Integer): string;
var
pidl: PItemIdList;
FolderPath: string;
SystemFolder: Integer;
begin
SystemFolder := CSIDL;
if SUCCEEDED(SHGetSpecialFolderLocation(0, SystemFolder, pidl)) then
begin
SetLength(FolderPath, max_path);
if SHGetPathFromIDList(pidl, Pchar(FolderPath)) then
begin
SetLength(FolderPath, length(Pchar(FolderPath)));
end;
end;
Result := FolderPath;
end;
Tju unter Windows Vista gibt er mir anstelle von C:/Programm C:/Prog Files aus und bei dem Font Verzeichnis ein leeren String.
Hab nun gelesen das man unter Vista nicht mehr an die Schriftarten kommt
CLSID
Kann mir da bitte einer Helfen...
Gruß
Robert