Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2011, 14:46   #1
Armatus
Форумчанин
 
Регистрация: 09.05.2009
Сообщений: 122
По умолчанию Случайный поиск файлов по маске

Уважаемые товарищи, форумчане. Стал перед задачей организации случайного поиска файлов одного расширения из указанного места. Суть программы заключается в смене обоев рабочего стола в случайно порядке. Код прилагаю ниже.
Цитата:
WIN32_FIND_DATA Find;
HANDLE hFind;
hFind=FindFirstFile("*.bmp",&Find);
while (0<3){
SystemParametersInfo(SPI_SETDESKWAL LPAPER,0,Find.cFileName,SPIF_SENDWI NINICHANGE);
FindNextFile(hFind,&Find);
Sleep(5000);}
P.S. может кто еще подскажет как работать с файлами типа jpg? касательно самой функции winapi.

Последний раз редактировалось Armatus; 13.04.2011 в 14:48.
Armatus вне форума Ответить с цитированием
Старый 13.04.2011, 14:53   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

может проще составить список имен файлов а там уже случайно брать?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.04.2011, 15:05   #3
Armatus
Форумчанин
 
Регистрация: 09.05.2009
Сообщений: 122
По умолчанию

Тоже верное решение) и действительно проще)
P.S. может кто еще подскажет как работать с файлами типа jpg?
Armatus вне форума Ответить с цитированием
Старый 13.04.2011, 15:25   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а что именно вы скрываете за "работать"?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.04.2011, 16:17   #5
Armatus
Форумчанин
 
Регистрация: 09.05.2009
Сообщений: 122
По умолчанию

Функция SystemParametersInfo(SPI_SETDESKWAL LPAPER,0,Find.cFileName,SPIF_SENDWI NINICHANGE); не работает с jpg, т.е. скорее всего я не вкурсе как корректно работать с этим типом файлов. а мне бы хотелось)

Последний раз редактировалось Armatus; 13.04.2011 в 16:30.
Armatus вне форума Ответить с цитированием
Старый 13.04.2011, 16:20   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ну правильно, она работает с bmp.
надо рисунок переводить в BMP и уже потом ставить.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.04.2011, 16:42   #7
Armatus
Форумчанин
 
Регистрация: 09.05.2009
Сообщений: 122
По умолчанию

Цитата:
int mass(){
HANDLE hFind;
WIN32_FIND_DATA Find;
hFind=FindFirstFile("*.bmp",&Find);
while (FindNextFile(&hFind,&Find)!=0){
}
}
При выполнении строка while (FindNextFile(&hFind,&Find)!=0) выдает ошибку. видимо где то логика кода нарушена, но не вижу где....
Armatus вне форума Ответить с цитированием
Старый 13.04.2011, 16:43   #8
Armatus
Форумчанин
 
Регистрация: 09.05.2009
Сообщений: 122
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
ну правильно, она работает с bmp.
надо рисунок переводить в BMP и уже потом ставить.
Эх жаль. Ну да ладно, пусть пока будет так.
Armatus вне форума Ответить с цитированием
Старый 13.04.2011, 16:51   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
При выполнении строка while (FindNextFile(&hFind,&Find)!=0) выдает ошибку. видимо где то логика кода нарушена, но не вижу где....
первый параметр функции это сам хендл, а не указатель на него.
Код:
while (FindNextFile(hFind,&Find)!=0)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск файлов по маске на FTP Stilet Win Api 2 13.04.2011 12:03
Перемещение и удаление файлов по маске. Putin-mode Помощь студентам 0 04.06.2010 15:39
Поиск файлов по маске и их открытие в 1 workbook Toliyn Microsoft Office Excel 1 21.04.2010 04:45
Случайный выбор файлов Stafford Общие вопросы .NET 1 27.07.2009 00:49