Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Deimoser
4 / 4 / 0
Регистрация: 16.10.2012
Сообщений: 39
#1

Удаление созданных файлов по завершении работы программы - C++

04.01.2014, 02:35. Просмотров 219. Ответов 0
Метки нет (Все метки)

Здравствуйте, пробую написать простенький инсталлятор, который в процессе работы извлекает из себя файлы ресурсов. Некоторые файлы ресурсов представляют собой exe'шники для единоразового использования и предполагается их удаление по завершению работы программы.
Использование флага FILE_FLAG_DELETE_ON_CLOSE приводит к удалению файла, еще до выполнения его задач. Пробовал вешать sleep, не помогло.

Сам код
C++
1
2
3
4
5
6
7
8
9
10
11
12
HWND hwnd;
HINSTANCE hInst;
hwnd = GetForegroundWindow(); 
hInst = GetWindowInstance(hwnd);
HRSRC hResInfo = ::FindResource(hInst, MAKEINTRESOURCE(ID_EXE), RT_RCDATA);
                HGLOBAL hRes = ::LoadResource(hInst, hResInfo);
                LPVOID memRes = ::LockResource(hRes);
                DWORD sizeRes = ::SizeofResource(hInst, hResInfo);
                HANDLE hFile = ::CreateFile("test.exe", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_FLAG_DELETE_ON_CLOSE, NULL);
                DWORD dwWritten = 0;
               Error = ::WriteFile(hFile, memRes, sizeRes, &dwWritten, NULL);
                ::CloseHandle(hFile);
Как быть?

Добавлено через 3 часа 19 минут
помогла функция FindWindow
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2014, 02:35     Удаление созданных файлов по завершении работы программы
Посмотрите здесь:

C++ Ошибка при завершении программы
Ошибка при завершении работы программы C++
ошибка при завершении программы C++
Удаление файлов C++
C++ Создание и просмотр бинарных файлов: почему в результате работы программы компоненты печатаются не в том порядке?
Удаление файлов C++
C++ Ошибка в завершении работы программы
Записать имена созданных файлов в другой файл C++
C++ Ошибка компилятора при завершении программы
C++ Ошибка "Stack around the variable 'a' was corrupted" при завершении программы
Удаление переменных в куче, созданных статическим методом класса C++
C++ Очистка памяти при завершении работы функции, как правильно возвращать значения?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 06:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru