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

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

Восстановить пароль Регистрация
 
ЛеЖиК)
 Аватар для ЛеЖиК)
157 / 60 / 1
Регистрация: 29.04.2011
Сообщений: 630
17.11.2011, 15:32     запустить программу из самой себя #1
задача: нужно запустить программу с ключом(консольную)....


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

Как заставить программу запустить другую программу C++
Создайте программу с классом student, который включает в себя данные о студентах, желающих получить места в общежитии. C++
как создать программу которая будет себя копировать? C++
Используя вместо самой переменной указатель на нее написать программу в соответствии с заданием: C++
Написать функцию, которая принимает указатель на переменную и присваивает ей модуль самой себя. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
17.11.2011, 15:55     запустить программу из самой себя #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ

Не по теме:

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


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

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

Добавлено через 49 секунд
Цитата Сообщение от easybudda Посмотреть сообщение
нём в свойствах ключ указать.
при каждом запуске ключ меняется
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
17.11.2011, 16:26     запустить программу из самой себя #4
Цитата Сообщение от ЛеЖиК) Посмотреть сообщение
однако где то после нескольких тысяч запросов она начинает выдавать ошибку( Hinternet=0)
если программу перезапустить, то она опять начнет работать
вопрос в том как ее перезапустить
Вопрос в том, почему она сыпаться начинает. Судя по описанию утечка ресурсов где-то... Короче, нужно в программе косяки искать, а не чудны'е костыли к ней приделывать...
ЛеЖиК)
 Аватар для ЛеЖиК)
157 / 60 / 1
Регистрация: 29.04.2011
Сообщений: 630
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;
}
ЛеЖиК)
 Аватар для ЛеЖиК)
157 / 60 / 1
Регистрация: 29.04.2011
Сообщений: 630
18.11.2011, 19:48  [ТС]     запустить программу из самой себя #6
upup
проблема не решена
Байт
 Аватар для Байт
13974 / 8805 / 1227
Регистрация: 24.12.2010
Сообщений: 15,949
18.11.2011, 20:06     запустить программу из самой себя #7
ЛеЖиК), Есть такие функции как system, spanl, в конце концов CreateProcess
Типа такого
C
1
2
system("proga.exe");
exit(0);
ЛеЖиК)
 Аватар для ЛеЖиК)
157 / 60 / 1
Регистрация: 29.04.2011
Сообщений: 630
18.11.2011, 20:16  [ТС]     запустить программу из самой себя #8
спасибо, а как ей передать значения?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2011, 20:43     запустить программу из самой себя
Еще ссылки по теме:

C++ Напишите программу для нахождения самой короткой стороны треугольника с вершина-ми A (X1, Y1), B (X2, Y2), C (X3, Y3)
Сворачивание программы самой себя в трей C++
STL Вектор Копирование элемнтов себя из себя C++

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

Или воспользуйтесь поиском по форуму:
Байт
 Аватар для Байт
13974 / 8805 / 1227
Регистрация: 24.12.2010
Сообщений: 15,949
18.11.2011, 20:43     запустить программу из самой себя #9
Цитата Сообщение от ЛеЖиК) Посмотреть сообщение
спасибо, а как ей передать значения?
Параметры, что ли?
C
1
system("proga par1 par2");
Yandex
Объявления
18.11.2011, 20:43     запустить программу из самой себя
Ответ Создать тему
Опции темы

Текущее время: 17:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru