Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.52/48: Рейтинг темы: голосов - 48, средняя оценка - 4.52
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1

Перезапуск программы

16.04.2012, 11:49. Показов 9205. Ответов 46
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день всем)
Такой вопрос , в программе есть кнопка - сброс настроек, но что бы настройки сбросились нужно перезапустить программу, возможно ли это на программном уровне(кнопкой)?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.04.2012, 11:49
Ответы с готовыми решениями:

Перезапуск программы
Скажите, пожалуйста, можно ли как-нибудь сделать перезапуск своей программы из нее же самой? Или как это делается? Например, некоторые...

Связать перезапуск программы с защитой от повторного запуска
Всем доброго дня. Интересно выслушать советы по реализации такой вот задачи. Итак, что я имею Project.cpp #pragma hdrstop ...

Перезапуск формы
Как можно при нажатии кнопки закрыть формы и открыть опять эту же форму?

46
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
04.07.2012, 20:31
Студворк — интернет-сервис помощи студентам
да и кода больше будет)
А то что выгружается с памяти и загружается заного - то нечего
Но придется перегружать все списки, удалять значения с реестра, переназначать клавиши...
Да, но ведь ты это же делаешь в каком-то обработчике в начале программы?
Какие проблемы вызвать этот же обработчик еще раз.
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
04.07.2012, 20:34  [ТС]
Avazart, ну да тут вы правы.Не подумал
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
04.07.2012, 20:35
Ну и где меньше кода?
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
04.07.2012, 20:47
Ddv122, все дело в архитектуре. Камрад Avazart подразумевает, что структура твоей программы должна быть ориентированна на централизованную инициализацию данных, которую в случае чего можно и повторить в любой момент во время выполнения. Напрасно он так - и ежику понятно, что разбросано у тебя все как попало.
Однако, он прав в выборе подхода - подход очень выгодный.
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
04.07.2012, 20:54  [ТС]
BRcr, ну я старался более менее сделать всё нормально
Может подскажите если что есть что тут не так?Учиться надо на ошибках)
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
void __fastcall TMain::FormActivate(TObject *Sender)
{
    if (WeAreAlone("Some_Unique_Name_Or_Other"));
    else
    {
    ShowMessage("Ïðîãðàììà óæå çàïóùåíà!");
    Application->Terminate();
    }
    Button1Click(0) ;          //îáíîâëÿåì drevo
    // ñïèñêè
    if ( !FileExists( "log.txt" ) ) {                         //ïðîâåðêà åñëè íå ñóùåñòâóåò ôàéë
        ToAvt->Add( "Óòèëèòà Flash Cleaner" );               //çàïèñûâàåòñÿ â ôàéë
        ToAvt->SaveToFile( "log.txt" );                     //ñîçäàåò åãî
    }
    if ( !FileExists( "spisok.txt" ) ) {                   //ïðîâåðêà åñëè íå ñóùåñòâóåò ôàéë
        Blacklist->Lines->SaveToFile( "spisok.txt" );     //ñîçäàåò åãî
    }
    if ( !FileExists( "spisok.ini" ) ) {                 //ïðîâåðêà åñëè íå ñóùåñòâóåò ôàéë
        Extensions->Lines->SaveToFile( "spisok.ini" );  //ñîçäàåò åãî
    }
    if ( !FileExists( "Cleaner.bat" ) ) {             //ïðîâåðêà åñëè íå ñóùåñòâóåò ôàéë
        Avir->Lines->SaveToFile( "Cleaner.bat" );    //ñîçäàåò åãî
    }
    if ( !FileExists( "data.dat" ) ) {         //ïðîâåðêà åñëè íå ñóùåñòâóåò ôàéë
        Passw->Add( "Admin=52757E7A7F" );     //çàïèñûâàåòñÿ â ôàéë
        Passw->SaveToFile( "data.dat" );              //ñîçäàåò åãî
    }
    Blacklist->Lines->LoadFromFile("Spisok.txt");   //çàãðóæàåì ôàéë Spisok.txt
    Extensions->Lines->LoadFromFile("spisok.ini"); //çàãðóæàåì ôàéë spisok.ini
    Avir->Lines->LoadFromFile("Cleaner.bat");     //çàãðóæàåì ôàéë Cleaner.bat
    Log->Lines->LoadFromFile("Log.txt");     //çàãðóæàåì ôàéë log.txt â memo
    Log->Perform( WM_VSCROLL, SB_BOTTOM, SB_THUMBTRACK );    //ïåðåõîäèì â êîíåö memo
    //---------------×èòàåì ÷åêáîêñû--------
    Settings->CheckBox3->Checked = Ini->ReadBool( "CheckBoxes", "CheckBox3",
                                   Settings->CheckBox3->Checked );          //÷èòàåì çíà÷åíèÿ  CheckBox
    Settings->CheckBox4->Checked = Ini->ReadBool( "CheckBoxes", "CheckBox4",
                                   Settings->CheckBox4->Checked );          //÷èòàåì çíà÷åíèÿ  CheckBox
    Settings->CheckBox5->Checked = Ini->ReadBool( "CheckBoxes", "CheckBox5",
                                   Settings->CheckBox5->Checked );          //÷èòàåì çíà÷åíèÿ  CheckBox
    Settings->CheckBox6->Checked = Ini->ReadBool( "CheckBoxes", "CheckBox6",
                                   Settings->CheckBox6->Checked );          //÷èòàåì çíà÷åíèÿ  CheckBox
    Settings->CheckBox7->Checked = Ini->ReadBool( "CheckBoxes", "CheckBox7",
                                   Settings->CheckBox7->Checked );          //÷èòàåì çíà÷åíèÿ  CheckBox
    Settings->CheckBox8->Checked = Ini->ReadBool( "CheckBoxes", "CheckBox8",
                                   Settings->CheckBox8->Checked );          //÷èòàåì çíà÷åíèÿ  CheckBox
    Settings->CheckBox9->Checked = Ini->ReadBool( "CheckBoxes", "CheckBox9",
                                   Settings->CheckBox9->Checked );          //÷èòàåì çíà÷åíèÿ  CheckBox
    Settings->CheckBox10->Checked = Ini->ReadBool( "CheckBoxes", "CheckBox10",
                                    Settings->CheckBox10->Checked );        //÷èòàåì çíà÷åíèÿ  CheckBox
    Settings->CheckBox11->Checked = Ini->ReadBool( "CheckBoxes", "CheckBox11",
                                    Settings->CheckBox11->Checked );        //÷èòàåì çíà÷åíèÿ  CheckBox
    Settings->CheckBox12->Checked = Ini->ReadBool( "CheckBoxes", "CheckBox12",
                                    Settings->CheckBox12->Checked );        //÷èòàåì çíà÷åíèÿ  CheckBox
    Settings->CheckBox13->Checked = Ini->ReadBool( "CheckBoxes", "CheckBox13",
                                    Settings->CheckBox13->Checked );        //÷èòàåì çíà÷åíèÿ  CheckBox
    Settings->CheckBox14->Checked = Ini->ReadBool( "CheckBoxes", "CheckBox14",
                                    Settings->CheckBox14->Checked );        //÷èòàåì çíà÷åíèÿ  CheckBox
    Label2->Caption= Ini->ReadString("Labels","Label2", Label2->Caption);
    //--------------------------------------
    if  (Settings->CheckBox10->Checked)  //ïðîâåðêà åñëè CheckBox10->Checked òî çàïóñêàåòñÿ ïðîâåðêà îáíîâëåíèéé  ïðè ñòàðòå ïðîãðàììû
        N9->Click();           //æìÿê
    if  (Settings->CheckBox11->Checked)  //ïðîâåðêà åñëè CheckBox11->Checked òî çàïóñêàåòñÿ ïðîâåðêà äèñêîâ ïðè ñòàðòå ïðîãðàììû
        Button2->Click();    //æìÿê
    if  (Settings->CheckBox14->Checked)  //ïðîâåðêà åñëè CheckBox11->Checked òî çàïóñêàåòñÿ ïðîâåðêà äèñêîâ ïðè ñòàðòå ïðîãðàììû
    {
        Application->ShowMainForm = false;           //Ñâîðà÷èâàåì ôîðìó ïðè çàïóñêå
        ShowWindow( Handle, SW_HIDE );              // Ñêðûâàåì ïðîãðàììó
        ShowWindow( Application->Handle, SW_HIDE ); // Ñêðûâàåì êíîïêó ñ TaskBar'à
    }
    else
    {
        Application->ShowMainForm = true;
    }
    //--------------------------------------
    AnsiString var = "USERNAME";
    char buff[MAX_PATH];
    GetEnvironmentVariable(var.c_str(),buff,MAX_PATH);
    RichEdit1->Lines->Add("Ïðèâåò, " + AnsiString(buff) + "!" + " Çäåñü áóäåò èíôîðìàöèÿ î âàøåõ äèñêàõ!");
    Label21->Caption=AnsiString(buff);
    Button14->Click();
}
0
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
04.07.2012, 21:20
Цитата Сообщение от Ddv122 Посмотреть сообщение
что тут не так?Учиться надо на ошибках)
Тут нетак то что у вас программе грубо говоря "Каша"
То что вам нужно где то повтарять лучше выносить в отдельные функции.
Ваше //---------------Читаем чекбоксы--------
Вынесите в отдельную функию 100%-но
У вас всё в 1-ном обработчике, чуть вам сново панадобиться какой-то код вы будите копиратом тыкать в коде его, это нехорошо.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
04.07.2012, 21:23
лучше выгосить в отдельные функции.
Зачем?
Достаточно в кнопку вписать ( ну и логику пересмотреть)
C++
1
FormActivate(Sender); // Кстати почему FormActivate а не FormCreate???
Ну либо через инспектор обьектов в эветсах назначить если позволяет.
Я обычно использую ActionList чтоб не привязываться к компонентам.
0
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
04.07.2012, 21:32
Цитата Сообщение от Avazart Посмотреть сообщение
Зачем?
Я считаю что программы нужно писать так что бы её потом понел и кто небуть другой.
А вот этот фарш парой даже читать неохота.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
04.07.2012, 21:36
Открою секрет: обработчик события таже ф-ция
C++
1
FormActivate(Sender);
Лишь её вызов.

