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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.81
Frenk-kobalt
0 / 0 / 0
Регистрация: 02.08.2011
Сообщений: 10
#1

Открытие сторонней программы с кодом C++ - C++

13.05.2012, 19:57. Просмотров 2187. Ответов 17
Метки нет (Все метки)

У меня идея пришла в голову открыть с++ кодом сторонную программу, как с bat-файла с текстом start C:путь файла.ехе . Весь гугл облазил, элементарного способа не нашел. Есть идеи?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2012, 19:57     Открытие сторонней программы с кодом C++
Посмотрите здесь:
Запись в текстовое поле сторонней программы C++
Открытие файла другой программы из программы.Косяк. C++
Завершение программы с кодом C++
Программы со свободным кодом C++
C++ Программы с открытым исходным кодом
C++ Проблема с кодом программы - не работает проверка условия
Программы для чтения PDF с открытым исходным кодом на С++ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Avazart
Эксперт С++
7122 / 5299 / 273
Регистрация: 10.12.2010
Сообщений: 23,449
Записей в блоге: 17
13.05.2012, 20:02     Открытие сторонней программы с кодом C++ #2
C++
1
2
String ExePath="C:\\Windows\\system32\\calc.exe"; // Запускаем калькулятор
ShellExecute(NULL,"open",ExePath.c_str(),NULL,(ExtractFileDir(ExePath)).c_str(),SW_RESTORE);
Есть и другие ф-ции WinApi для таких целей
Frenk-kobalt
0 / 0 / 0
Регистрация: 02.08.2011
Сообщений: 10
13.05.2012, 20:11  [ТС]     Открытие сторонней программы с кодом C++ #3
А string exepath и shellexecute какой директививой включается?
#include <w32api.h> ?
Avazart
Эксперт С++
7122 / 5299 / 273
Регистрация: 10.12.2010
Сообщений: 23,449
Записей в блоге: 17
13.05.2012, 20:40     Открытие сторонней программы с кодом C++ #4
Ну во превых какой у тебя компилятор?
Пробуй
C++
1
2
3
4
#include <windows.h>
#include <string>
std::string ExePath="C:\\Windows\\system32\\calc.exe"; // Запускаем калькулятор
ShellExecute(NULL,"open",ExePath.c_str(),NULL,(ExtractFileDir(ExePath)).c_str(),SW_RESTORE);
Добавлено через 1 минуту
А вообще читай http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
Frenk-kobalt
0 / 0 / 0
Регистрация: 02.08.2011
Сообщений: 10
13.05.2012, 21:00  [ТС]     Открытие сторонней программы с кодом C++ #5
ну я пишу на Dev c++ 4.9.9.2

ну этот код у мя не работает, то есть не запускает прогу.
Вот мой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <w32api.h>
#include <windows.h>
#include <string>
int main ()
{
     int den;
     int a, b, c, x;
     printf ("pishi sebe summy dvyx chisel! I doka}|{i chto vi ne robot! \n");
     scanf ("%d%d", &a, &b);
     c= a + b;
     printf ("\nOtvet na vopros?\n %d + %d=?", a, b);
     scanf (" %d", &x);
     if ( x == c) {
          printf("\nDer]|[i i raduisa!8-)");
          std::string ExePath="C:\\Windows\\system32\\calc.exe";
          ShellExecute(NULL,"open",ExePath.c_str(),NULL,(ExtractFileDir(ExePath)).c_str(),SW_RESTORE);
          }
     else {
          return 0;
          }
return 0;
Avazart
Эксперт С++
7122 / 5299 / 273
Регистрация: 10.12.2010
Сообщений: 23,449
Записей в блоге: 17
13.05.2012, 21:15     Открытие сторонней программы с кодом C++ #6
Какие ошибки выдает?
exkilla
3 / 3 / 0
Регистрация: 28.12.2009
Сообщений: 73
13.05.2012, 21:15     Открытие сторонней программы с кодом C++ #7
Попробуйте так. У меня запускается калькулятор.
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
#include <stdio.h>
#include <windows.h>
#include <string>
 
int main ()
{
    int den;
    int a, b, c, x;
 
    printf ("pishi sebe summy dvyx chisel! I doka}|{i chto vi ne robot! \n");
    scanf ("%d%d", &a, &b);
 
    c = a + b;
 
    printf ("\nOtvet na vopros?\n %d + %d=?", a, b);
    scanf (" %d", &x);
 
    if (x == c) 
    {
        printf("\nDer]|[i i raduisa!8-)");
        std::string ExePath="C:\\Windows\\system32\\calc.exe";
        ShellExecute(NULL,"open",ExePath.c_str(),NULL,NULL,SW_RESTORE);
    }
 
    return 0;
}
Avazart
Эксперт С++
7122 / 5299 / 273
Регистрация: 10.12.2010
Сообщений: 23,449
Записей в блоге: 17
13.05.2012, 21:18     Открытие сторонней программы с кодом C++ #8
Да я забыл убрать ExtractFileDir() это кажется чисто Builder-ровская ф-ция, но рабочую дирректорию все равно надо задавать,в NULL её лучше не ставить
Frenk-kobalt
0 / 0 / 0
Регистрация: 02.08.2011
Сообщений: 10
13.05.2012, 21:20  [ТС]     Открытие сторонней программы с кодом C++ #9
спасибо, запустилось. Но хочу понять причину ошибки. в моем коде компилятор ругает на
C:\Dev-Cpp\];-)\ankl.cpp In function `int main()':
C:\Dev-Cpp\];-)\ankl.cpp `ExtractFileDir' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)
exkilla
3 / 3 / 0
Регистрация: 28.12.2009
Сообщений: 73
13.05.2012, 21:31     Открытие сторонней программы с кодом C++ #10
Цитата Сообщение от Frenk-kobalt Посмотреть сообщение
спасибо, запустилось. Но хочу понять причину ошибки. в моем коде компилятор ругает на
C:\Dev-Cpp\];-)\ankl.cpp In function `int main()':
C:\Dev-Cpp\];-)\ankl.cpp `ExtractFileDir' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)
Причину же Вам написал компилятор. Не объявлена функция ExtractFileDir.

Цитата Сообщение от Avazart Посмотреть сообщение
но рабочую дирректорию все равно надо задавать,в NULL её лучше не ставить
Прочитайте MSDN.

lpDirectory [in, optional]
Type: LPCTSTR
A pointer to a null-terminated string that specifies the default (working) directory for the action. If this value is NULL, the current working directory is used. If a relative path is provided at lpFile, do not use a relative path for lpDirectory.
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

В данном случае у нас путь указан в lpFile.
Avazart
Эксперт С++
7122 / 5299 / 273
Регистрация: 10.12.2010
Сообщений: 23,449
Записей в блоге: 17
13.05.2012, 21:32     Открытие сторонней программы с кодом C++ #11
Но хочу понять причину ошибки
ExtractFileDir() это кажется чисто Builder-ровская ф-ция
В вашем компиляторе нет такой ф-ции, ищите аналоги либо напишите её сами
Frenk-kobalt
0 / 0 / 0
Регистрация: 02.08.2011
Сообщений: 10
13.05.2012, 21:34  [ТС]     Открытие сторонней программы с кодом C++ #12
Да, уже читаю...
Avazart
Эксперт С++
7122 / 5299 / 273
Регистрация: 10.12.2010
Сообщений: 23,449
Записей в блоге: 17
13.05.2012, 21:35     Открытие сторонней программы с кодом C++ #13
но рабочую дирректорию все равно надо задавать,в NULL её лучше не ставить
Прочитайте MSDN.
exkilla Почитай меня
Узнать корневой каталог
exkilla
3 / 3 / 0
Регистрация: 28.12.2009
Сообщений: 73
13.05.2012, 21:43     Открытие сторонней программы с кодом C++ #14
Avazart, почитал. В данном случае мы указываем путь в lpFile, так что не волнует какая рабочая директория. Запущенно ярлыком или нет. Если не верите на слово - попробуйте и удостоверьтесь.

P.S. Для Вас MSDN является не достоверным источником?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2012, 21:56     Открытие сторонней программы с кодом C++
Еще ссылки по теме:
C++ Открытие файла с видео из программы
C++ Не вижу окна с кодом (нет окна редактирования): найти причины странного поведения программы
C++ Подключение сторонней библиотеки
C++ Подключение сторонней библиотеки
C: проблема с использованием сторонней библиотеки C++

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

Или воспользуйтесь поиском по форуму:
Frenk-kobalt
0 / 0 / 0
Регистрация: 02.08.2011
Сообщений: 10
13.05.2012, 21:56  [ТС]     Открытие сторонней программы с кодом C++ #15
Я о MSDN первый раз слышу =)
Yandex
Объявления
13.05.2012, 21:56     Открытие сторонней программы с кодом C++
Ответ Создать тему
Опции темы

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