С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 14

Программа, которая по истечении времени самоудаляется

07.05.2015, 22:16. Показов 1640. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, у меня проблемка с программой, хочу создать программу которая по истечении времени самоудаляеться, почитав этот форум, понял что без сторонних файлов никак. Так вот, программа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void uninstall(){
    ofstream ofs; //создать
    ofs.open("Nas.bat");
    ofs << "del E:\clock.exe /q del %0";
    //ofs << "ping -n 2 127.0.0.1 > nul";
    ofs.close();
}
 
void timer(){
    Тут таймер, убран для сокращения текста.
}
 
void main(){
    setlocale(LC_CTYPE, "rus");
    timer();
    uninstall();
    system("E:\\Nas.bat");
}
В чём её смысл, мы её запускаем, истекает время, она показывает за это время нужную инф-ю, и потом создает батник, который должен по идее удалять и себя и exe - шник, он так и делает, но запускать его потом надо в ручную, а мне нужно что бы он запускался из этого самого exe- шника. куча идей было, но все не работают, помогите пожалуйста, как это можно реализовать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.05.2015, 22:16
Ответы с готовыми решениями:

Программа-таймер, которая по истечении заданного промежутка времени выводит сообщение
Уважаемые программисты,помогите с программкой. программа-таймер, которая по истечении заданного промежутка, времени, величина...

Написать программу-таймер, которая по истечении заданного промежутка времени выдает звуковой сигнал
2. написать программу-таймер, которая по истечении заданного промежутка времени выдает звуковой сигнал. величина временного интервала...

Написать программу-таймер, которая по истечении заданного промежутка времени, выдает звуковой сигнал
2. Написать программу-таймер, которая по истечении заданного промежутка времени, величина которого вводится с клавиатуры, выдает звуковой...

17
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 2
07.05.2015, 23:16
Цитата Сообщение от Artem_ti Посмотреть сообщение
system("E:\\Nas.bat");
так попробуй, и сделай какую нибудь задержку в батнике,чтоб программа успела закрытся.
C++ (Qt)
1
system("E:/Nas.bat");
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
07.05.2015, 23:23
Разве system() завершится раньше выполняемой команды?
0
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 2
07.05.2015, 23:27
что ты имеешь ввиду?
будет ли программа ждать завершения батника?
0
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 14
07.05.2015, 23:35  [ТС]
Да, да, ДА! будет ли мой exe-шник ждать завершения батника? и если да, то как этого избежать?

Добавлено через 1 минуту
Цитата Сообщение от nmcf Посмотреть сообщение
Разве system() завершится раньше выполняемой команды?
вот и я о том же, я не знаю КАК мне запустить батник при этом закрыв exe - шник...
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
08.05.2015, 10:16
Нужно CreateProcess() использовать, наверное, чтобы bat-файл не работал в контексте приложения.
Тебе нужно поиском пользоваться, я вчера находил такие темы.
0
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 14
08.05.2015, 12:19  [ТС]
Почитав пару статей, я не понял как его конкретно использовать, можете пример в коде привеси, без лишних добавлений?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
08.05.2015, 13:48
Здесь посмотри: http://www.cyberguru.ru/visual... age54.html
Внизу пример.
0
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 14
08.05.2015, 14:49  [ТС]
Зачем столько текста? о.о
И правильный этот пример?
Там вообще ничего не разъяснено :с
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
08.05.2015, 15:04
Потому что двумя строчками это не реализуется. Пробуй. Там формируется bat-файл во временных файлах, затем запускается отдельно от основной программы и ждёт пока программа закроется, затем удаляет. Перед закрытием вызывай эту функцию.
0
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 14
08.05.2015, 17:48  [ТС]
Это на С++, или на С#?

