04-11-2012, 11:26 PM
من الأفضل استخدام الدالة SHGetFolderPath بدلا من الدالة ShGetSpecialFolderPath لانها غير مدعومة في نسخ الوينداوز الاحدث ..
From MSDN
يمكن استخدام الدالة SHGetFolderPath مع نسخ دلفي الحديثة و التي تدعم اليونيكود
يكفي أن تقوم باختيار ال CSIDL
From MSDN
إقتباس :[SHGetSpecialFolderPath is not supported. Instead, use ShGetFolderPath.]لكن رغم هذا يمكن استخدامها ..
يمكن استخدام الدالة SHGetFolderPath مع نسخ دلفي الحديثة و التي تدعم اليونيكود
PHP كود :
function GetSpecialFolder(CSIDL:integer): string;
var
LResult: BOOL;
HLResult :HResult;
{$IFDEF UNICODE}
PathTemp:LPWSTR;
{$ELSE}
PathTemp:LPSTR;
{$ENDIF}
begin
GetMem(PathTemp,MAX_PATH);
{$IF CompilerVersion <= 17}
LResult := ShGetSpecialFolderPath(0, PathTemp, CSIDL, False) ;
if not LResult then raise Exception.Create('Could not find your folder location.') ;
{$ELSE}
HLResult:=SHGetFolderPath (0,CSIDL,0,1,PathTemp);
if HLResult<>S_OK then raise Exception.Create('Could not find your folder location.') ;
{$IFEND}
Result := PathTemp;
FreeMem(PathTemp,MAX_PATH);
end;
PHP كود :
edit1.text:= GetSpecialFolder(CSIDL_Personal);


![[-]](https://delphi4arab.net/forum/D4A2020/collapse.png)