Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
 |  |  |
Помогите с тестированием программки. 10.05.02 18:04 Число просмотров: 978
Автор: lukash Статус: Незарегистрированный пользователь
|
|
Тута проблема в следующем. Если записать “c:\\windows\\temp\\*” в FindFirstFile тогда все будет работать. А со строкой из файла он не хочет работать. (мне тоже интересно как обойти эту проблему)
|
|
<programming>
|
Помогите с тестированием программки. 10.05.02 16:02
Автор: async Статус: Незарегистрированный пользователь
|
Помогите с тестированием программки.
Я просто супер устал. И не в состоянии вообще что либо делать.
Программка необходима для сканирования каталога.
При первом запуске создается файл, и программка сразу завершается.
Теперь в файл вносим путь к папке в Сишном формате
C:\\Windows\\Temp\\*
Сохраняем данный файл и запускаем программу еще раз. И вот она работает через таймер.
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
MSG msg;
DWORD size;
WIN32_FIND_DATA wf;
unsigned long len;
char *buf = new char [256];
ZeroMemory(buf,256);
HANDLE hFile = CreateFile("open.txt",GENERIC_READ,FILE_SHARE_READ,
NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
if(hFile == INVALID_HANDLE_VALUE)
{
MessageBox(0,"Невозмождно открыть/создать файл open.txt","Scan Dir",0);
return 0;
}
size = GetFileSize(hFile,NULL);
if(size == 0)
{
MessageBox(0,"Размер файла open.txt равен нулю.\r\nВнисите изменения в данный файл.","Scan Dir",0);
CloseHandle(hFile);
return 0;
}
if(ReadFile(hFile,buf,size,&len,NULL) == false)
{
MessageBox(0,"Ошибка чтания из файла open.txt","Scan Dir",0);
CloseHandle(hFile);
return 0;
}
CloseHandle(hFile);
SetTimer(0,1,(20 * 1000),0);
while(GetMessage(&msg,NULL,NULL,NULL))
{
if(msg.message == WM_TIMER)
{
hFile = FindFirstFile(buf,&wf);
if(hFile != INVALID_HANDLE_VALUE)
{
if(wf.cFileName[0] != '.')
MessageBox(0,"В заданном каталоге появились данные","Scan Dir",0);
while(FindNextFile(hFile,&wf))
{
if(wf.cFileName[0] != '.')
{
MessageBox(0,"В заданном каталоге появились данные","Scan Dir",0);
break;
}
}
}
FindClose(hFile);
}
}
return 0;
}
|
 |
Помогите с тестированием программки. 11.05.02 11:12
Автор: :-) <:-)> Статус: Elderman
|
А не лучше ли использовать FindFirstChangeNotification?
Прога будет проще, и можно будет отслеживать любые изменения в данном какалоге, а не только появление файла в пустом каталоге.
|
 |
Помогите с тестированием программки. 10.05.02 17:16
Автор: ih8u <i hate you> Статус: Member Отредактировано 10.05.02 17:16 Количество правок: 1
|
> Теперь в файл вносим путь к папке в Сишном формате > C:\\Windows\\Temp\\*
Твоя прога не работает как раз изза этого
надо писать c:\Windows\Temp\*
Это в коде надо писать в сишном формате
В итоге у тя получается ошибка 53 - Не найден сетевой путь.
|
 |  |
Помогите с тестированием программки. 10.05.02 17:23
Автор: ih8u <i hate you> Статус: Member
|
|
PS: Ещо после ReadFile сделай такую фишку - buf[len] = '\0';
|
 |  |  |
Помогите с тестированием программки. 10.05.02 18:04
Автор: lukash Статус: Незарегистрированный пользователь
|
|
Тута проблема в следующем. Если записать “c:\\windows\\temp\\*” в FindFirstFile тогда все будет работать. А со строкой из файла он не хочет работать. (мне тоже интересно как обойти эту проблему)
|
 |  |  |  |
Помогите с тестированием программки. 10.05.02 18:17
Автор: lukash Статус: Незарегистрированный пользователь
|
надо в файле писать
C:\windows\temp\*
|
 |  |  |  |  |
Помогите с тестированием программки. 11.05.02 10:31
Автор: ih8u <i hate you> Статус: Member
|
@#$, чувак, я написал тоже самое выше,
мессаги то читай внимательно
|
|
|