• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Поиск Файла По Всему Диску

  • Автор темы Автор темы Shouldercannon
  • Дата начала Дата начала
S

Shouldercannon

Нашёл способ, но он не работает в Delphi 2010 если данные подставлять из TEdit или из чего-либо другого. В чём может заключаться проблема?
Код:
uses Imagehlp
...
procedure TForm1.Button1Click(Sender: TObject);
var
FilePath: PAnsiChar;
begin
Button1.Enabled := False;
GetMem(FilePath, MAX_PATH);
if SearchTreeForFile('D:\'{PAnsiChar(Edit1.Text)}, 'test.txt'{PAnsiChar(Edit2.Text)}, FilePath) then ShowMessage ('Найден файл: ' + FilePath);
FreeMem(FilePath);
Button1.Enabled := True;
end;
 
Нашёл способ, но он не работает в Delphi 2010 если данные подставлять из TEdit или из чего-либо другого. В чём может заключаться проблема?
Код:
uses Imagehlp
...
procedure TForm1.Button1Click(Sender: TObject);
var
FilePath: PAnsiChar;
begin
Button1.Enabled := False;
GetMem(FilePath, MAX_PATH);
if SearchTreeForFile('D:\'{PAnsiChar(Edit1.Text)}, 'test.txt'{PAnsiChar(Edit2.Text)}, FilePath) then ShowMessage ('Найден файл: ' + FilePath);
FreeMem(FilePath);
Button1.Enabled := True;
end;
Потому что Widestring. :blink:
В Win7 можно использовать SearchTreeForFileW а в XP только кастовать к Ansi
Например так
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
FilePath: PAnsiChar;
a,b: AnsiString;
begin
GetMem(FilePath, MAX_PATH);
a := Edit1.Text;
b := Edit2.Text;
if SearchTreeForFile (PAnsiChar(a), PAnsiChar(b), FilePath) then ShowMessage ('Найден файл: ' + FilePath);
ilePath);
Button1.Enabled := True;
end;
Хотя прямо скажу - это плохо... Потому как в таком "раскладе" у Вас никогда не найдутся файлы включающие национальные символы (умляюты и пр.)...
Ну... что нибудь типа "Mötley Crüe.mpg" например, при кастовании к Ansi станет "Motley Crue.mpg"
 
Понятно, но оно и не требуется.
Или так
Код:
if SearchTreeForFile(PAnsiChar(AnsiString(Edit1.Text)), PAnsiChar(AnsiString(Edit2.Text)), FilePath) then
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab