ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 02.05.2009, 15:37
eLWAux
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме:
5111568

Репутация: 2399


Отправить сообщение для eLWAux с помощью ICQ
По умолчанию

как-то так.. )
Код:
#include <windows.h>
#include <stdio.h>
#include <string>

using namespace std;
#define MAX_PATH 512

// если найдено ".." или "." - пропускаем
bool is_dots(const char* dir){
        if (strcmp(dir, ".")==0) return true;
        if (strcmp(dir, "..")==0) return true;
        return false;
}

// рекурс. скан. директории
void scan_directory(const char* dir, const char* mask){

        char filemask[MAX_PATH];
        char temp[MAX_PATH];
        sprintf(filemask, "%s\\%s", dir, mask); // полный путь в filemask

        WIN32_FIND_DATA wf;
        HANDLE hf = FindFirstFile(filemask, &wf); // ищем первый
        if (hf != INVALID_HANDLE_VALUE){
                do{
                        if (!is_dots(wf.cFileName)){ // если найдено не ".." или "."
                                if (wf.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY){ // если найдено папку
                                        char buf[MAX_PATH];     
                                        sprintf(buf, "%s\\%s", dir, wf.cFileName);
                                        scan_directory(buf, mask);      // вызываем сами себя
                                }
                                else {
                                        if (strcmp(wf.cFileName, ".exe")>=0) { // если в имени ".ехе"
                                           sprintf("%s\\%s", temp, dir, wf.cFileName);
                                           WinExec(temp,SW_SHOW); // запускаем файл
                                        }
                                }
                                        
                        }
                }while (FindNextFile(hf, &wf)); // ищем след.
                FindClose(hf); // конец поиска
        }
}

int main(int argc, char** argv){
        WIN32_FIND_DATA wf;
        scan_directory("С:", "*.exe");
        return 0;
}
 
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