Глупо пользоваться IDE и не пользоваться её удобствами (если конечно приложение не кросс.)
Т.е я имею ввиду визуальное программирование которое весьма уменьшает код.
0
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
04.07.2012, 21:41
Avazart,
Обсолютно каждый человек програмирует так, как ему удобно.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
04.07.2012, 21:45
ivan.-94
Обсолютно каждый человек програмирует так, как ему удобно.
Я считаю что программы нужно писать так что бы её потом понел и кто небуть другой.
Немного не согласуется не прав да ли?
В данном случае я подсказываю не только как понятнее, но и как быстрее... на то он и RAD
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
04.07.2012, 22:17  [ТС]
хм, я это использую 1 раз, при запуске программы....
Потом к этому не обращаюсь, и нету смысла писать функцию..
Avazart, изначально у меня даже в мыслях не было использовать
C++
1
FormActivate(Sender)
Так как хотел как во всех больших программах перезапустить её
Вызовом с таким я уже работал)Обновлял ComboBox)
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
04.07.2012, 22:22
Так как хотел как во всех больших программах перезапустить её
Ну еще я еще не видел таких программ которые при нормальных условиях перезапускали бы себя...
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
04.07.2012, 22:26  [ТС]
Avazart, ну в многих программах есть
"Что бы подтвердить настройки- перезагрузите программу.Или что то в этом роде
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
04.07.2012, 22:27
Например?
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
04.07.2012, 22:54  [ТС]
Avazart, PhotoShop при смене языка)
0
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
05.07.2012, 00:27
Так тоже самое что ты закроеш программу и ShellExecute выполниш
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
05.07.2012, 00:31  [ТС]
ivan.-94, не тут то было
Программа не позволяет запустить 2 копии одновременно...

Не по теме:


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

0
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
05.07.2012, 00:39
Закрытие и запуск программы можно как-то произвести через реестор, я непомню как.
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
05.07.2012, 00:44  [ТС]
ivan.-94, Реестр?Вы наверно что то путаете...реестр это "база данных"...
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.07.2012, 00:44

Перезапуск в приложении
Проблема в следующем: Есть пара эдитов, ввожу туда числа , затем нажимаю кнопку (у неё прописаны действия с данными введ в эдитах...

перезапуск проги XD
опять глупый студент. Есть какое-то условие, при выполнении его надо, что бы прога прекратило своё выполнение и вернулась на исходную оО ...

Зависшая программа. Перезапуск
Добрый день! Задумался. Есть программа написанная на Embarcadero XE8. Гипотетически, она может зависнуть. Как написать стороннее...

Программный перезапуск службы-виндовс
Всем доброго времени суток. Как перезапустить службу виндовс? И возможно ли, что бы служба перезапустила саму себя?

Запрет запуска второй копии и перезапуск
Всем привет! Пытаюсь реализовать запрет на запуск второй копии приложения. Вот мой код: int WINAPI _tWinMain(HINSTANCE, HINSTANCE,...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru