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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 5.00
Rusarch333
7 / 7 / 1
Регистрация: 12.08.2012
Сообщений: 96
#1

Программный перезапуск программы - C++

05.09.2012, 21:26. Просмотров 2902. Ответов 7
Метки нет (Все метки)

Здравствуйте, как программно сделать перезапуск программы в программе (работаю в VS) . При этом путь к .exe должен определяться автоматический
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.09.2012, 21:26     Программный перезапуск программы
Посмотрите здесь:

Перезапуск программы - C++
Нужно перезапустить программу нажатием на любую букву, кроме n. В чем ошибка? #include "stdafx.h" #include "iostream" #include...

Перезапуск программы - C++
Доброго времени суток. Подскажите пожалуйста как сделать, чтобы по окончанию программы выходило сообщение: "Выбрать другой рецепт? да(y)/...

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

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

Перезапуск программы - C++
Подскажите как реализовать перезапуск программы, ну допустим задаем условие и если условие выполняется то включить перезапуск программы (не...

Включение отключение и перезапуск устройства - C++
Иметься программа включающая и отключающая видео карту. 1) Хотелось бы реализовать включение и отключение не используя внешнего файла...

Перезапуск таймера при повторном запуске потока - C++
#include <condition_variable> #include <iostream> #include <random> #include <thread> #include <mutex> #include <queue> ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OVERWAVE
0 / 1 / 0
Регистрация: 02.08.2012
Сообщений: 45
05.09.2012, 21:51     Программный перезапуск программы #2
Я не помню команду, но на VB Я делал и он выглядит примерно : Me.Restart()
Петррр
5942 / 3379 / 335
Регистрация: 28.10.2010
Сообщений: 5,926
05.09.2012, 21:54     Программный перезапуск программы #3
C++
1
2
3
4
5
6
7
#include <cstdlib>
 
int main()
{
    system("mysql -u root -p");
    return 0;
}
-=ЮрА=-
Заблокирован
Автор FAQ
06.09.2012, 00:59     Программный перезапуск программы #4
Цитата Сообщение от Rusarch333 Посмотреть сообщение
Здравствуйте, как программно сделать перезапуск программы в программе (работаю в VS) . При этом путь к .exe должен определяться автоматический
- ShellExecute саму себя, а текущую копию экзехи убить посредством TerminateProcess
-=ЮрА=-
Заблокирован
Автор FAQ
06.09.2012, 01:09     Программный перезапуск программы #5
Rusarch333, вот простая реализация описанного мной рестарта
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <windows.h>
#include <iostream>
using namespace std;
 
int main(int argc, char * argv[])
{
    DWORD dwPID = 0;
    cout<<"PROGRAM_PATH : "<<argv[0]<<endl;
    cout<<"PROGRAM_ID   : "<<(dwPID = GetCurrentProcessId())<<endl;
    cout<<"After pressing key program will be restarted\n";
    system("pause");
    ShellExecute(NULL,"open",argv[0],NULL,NULL,SW_SHOWDEFAULT);
    TerminateProcess(OpenProcess(PROCESS_TERMINATE,FALSE,dwPID),0);
    return 0;
}
PS:Думаю ясно что консоли снизу при Release конфигурации не будет (приложение просто само себя убьёт, а останется лишь перезапущенная копия). Причём при рестарте через аргументы командной строки можно передать данные от предыдущего экземпляра программы (как бы установить новый экземпляр в место отработки предшественника)
Миниатюры
Программный перезапуск программы  
Rusarch333
7 / 7 / 1
Регистрация: 12.08.2012
Сообщений: 96
09.09.2012, 21:39  [ТС]     Программный перезапуск программы #6
Я новичок в программировании. Как char * argv[] хранит в себе путь к файлу ? Я не понемаю даже * argv[], знаю только, что * - это, вроде, как указатель...
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
09.09.2012, 21:41     Программный перезапуск программы #7
Rusarch333, путь к файлу хранится в argv[0], argv сам по себе - массив указателей, которые в свою очередь указывают на какие-то данные, 0-ой по списку - на путь и имя программы.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.09.2012, 23:05     Программный перезапуск программы
Еще ссылки по теме:

Реализовать программный калькулятор - C++
Нужно сделать на с++ следующее... Прошу помощи.

Исправить программный код - C++
Вот программный код. При компиляции не показывает ошибок хотя она там есть я не могу её найти. P.S. C++ начал изучать недавно. ...

Программный выход из приложения - C++
Нужна команда программного выхода и консольного приложения типа как Close();

программный код по ШАхматам С++ - C++
Прошу помочь с программным кодом по шахматам подсказать что изменить или что добавить. Мне была дана задача сделать класс матрицы игры в...

напишите пожалуйста программный код - C++
1. * результаты выполнения программы: o значение точности e, o номера и значения n...


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

Или воспользуйтесь поиском по форуму:
Rusarch333
7 / 7 / 1
Регистрация: 12.08.2012
Сообщений: 96
09.09.2012, 23:05  [ТС]     Программный перезапуск программы #8
А можно как-то сделать перезапуск, через:

C++
1
system ("start путь_к_файлу");
Только вместо: "путь_к_фалу" была б переменная, которая б его определяла и хранила ?

Добавлено через 42 минуты
Всем спасибо ! Получилось !

C++
1
2
3
4
5
6
7
8
9
10
#include <windows.h>
#include <iostream>
using namespace std;
 
int main(int argc, char * argv[])
{
   system (argv[0]);
 
   return 0;
}
Но мне нужно детальное объяснение работы кода для курсовой, объясните выражение:

C++
1
int argc, char * argv[]
А именно:

1. Почему обязательно нужно об'являть: int argc ?
2. Что означает: char * ?

(приношу извинения за свою тупость)

Добавлено через 33 минуты
Вот ответ:

Первая типа int хранит количество передаваемых параметров, один из параметров - это обязательно имя программы (абсолютный путь), далее уже могут быть ваши параметры , если это ваша программа.

argv - это обычно массив char, но сейчас уже _TCHAR, причем указателей, но _TCHAR обычно в иде стоит как char, там уже имена переданных параметров, один - это программа, а остальные - это уже их порядок.
Yandex
Объявления
09.09.2012, 23:05     Программный перезапуск программы
Ответ Создать тему
Опции темы

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