| Типы программирования, программирование, языки программирования, книги программирование | На сайте представлена информация про программирование в Интернете и работу |
|
Handle, пишет- нет такой переменной DLL и потоки!, Остановить DLL!!! Delphi, API, Message, Где найти соответствующие константы как пол. коорд. курсора мыши над TScroll Реестр, Работа с реестром Доступ к локальным дискам (XP), открытие\закрытие доступа... Использование mlang.dll Трей, Глюки в WinXP, Win2k Как очистить экран в консольном приложении? Лдюди объясните по русски как установить Rxlib, для Delphi 7.0 ошибка MItec, Помогите разобраться Перенаправление ввода и вывода, Bind Shell Текст вместо иконки Браузер на Delphi Помогите не могу понять!, Про окна Как упрятать программу Помогите с иконкой в трее!, иконка втрее Как Вы относитесь к курящим девушкам? IP адрес, связь Кнопки, Интерес Рисунок с рабочго стола по LAN, Рисунок с рабочго стола Как распознать запуск другой проги? Блокировка CD-ROMа полосы прокрутки у TMemo & TListBox, как сделать их плоскими и другого цвета Hook на процессы!, Отловить запуск и завершение процесса! Ресурсы: окошки Температура процессора, Как контролировать Как загружать прогу в безопасном режиме Идентификаторы в Delphi Новый форум, Новый форум Данные из клавы направить не туда. как получить температуру?, как программно получить температуру? ПРограммирование HASP-ключей, ЗАдали лабораторную .. ничего не понятно Есть ли в Делфи реализация интерфейса, а-ля интерфейс как в Java ?? Как минимизировать приложение при старте ?, Мне казалось что это так просто... Что такое хинты, и как их показывать Запрет запуска хранителя экрана, при работе программы Восстановление удалённых файлов Поиск ехе, Поиск ехе в директориях Работа с ОЗУ, как? Как загрузить данные из Reources ? А-у! Помогите, не работает детская процедура, Процедура сбора статистики работы СД Как программно запретить вход в виндовс убить заголовок окна, чужого Работа в потоке, Ну, типа, работа в потоке Как сделать окно поверх панели задач Как вычислить подключение винта к USB Как избежать LOg off/on при изменении реестра, Столкнулся с такой проблемой. метод Synchonize объекта TThread Функция типа TStringList Где храняться пути для переменных окружения ? Как сейчас на счет бесплатного Delphi 6 personal Дефрагментация Скрытие окна..., ...как это делает LiteAlloy Как сделать, чтобы фокус ввода окна нельзя, отменить пока его не закроешь Програмка для тестирования памяти, алгоритмы есть Серийный номер процессора, Как получить? Внедрение DLL Как получить информацию запущен процесс или нет ?? Hook на печать, это возможно? Текстурирование, как сделать скины для окон Прочитать значение из оперативки, ID процесса известен, адрес тоже. Надо прочитать куда нить значения из памяти, сабж Как Вы относитесь к курящим девушкам? объем физического диска под Win9x Кто пробывал написать свой компилятор ??, Нужен ваш хелп. WM_DEVICECHANGE, отслеживаем изменения одного устройства Порты и Дельфи, HELP!!!!!! CreateRemoteThread, как использовать? Как это работает?, есть такая прога... LClock |
Платные хостинги Раскрутка сайта Книги по программированию Поиск ехе, Поиск ехе в директориях
- Привет! Подскажите как найти все ехе в заданном каталоге и его подкаталогах! Я сделал все функциями Findfirst,Findnext. Но проблема в том..что если изначально Findfirst не находит ехе в каком-либо каталоге..то ее значение<>0 и поэтому цикл поиска не начинается. Что можно сделать? - найти тему типа "поиск файлов"http://forum.vingrad.ru/index.php?showtopic=35104http://forum.vingrad.ru/index.php?showtopic=13151http://forum.vingrad.ru/index.php?showtopic=4617и переделать под свои нужды - ДА ЭТО все ясно! Все уже читал..и у самого почти так же сделано! Но это все примеры только ля поиска всех файлов! Но стоит маску поменять на *.ехе как все накрывается..и все те примеры! Если в корневом каталоге *.ехе нет, то поиск прекращается! - вот процедура, которая все находит:Код procedure FindFilesByMask(List :tStrings; var DirCount :Integer; const DirName, Mask :String; SubDir: Boolean = True);// Поиск файлов по маске в заданной папке и подпапке // Чем меньше параметров и локальных переменных у рекурсивной процедуры, // тем меньше она требует памяти под стек. Поэтому использую локальную // процедуру procedure ScanDirs(const DirName :String); var h :tHandle; wfd :tWin32FindData; begin Inc(DirCount); // просто для статистики // Сначала просмотрим текущий каталог по заданной маске h := Windows.FindFirstFile(PChar(DirName+Mask), wfd); try if h <> INVALID_HANDLE_VALUE then begin repeat if (wfd.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then List.Add(DirName+wfd.cFileName); until not Windows.FindNextFile(h,wfd); end; // проверка кода ошибки и FindFirstFile и FindNextFile case GetLastError of ERROR_NO_MORE_FILES, // больше нет файлов и каталогов удовлетворяющих маске (но были) ERROR_FILE_NOT_FOUND, // вообще нет файлов и каталогов удовлетворяющих маске ERROR_SHARING_VIOLATION // возникает во время создания каталога (уже создан но еще недоступен) : ; // ничего не делаем, все Ok else // все остальные ошибки raise Exception.CreateFmt('Ошибка просмотра каталога "%s": %s',[DirName,SysErrorMessage(GetLastError)]); end; finally if h <> INVALID_HANDLE_VALUE then Windows.FindClose(h); end; // Теперь рекрсивно просмотрим подкаталоги if not SubDir then exit; // 13.06.03 h := Windows.FindFirstFile(PChar(DirName+'*.*'), wfd); try if h <> INVALID_HANDLE_VALUE then begin repeat if ((wfd.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) <> 0) and (wfd.cFileName <> String('.')) and (wfd.cFileName <> '..') then ScanDirs(IncludeTrailingPathDelimiter(DirName+wfd.cFileName)); until not Windows.FindNextFile(h,wfd); end; // проверка кода ошибки и FindFirstFile и FindNextFile case GetLastError of ERROR_NO_MORE_FILES, // больше нет файлов и каталогов удовлетворяющих маске (но были) ERROR_FILE_NOT_FOUND, // вообще нет файлов и каталогов удовлетворяющих маске ERROR_SHARING_VIOLATION // возникает во время создания каталога (уже создан но еще недоступен) : ; // ничего не делаем, все Ok else // все остальные ошибки raise Exception.CreateFmt('Ошибка просмотра каталога "%s": %s',[DirName,SysErrorMessage(GetLastError)]); end; finally if h <> INVALID_HANDLE_VALUE then Windows.FindClose(h); end; end;begin // FindFilesByMask ScanDirs(IncludeTrailingPathDelimiter(DirName));end;highlightSyntax('delphiWFkMDA','delphi'); Добавлено @ 18:37 Пример использования:Код var n: Integer;begin FindFilesByMask(ListBox1.Items, n, 'Путь', '*.exe');highlightSyntax('delphilkNTQ1','delphi'); - спасибо большое! Великолепный код!Очень выручил! - Код procedure GetFile(Dir: string);var f : TSearchRec; i : integer; s : string;begin i := FindFirst(Dir+'*.exe', faAnyFile, f); while (i=0) do begin s:= dir + f.Name; Form1.ListBox1.Items.Add (S); i := FindNext(f); Application.ProcessMessages; end; FindClose(f);end;procedure GetDir(Dir: string);var f : TSearchRec; i : integer; s : string;begin i := FindFirst(Dir+'*.*', faDirectory, f); GetFile(Dir); while (i=0) do begin if (f.Name='.') or (f.Name='..') then else begin if (f.Attr and faDirectory)<>0 then begin GetDir(Dir+f.Name+'\'); Application.ProcessMessages; end else begin i := FindNext(f); end; end; i := FindNext(f); Application.ProcessMessages; end; FindClose(f);end;highlightSyntax('delphimE3NDU','delphi');А я вот так делал, и все нормально находиться. |