Einzelnen Beitrag anzeigen

Benutzerbild von binio
binio

Registriert seit: 25. Nov 2005
Ort: Werl, Iserlohn, Dortmund, Hagen
85 Beiträge
 
Delphi 2006 Professional
 
#1

Font Schriftarten Verzeichnis ermitteln Vista

  Alt 20. Mai 2008, 14:59
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.dllname 'SHGetSpecialFolderLocation';

function SHGetPathFromIDList(pidl: PItemIDList; pszPath: PChar): BOOL; stdcall; external 'shell32.dllname '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
if(copy_paste==false)
Programmierer=Hilflos;
  Mit Zitat antworten Zitat