Добавлено через 52 минуты
У меня дофига ошибок вылазит с тем текстом что там написан...
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
08.05.2015, 18:05
Это C++. По-хорошему надо на unicode переделать. Так попробуй:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
void DelSelf(void)
{
 char modulename[MAX_PATH];
 char batfile[MAX_PATH];
 char batlines[MAX_PATH*4];
 LPSTR tempdir;
 char Buf[MAX_PATH];
 GetModuleFileNameA(NULL,modulename,MAX_PATH);
 tempdir = ((GetEnvironmentVariableA("TEMP",
 Buf, MAX_PATH) > 0) ? Buf : NULL);
 strcpy(batfile,tempdir);
 strcat(batfile,"\\");
 strcat(batfile,"delself.bat");
 strcpy(batlines,"@echo off\n:try\ndel ");
 strcat(batlines,modulename);
 strcat(batlines,"\nif exist ");
 strcat(batlines,modulename);
 strcat(batlines," goto try\n");
 strcat(batlines,"del ");
 strcat(batlines,batfile);
 DWORD NOfBytes;
 HANDLE hbf= CreateFileA(batfile, GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ
| FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
 WriteFile(hbf,batlines,strlen(batlines),&NOfBytes, NULL);
 CloseHandle(hbf);
 STARTUPINFOA         si;
 PROCESS_INFORMATION pi;
 ZeroMemory( &si, sizeof(si) );
 si.cb = sizeof(si);
 si.wShowWindow = SW_HIDE;
 si.dwFlags = STARTF_USESHOWWINDOW;
 CreateProcessA(
     NULL,
     batfile,
     NULL,
     NULL,
     FALSE,
     IDLE_PRIORITY_CLASS|DETACHED_PROCESS,
     NULL,
     NULL,
     &si,
     &pi);
}
0
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 14
09.05.2015, 00:22  [ТС]
Цитата Сообщение от nmcf Посмотреть сообщение
Это C++. По-хорошему надо на unicode переделать. Так попробуй:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
void DelSelf(void)
{
 char modulename[MAX_PATH];
 char batfile[MAX_PATH];
 char batlines[MAX_PATH*4];
 LPSTR tempdir;
 char Buf[MAX_PATH];
 GetModuleFileNameA(NULL,modulename,MAX_PATH);
 tempdir = ((GetEnvironmentVariableA("TEMP",
 Buf, MAX_PATH) > 0) ? Buf : NULL);
 strcpy(batfile,tempdir);
 strcat(batfile,"\\");
 strcat(batfile,"delself.bat");
 strcpy(batlines,"@echo off\n:try\ndel ");
 strcat(batlines,modulename);
 strcat(batlines,"\nif exist ");
 strcat(batlines,modulename);
 strcat(batlines," goto try\n");
 strcat(batlines,"del ");
 strcat(batlines,batfile);
 DWORD NOfBytes;
 HANDLE hbf= CreateFileA(batfile, GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ
| FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
 WriteFile(hbf,batlines,strlen(batlines),&NOfBytes, NULL);
 CloseHandle(hbf);
 STARTUPINFOA         si;
 PROCESS_INFORMATION pi;
 ZeroMemory( &si, sizeof(si) );
 si.cb = sizeof(si);
 si.wShowWindow = SW_HIDE;
 si.dwFlags = STARTF_USESHOWWINDOW;
 CreateProcessA(
     NULL,
     batfile,
     NULL,
     NULL,
     FALSE,
     IDLE_PRIORITY_CLASS|DETACHED_PROCESS,
     NULL,
     NULL,
     &si,
     &pi);
}
Ошибка 1 error C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. e:\c++\clock\clock\timer.cpp 27 1 clock
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
09.05.2015, 00:30
Цитата Сообщение от Artem_ti Посмотреть сообщение
Ошибка 1 error C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. e:\c++\clock\clock\timer.cpp 27 1 clock
Ну так дайте шибко умной студии #define _CRT_SECURE_NO_WARNINGS;. Или не пользуйтесь Студией, которая умничает когда не просят.
0
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 14
09.05.2015, 18:14  [ТС]
Спасибо, пробую))

Блин, да что она хочет? :
Ошибка 1 error C2008: ;: не требуется в макроопределении e:\c++\clock\clock\timer.cpp 27 1 clock

говорит что не нужно этой строки, но без неё это не работает...
Как даун, ничего сделать не могу :с

Добавлено через 17 часов 38 минут
Тема закрыта.
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
09.05.2015, 19:38
Как решил?
0
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 14
09.05.2015, 22:27  [ТС]
решил создать 2 батника, после чего exe - шник запускает первый батник, этот батник запускает второй и закрывается, вместе с тем закрывается и exe - шник, и второй батник удаляет все три файла!
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
09.05.2015, 22:34
Запускает каким образом? Через system()? Покажи фрагмент.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.05.2015, 22:34
Помогаю со студенческими работами здесь

Какое то действие по истечении времени
Здравствуйте, появился такой вопрос. Допустим есть 2 пользователя на сайте, одни другому кидает предложение какое либо. Как мне реализовать...

Закрытие приложения по истечении времени
как в delphi сделать так чтобы при окончании времени программа автоматом закрылась

Изменить статус по истечении времени
Привет всем. Каким образом можно изменить статус в бд, когда дата истекла. То есть в поле стоит дата, ну допустим 18 февраля 2012 года...

Закрытие формы по истечении определенного времени
Как сделать чтобы по истечению какого-то интервала времени форма закрылась на С++ Builder?

Закрытие потока по истечении некоторого времени
У меня вопрос: как правильно использовать функцию ExitThread? Допустим у меня есть поток thread thrdTime(timeCnt); с функцией //Счёт...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru