• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы 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;
 
S

sinkopa

Нашёл способ, но он не работает в 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"
 
S

Shouldercannon

Понятно, но оно и не требуется.
Или так
Код:
if SearchTreeForFile(PAnsiChar(AnsiString(Edit1.Text)), PAnsiChar(AnsiString(Edit2.Text)), FilePath) then
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!