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

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

Войти
Регистрация
Восстановить пароль
 
ЛеЖиК)
157 / 60 / 1
Регистрация: 29.04.2011
Сообщений: 639
#1

запустить программу из самой себя - C++

17.11.2011, 15:32. Просмотров 886. Ответов 8
Метки нет (Все метки)

задача: нужно запустить программу с ключом(консольную)....


не знаю как лучше всего сделать, у меня такой вариант
програvма создает bat файл, который ее запускает, дальше программа запускает этот батник и закрывается...
батник через секунду опять запускает программа передавая ей числовой аргумент
но у меня куча вопросов
1) как запустить батник из программы
2) как сделать что бы батник подождал некоторое время потом начал выполняться
3) какой код должен быть в батнике чтобы запустить программу и передать ей аргумент
4) как в коде обработать этот аргумент (должно получиться int значение)
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2011, 15:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос запустить программу из самой себя (C++):

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

Написать функцию, которая принимает указатель на переменную и присваивает ей модуль самой себя. - C++
Задача 1. Написать функцию, которая принимает указатель на переменную и присваивает ей модуль самой себя.

Используя вместо самой переменной указатель на нее написать программу - C++
Используя вместо самой переменной указатель на нее написать программу. #include <iostream> #include <math.h> #include <conio.h> ...

Как заставить программу запустить другую программу - C++
Как заставить программу запуститься в спрятанном режиме, чтобы её можно было найти только в Дистептчере задач во вкладке процессы и...

STL Вектор Копирование элемнтов себя из себя - C++
Смысл такой, вектор содержит несколько чисел 1,2,3,4,5,6,7 Я хочу на алгоритмах скопировать некоторый блок элементов. например ...

Напишите программу для нахождения самой короткой стороны треугольника с вершина-ми A (X1, Y1), B (X2, Y2), C (X3, Y3) - C++
#include<iostream> #include<cmath> #include <conio.h> #include <stdlib.h> using namespace std; int main() { ...

8
easybudda
Модератор
Эксперт CЭксперт С++
9680 / 5630 / 954
Регистрация: 25.07.2009
Сообщений: 10,803
17.11.2011, 15:55 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ

Не по теме:

Вы, профессор, воля ваша, что-то нескладное сочинили. Оно может и умно', да уж больно не понятно. Над Вами же потешаться будут.
(с)М.Булгаков


Вы бы цель всей этой свистопляски написали, а то как-то мутно. Наверняка есть более простое решение...
Например в винде можно создать ярлык к програмке и в нём в свойствах ключ указать...
3
ЛеЖиК)
157 / 60 / 1
Регистрация: 29.04.2011
Сообщений: 639
17.11.2011, 16:02  [ТС] #3
дело такое: программа сама лазиет по интернету по разным ссылкам... однако где то после нескольких тысяч запросов она начинает выдавать ошибку( Hinternet=0)
если программу перезапустить, то она опять начнет работать
вопрос в том как ее перезапустить

(ссылки хранятся в файле txt и надо передать программе аргумент с какой ссылки начать)

Добавлено через 49 секунд
Цитата Сообщение от easybudda Посмотреть сообщение
нём в свойствах ключ указать.
при каждом запуске ключ меняется
0
easybudda
Модератор
Эксперт CЭксперт С++
9680 / 5630 / 954
Регистрация: 25.07.2009
Сообщений: 10,803
17.11.2011, 16:26 #4
Цитата Сообщение от ЛеЖиК) Посмотреть сообщение
однако где то после нескольких тысяч запросов она начинает выдавать ошибку( Hinternet=0)
если программу перезапустить, то она опять начнет работать
вопрос в том как ее перезапустить
Вопрос в том, почему она сыпаться начинает. Судя по описанию утечка ресурсов где-то... Короче, нужно в программе косяки искать, а не чудны'е костыли к ней приделывать...
0
ЛеЖиК)
157 / 60 / 1
Регистрация: 29.04.2011
Сообщений: 639
17.11.2011, 17:40  [ТС] #5
в данном случае мне подходят костыли
я думаю ускать утечку уйдет много время, и врятли я ее найду( программа работает в той области с которой я работаю впервые)
так что подскажите пожалуйста как перезапустить программу, или помогите найти ошибку (
Вот код)
инициализциЯ:
C++
1
2
3
    hInternet = ::InternetOpen( TEXT("WinInet Test"), INTERNET_OPEN_TYPE_PRECONFIG,   NULL,   NULL,   0);
    if(hInternet==0)
        return 0;
и функция
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
bool readsite(const char *url)
{
          bool ok = false;
       // Инициализация WinInet
       
             HINTERNET  bSend = InternetOpenUrlA(hInternet , (LPCSTR)url , 0, NULL, 0,0);
             if (bSend!=0)
              {                                    
                    for (;;)
                    {
                                                       
                           char szData[1024];
                            DWORD dwByteRead;
                            BOOL bRead = ::InternetReadFile( bSend , szData, sizeof(szData)-1,     &dwByteRead);
                             if (bRead == FALSE || dwByteRead == 0)
                                  break;
                          szData[dwByteRead] = 0;
                        strcpy(koD.kod_HTML,szData);
                        Kod.push_back(koD);
                        ok = true;
 
                    }
                                                
 
 
              }
            else 
                ERR"Error bsend";
        
 
 
 
        return 1;
}
0
ЛеЖиК)
157 / 60 / 1
Регистрация: 29.04.2011
Сообщений: 639
18.11.2011, 19:48  [ТС] #6
upup
проблема не решена
0
Байт
Эксперт C
16322 / 10598 / 1586
Регистрация: 24.12.2010
Сообщений: 20,207
18.11.2011, 20:06 #7
ЛеЖиК), Есть такие функции как system, spanl, в конце концов CreateProcess
Типа такого
C
1
2
system("proga.exe");
exit(0);
1
ЛеЖиК)
157 / 60 / 1
Регистрация: 29.04.2011
Сообщений: 639
18.11.2011, 20:16  [ТС] #8
спасибо, а как ей передать значения?
0
Байт
Эксперт C
16322 / 10598 / 1586
Регистрация: 24.12.2010
Сообщений: 20,207
18.11.2011, 20:43 #9
Цитата Сообщение от ЛеЖиК) Посмотреть сообщение
спасибо, а как ей передать значения?
Параметры, что ли?
C
1
system("proga par1 par2");
1
18.11.2011, 20:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2011, 20:43
Привет! Вот еще темы с ответами:

Как полностью перезапустить программу из самой же программы? Не сбросить все параметры - C++
Имеется достаточно длинная программа. Вся программа содержится в main() с использованием case. Нужно полностью ребутнуть всю программу,...

как создать программу которая будет себя копировать? - C++
//????????????

Используя вместо самой переменной указатель на нее написать программу в соответствии с заданием: - C++
3) Даны значения a и b, найти их среднее арифметическое, среднегеометрическое.

Запустить программу в С++ v3.1 - C++
Вот собственно код, это Юра ты мне и делал сам.А для какого Си ты его написал у меня С++ v.3,1 #include <iostream> using namespace std;...


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

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

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