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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2008, 01:44   #1
HunterMan
Пользователь
 
Регистрация: 01.04.2008
Сообщений: 58
По умолчанию Создание скрытых файлов

Я создаю файлик temp.dat:

HANDLE hFile=CreateFileA("temp.dat",GENERI C_WRITE,0,NULL,CREATE_ALWAYS,0,NULL );

По задумке он содержит временную информацию. Можно ли сделать так, чтобы он создавался "скрытым" от пользователя.

Да и вообще подскажите в каком виде лучше сохранять промежуточные данные: в виде различных массивов или в файлы и потом их просто читать с файла в меру надобности???
HunterMan вне форума Ответить с цитированием
Старый 04.06.2008, 04:01   #2
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от HunterMan Посмотреть сообщение
По задумке он содержит временную информацию. Можно ли сделать так, чтобы он создавался "скрытым" от пользователя.
Вот создание временного файла, выбирайте, что нравится.
Код:
#include <windows.h>
#include <stdio.h>

int _tmain()
{
	HANDLE hHeap = GetProcessHeap();
	if(hHeap){
		LPTSTR pszTempPath = (LPTSTR)HeapAlloc(hHeap, 0, (MAX_PATH) * sizeof (TCHAR));
		if(pszTempPath) {
			if(GetTempPath(MAX_PATH, pszTempPath)){
				LPTSTR pszTempName = (LPTSTR)HeapAlloc(hHeap, 0, (MAX_PATH) * sizeof (TCHAR));
				if(pszTempName){
					if(GetTempFileName(pszTempPath, TEXT("TMP"), 0, pszTempName)){
						HANDLE hTempFile = CreateFile(
												pszTempName,
												GENERIC_READ | GENERIC_WRITE,
												0,
												NULL,
												CREATE_ALWAYS,
													FILE_ATTRIBUTE_HIDDEN 
													| FILE_ATTRIBUTE_TEMPORARY 
													| FILE_FLAG_DELETE_ON_CLOSE,
												NULL);
						if(hTempFile != INVALID_HANDLE_VALUE){
							DWORD dwWritten;
							TCHAR szBuf1[] = TEXT("This is a test string");

							WriteFile(hTempFile, szBuf1, lstrlen(szBuf1) * sizeof (TCHAR), &dwWritten, NULL);
							if (dwWritten > 0) {
								DWORD dwRead;
								TCHAR szBuf2[256];

								SetFilePointer(hTempFile, 0, 0, FILE_BEGIN);

								ReadFile(hTempFile, szBuf2, 256, &dwRead, NULL);
								if(dwRead > 0){
									szBuf2[dwRead / sizeof(TCHAR)] = 0;
									_tprintf(TEXT("%s\n"), szBuf2);
									_gettchar();
								}
							}
							CloseHandle(hTempFile);
						}
					}
					HeapFree(hHeap, 0, pszTempName);
				}
			}
			HeapFree(hHeap, 0, pszTempPath);
		}
	}
	return 0;
}
Ну или просто указывайте FILE_ATTRIBUTE_HIDDEN.

Плюс в C всегда была и есть функция tmpnam.

Цитата:
Сообщение от HunterMan Посмотреть сообщение
Да и вообще подскажите в каком виде лучше сохранять промежуточные данные: в виде различных массивов или в файлы и потом их просто читать с файла в меру надобности???
Это уже как Вам больше нравится и какие данные. Рецептов здесь особых нет, а возможностей ОС предоставляет достаточно, включая виртуальную память или pagefile.
B_N вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание файлов Серега1985 Помощь студентам 4 28.07.2008 22:45
Создание и считывание .ini файлов Патрон Общие вопросы Delphi 4 21.04.2008 03:25
Создание Help файлов Demien Софт 8 24.08.2007 18:00
Автонумерация при скрытых строках. DiVinyl Microsoft Office Excel 1 17.03.2007 18:02
Создание программы для запароливания файлов шолku Общие вопросы Delphi 14 05.01.2007 08:32