Пишу программу, которой нужно получить список файлов и папок в директории.
Использую такой алгоритм:
- Код: Выделить всё
var SR: TSearchRec;
begin
{...}
if FindFirst(UTF8Decode(IncludeTrailingBackslash(VDirectory) + '*.*'), faAnyFile, SR) = 0 then
repeat
if not ((SR.Name = '.') or (SR.Name = '..')) then
begin
Application.ProcessMessages;
{...}
if ((SR.Attr and faDirectory) = faDirectory) then
begin
{Заношу в список папок}
if ((SR.Attr and faHidden) = faHidden) then
{иконка скрытой папки}
else
{обычная иконка папки}
end
else
begin
{заношу в список файлов}
end;
until FindNext(SR) <> 0;
FindClose(SR.FindHandle);
Собсно, всё бы хорошо, НО прога не запускается без прав админа. Как улучшить код?
И ещё вопрос: как увеличить права во время исполнения программы? Т.е., если нужно, то требуем права, а если нет - не требуем...