Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/29: Рейтинг темы: голосов - 29, средняя оценка - 4.90
1 / 1 / 0
Регистрация: 19.12.2017
Сообщений: 147
1

Вызов калькулятора на компьютере из программы в С++

23.02.2019, 11:00. Показов 5873. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте дали задание вызвать калькулятор с помощью программы в С++ и дали пример кода
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "pch.h"
#include <iostream>
#include <windows.h>
using std::cout;
using namespace std;
int main(int args, char* argv[]) {
    STARTUPINFO si;
    PROCESS_INFORMATION pi;
    TCHAR lpszSytemInfo[MAX_PATH + 1];
    TCHAR tchBuff[MAX_PATH * 2]; 
    LPCWSTR i= LPCWSTR("%s\\calc.exe");
    GetSystemDirectory(lpszSytemInfo, MAX_PATH + 1);
    wsprintf(tchBuff,i,lpszSytemInfo);
 
        ZeroMemory(&si, sizeof(si));
    si.cb = sizeof(si);
    ZeroMemory(&pi, sizeof(pi));
    if (!CreateProcess(NULL, tchBuff, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
        return 0;
    CloseHandle(pi.hProcess);
    CloseHandle(pi.hThread);
    return 0;
Всё вроде работает но калькулятор не запускается( Что же делать, подскажите пожалуйста
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.02.2019, 11:00
Ответы с готовыми решениями:

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

Вызов стандартного калькулятора Windows Qt
Собственно вопрос: как в Qt вызвать стандартный калькулятор Windows?

Вызов калькулятора и блокнота из командной строки
Очень интересно стало почему. не запускается калькулятор и блокнот из командной строки вот таким...

Вызов процедур из DLL, расположенных на удаленном компьютере
Добрый день! Столкнулся с необходимостью вынести часть функционала своей C# программы в DLL,...

13
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
23.02.2019, 11:17 2
У меня работает и вызывается

Предлагаю альтернативу
C++
1
2
3
4
#include <cstdlib>
int main() {
    system("calc.exe");
}
1
215 / 162 / 52
Регистрация: 09.12.2017
Сообщений: 520
23.02.2019, 11:30 3
zss, а таким образом можно вызвать любую программу (нужно ли указывать директории для этого) или только стандартные ОС?
Спасибо!
0
"C with Classes"
1646 / 1403 / 523
Регистрация: 16.08.2014
Сообщений: 5,877
Записей в блоге: 1
23.02.2019, 11:32 4

Не по теме:

я влезу никто не против?


JohnBlack123, загугли это path windows
1
215 / 162 / 52
Регистрация: 09.12.2017
Сообщений: 520
23.02.2019, 11:43 5
_stanislav, спасибо.
Нашел следующую конструкцию : system("start C:\Program Files (x86)\file.exe")
Таким образом можно открыть любую программу, вплоть до запуска браузера с открытием сайта!
Например :
C++
1
system ("start C:\\Users\\Folder\\chrome.exe https://https://www.cyberforum.ru");
0
1 / 1 / 0
Регистрация: 19.12.2017
Сообщений: 147
23.02.2019, 11:44  [ТС] 6
Прикольно спасибо)) ТОлько вот незнаю как мне сдавать такую простою программу преподу)
0
215 / 162 / 52
Регистрация: 09.12.2017
Сообщений: 520
23.02.2019, 11:45 7
Скажите, что чем проще, тем лучше!
0
1 / 1 / 0
Регистрация: 19.12.2017
Сообщений: 147
23.02.2019, 11:50  [ТС] 8
кстати в задании говорится чтобы можно было запустить неогранниченное кол-во раз это я так думаю зациклить и всё)

Добавлено через 4 минуты
а как одновременно все копии закрыть?

Добавлено через 24 секунды
тоесть я вызвал 10 калькуляторов и как все закрыть одновременно?

Добавлено через 15 секунд
тоесть я вызвал 10 калькуляторов и как все закрыть одновременно?
0
"C with Classes"
1646 / 1403 / 523
Регистрация: 16.08.2014
Сообщений: 5,877
Записей в блоге: 1
23.02.2019, 11:54 9
Цитата Сообщение от JohnBlack123 Посмотреть сообщение
Таким образом можно открыть любую программу
у меня в .bat файле прописано вот так:
Bash
1
2
3
4
5
start "STDUViewer"         "C:\Program Files (x86)\STDU Viewer\STDUViewerApp.exe"
start "GoogleChrome"       "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
start "Notepad++"          "C:\Program Files\Notepad++\notepad++.exe"
 
start "VisualStudio2017" "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\devenv.exe"
и сам батник помещен в автозагрузку

Добавлено через 2 минуты
Цитата Сообщение от Lunch Посмотреть сообщение
тоесть я вызвал 10 калькуляторов и как все закрыть одновременно?
вроде как закрыть правильно, с сохранением параметров программы не получится (важно знать как программа работает с сообщениями windows), убить процессы с помощью winapi можно.
0
1 / 1 / 0
Регистрация: 19.12.2017
Сообщений: 147
23.02.2019, 12:14  [ТС] 10
LPCWSTR i = LPCWSTR("calc.exe");
ShowWindow(FindWindow(i, NULL), SW_HIDE);
вроде бы так но оно ничего в итоге не закрывает
0
"C with Classes"
1646 / 1403 / 523
Регистрация: 16.08.2014
Сообщений: 5,877
Записей в блоге: 1
23.02.2019, 12:15 11
Цитата Сообщение от Lunch Посмотреть сообщение
SW_HIDE
это типа просто спрятать окно.
0
28 / 21 / 7
Регистрация: 21.01.2019
Сообщений: 110
23.02.2019, 12:16 12
Цитата Сообщение от Lunch Посмотреть сообщение
тоесть я вызвал 10 калькуляторов и как все закрыть одновременно?
winapi
CreateProcess TerminateProcess
FindWindow DestroyWindow
0
215 / 162 / 52
Регистрация: 09.12.2017
Сообщений: 520
23.02.2019, 12:18 13

Не по теме:

Цитата Сообщение от _stanislav Посмотреть сообщение
и сам батник помещен в автозагрузку
Думаю и себе такую штуку сделать

0
0 / 0 / 0
Регистрация: 24.02.2020
Сообщений: 1
24.02.2020, 17:45 14
Цитата Сообщение от Lunch Посмотреть сообщение
Здравствуйте дали задание вызвать калькулятор с помощью программы в С++ и дали пример кода
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "pch.h"
#include <iostream>
#include <windows.h>
using std::cout;
using namespace std;
int main(int args, char* argv[]) {
    STARTUPINFO si;
    PROCESS_INFORMATION pi;
    TCHAR lpszSytemInfo[MAX_PATH + 1];
    TCHAR tchBuff[MAX_PATH * 2]; 
    LPCWSTR i= LPCWSTR("%s\\calc.exe");
    GetSystemDirectory(lpszSytemInfo, MAX_PATH + 1);
    wsprintf(tchBuff,i,lpszSytemInfo);
 
        ZeroMemory(&si, sizeof(si));
    si.cb = sizeof(si);
    ZeroMemory(&pi, sizeof(pi));
    if (!CreateProcess(NULL, tchBuff, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
        return 0;
    CloseHandle(pi.hProcess);
    CloseHandle(pi.hThread);
    return 0;
Всё вроде работает но калькулятор не запускается( Что же делать, подскажите пожалуйста
У меня такая же проблема, тот же код, консоль открывается, а калькулятор нет.
В чем может проблема?
0
24.02.2020, 17:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.02.2020, 17:45
Помогаю со студенческими работами здесь

Написание программы - калькулятора
Кто нить помогите сделать програмку типа калькулятора в Visual Basic!!!

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

Расширение окна программы(на примере калькулятора)
Добрый вечер! Хотелось бы узнать возможно ли реализовать на Delphi 7 такую штуку, что при...

Создание программы-калькулятора для вычисления 1^2+2^2+3^2+.+n^2
Приветствую всех! Народ, хелп!! Сестренке в 11 классе (зачем??!!!) поставили задачу : ...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru