Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.98/50: Рейтинг темы: голосов - 50, средняя оценка - 4.98
7 / 7 / 2
Регистрация: 12.08.2012
Сообщений: 96
1

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

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

Здравствуйте, как программно сделать перезапуск программы в программе (работаю в VS) . При этом путь к .exe должен определяться автоматический
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.09.2012, 21:26
Ответы с готовыми решениями:

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

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

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

перезапуск программы
пишу игру. в "конце поставил проверку, хотите ли запустить заново?" использовал кучу функций....

10
0 / 1 / 0
Регистрация: 02.08.2012
Сообщений: 45
05.09.2012, 21:51 2
Я не помню команду, но на VB Я делал и он выглядит примерно : Me.Restart()
0
6215 / 3516 / 899
Регистрация: 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;
}
1
Заблокирован
Автор FAQ
06.09.2012, 00:59 4
Цитата Сообщение от Rusarch333 Посмотреть сообщение
Здравствуйте, как программно сделать перезапуск программы в программе (работаю в VS) . При этом путь к .exe должен определяться автоматический
- ShellExecute саму себя, а текущую копию экзехи убить посредством TerminateProcess
1
Заблокирован
Автор 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 конфигурации не будет (приложение просто само себя убьёт, а останется лишь перезапущенная копия). Причём при рестарте через аргументы командной строки можно передать данные от предыдущего экземпляра программы (как бы установить новый экземпляр в место отработки предшественника)
1
Миниатюры
Программный перезапуск программы  
7 / 7 / 2
Регистрация: 12.08.2012
Сообщений: 96
09.09.2012, 21:39  [ТС] 6
Я новичок в программировании. Как char * argv[] хранит в себе путь к файлу ? Я не понемаю даже * argv[], знаю только, что * - это, вроде, как указатель...
0
591 / 529 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
09.09.2012, 21:41 7
Rusarch333, путь к файлу хранится в argv[0], argv сам по себе - массив указателей, которые в свою очередь указывают на какие-то данные, 0-ой по списку - на путь и имя программы.
1
7 / 7 / 2
Регистрация: 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, там уже имена переданных параметров, один - это программа, а остальные - это уже их порядок.
0
0 / 0 / 0
Регистрация: 05.10.2019
Сообщений: 4
05.10.2019, 13:32 9
Помогите пожалуйста! Мне нужно чтобы в моей программе по нажатию кнопки "r" перезапускалась программа.

#include <iostream>
#include <conio.h>
using namespace std;

int main (void)
{
int a,b,r;
char c;
char g;
c = getch();
cin >>a;
b=a/100;
cout <<b;
cout <<"\r\n";
cout<<"Press Enter to exit the program\n";
c = getch();
if (c==13) {
cout<<"Exit!"<<endl;
exit(0);
}
cout<<"Error!"<<endl;
system("pause");
return 0;
}
//Программа должна делить a на 100. И по нажатию Enter закрываться после получения ответа. И если возможно на клавишу r перезапускаться после получения ответа.
0
4425 / 3015 / 1837
Регистрация: 18.12.2017
Сообщений: 9,493
05.10.2019, 16:04 10
SergeyHarkevich, создавайте свою тему для вопроса. может Вам нужен не программный перезапуск, а повтор ввода при нажатии r ?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
 
int main()
{    
    double a;
    char ch;
    
    do
    {    
    cout << "a="; cin >> a;
    cout << a << "/100=" << a/100. << "\n";
    cout << "Continue? (r - YES, other - NO) : "; cin >> ch;
    }     
    while (ch=='r');    
 
system("pause");
return 0;
}
1
0 / 0 / 0
Регистрация: 05.10.2019
Сообщений: 4
05.10.2019, 18:29 11
Да, спасибо!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.10.2019, 18:29

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Перезапуск программы
Доброго времени суток. Подскажите пожалуйста как сделать, чтобы по окончанию программы выходило...

Перезапуск программы
Подскажите как реализовать перезапуск программы, ну допустим задаем условие и если условие...

Программный перезапуск приложения
Добрый день. Подскажите пожалуйста, можно ли как-то в Xamarin Forms вызвать программный перезапуск...

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

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