![]() |
|
|
#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. |