![]() |
|
|
|
|
#1
|
|||
|
|||
|
Написал программку ,поиск файлов по всем дискам..
Но программа не ищит,так как требует доступ к папке windows.. Как получить доступ к папке windows??? |
|
#2
|
||||
|
||||
|
Это не программа не ищет, а сработала политика безопасности, что абсолютно нормально. Если вы уверены в своей программе, то запустите ее от имени администратора и тогда получите доступ и к этой папке.
|
| Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение: | ||
Bomj (15.01.2016)
| ||
|
#3
|
|||
|
|||
|
+1.
Можно просто в манифесте указать, что программа требует права администратора, тогда при старте программы система безопасности сделает запрос. А что бы избавиться от этого надо программу подписать, но это уже более сложный процесс и, если ты собираешься передавать программу другим людям, стоит денег. ЗЫ. Можно просто исключить из поиска некоторые папки, на которые система безопасности "не ровно дышит". Типа домашки винды, Program Files и т.д. |
| Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Bomj (15.01.2016)
| ||
|
#4
|
|||
|
|||
|
Код вроде правильный,но даже если запускаю от имени администратора,всё равно не каких результатов нет.
|
|
#5
|
|||
|
|||
|
Вообще, думаю, что проблема в чем-то другом. На чтение то система безопасности дает доступ.
Код покажи. |
|
#6
|
|||
|
|||
|
Цитата:
Код:
procedure FindI(const aDir : String);
//const
//N = 10;
//ArrExt : array[1..N] of String = ('3FR', 'ACCDB', 'TXT', 'AI', 'ARW', 'BAY');
var
StrExt : string;
StrDir : String;
SearchRec : TSearchRec;
i : Integer;
begin
StrDir := IncludeTrailingBackslash(aDir);
if FindFirst(StrDir + '*.*', faAnyFile, SearchRec) = 0 then
repeat
StrExt := UpperCase( ExtractFileExt(SearchRec.Name) );
if (SearchRec.Name = '.') or (SearchRec.Name = '..') then
Continue;
if (SearchRec.Attr and faDirectory) <> 0 then
FindI(StrDir + SearchRec.Name)
else
for i := 1 to N do begin
if StrExt = ArrExt[i] then begin
end;
until FindNext(SearchRec) <> 0;
FindClose(SearchRec);
end;
procedure TForm1.Button1Click(Sender: TObject);
var ser:TSearchRec;
StrDir:string;
begin
FindI('D :\');
Memo1.Lines.Add(StrDir+ser.Name);
end;
end.Последний раз редактировалось Bomj, 15.01.2016 в 22:14. |