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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.71
Slimmy
65 / 18 / 2
Регистрация: 09.10.2010
Сообщений: 97
#1

Функция передачи команды в cmd.exe - C++

18.05.2011, 16:18. Просмотров 3049. Ответов 7
Метки нет (Все метки)

Добрый день/вечер/утро, товарищи программисты!
Мне бы хотелось написать программу (точнее, жалкое её подобие), которая бы открывала командную строку, записывала бы туда команду, ну... скажем "cd C:\\Program Files\\bla-bla-bla" и командная строка бы, её выполнила. На самом деле, нужно записать не cd, но я думаю, что смысл понят
Результат работы: запускаешь exe проги -> появляется командная строка -> на автомате выполняется указанная команда. Закрытие командной строки не требуется.
(код абсолютно любой, потому что мне это не сдавать куда-либо, а для личного пользования)
Мой же уровень программирования пока не позволяет это сделать. Вот, что я смог нарыть:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include "stdafx.h"
#include <stdlib.h>
#include <stdio.h>
#include <shlwapi.h>
#include <windows.h>
#pragma comment (lib, "shell32.lib ")
 
int main(){
    ShellExecuteA(NULL,"open","cmd.exe", NULL, NULL,SW_SHOWNORMAL); // Открытие cmd.exe
         // собственно вот тут должна передаваться команда в cmd.exe для выполнения
    return 0;
}
Заранее большое спасибо всем, кто ответит по делу!

Добавлено через 26 минут
Помогите кто-нибудь с моей проблемой Извиняюсь, за ап...

Добавлено через 34 минуты
Ну может кто-нибудь?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2011, 16:18     Функция передачи команды в cmd.exe
Посмотрите здесь:
убрать окно cmd.exe C++
Как изменить размер окна cmd.exe C++
C++ Запилить функцию вывода на экран адреса директории, из которой запущен экземпляр cmd.exe
C++ Функция вне класса для передачи функции объекта
C++ Функция поиска минимального и максимального элемента массива и их передачи в вызывающую функцию
функция команды return sqrt C++
Error MSB6006: "cmd.exe" exited with code 3 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mimicria
return (true);
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
18.05.2011, 16:27     Функция передачи команды в cmd.exe #2
C++
1
system("команда");
Файл cmd.exe не принимает параметры, соответственно ShEx тут не поможет.
Slimmy
65 / 18 / 2
Регистрация: 09.10.2010
Сообщений: 97
18.05.2011, 16:28  [ТС]     Функция передачи команды в cmd.exe #3
Цитата Сообщение от mimicria Посмотреть сообщение
C++
1
system("команда");
Файл cmd.exe не принимает параметры, соответственно ShEx тут не поможет.
Что же тогда может помочь?
mimicria
return (true);
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
18.05.2011, 16:31     Функция передачи команды в cmd.exe #4
Цитата Сообщение от Slimmy Посмотреть сообщение
Что же тогда может помочь?
system() в вашем случае.
Вы объясните для чего, возможно есть более адекватные пути решения.
Slimmy
65 / 18 / 2
Регистрация: 09.10.2010
Сообщений: 97
18.05.2011, 16:32  [ТС]     Функция передачи команды в cmd.exe #5
Цитата Сообщение от mimicria Посмотреть сообщение
system() в вашем случае.
Вы объясните для чего, возможно есть более адекватные пути решения.
Ну вообще мне нужно узнать, доступен ли сервер на данный момент времени (именно через командную строку и только через нее!) с помощью команды ping.
mimicria
return (true);
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
18.05.2011, 16:38     Функция передачи команды в cmd.exe #6
Цитата Сообщение от Slimmy Посмотреть сообщение
именно через командную строку и только через нее
Это вы сами так решили? Просто пинг можно сделать и без всякой командной строки с помощью Indy
Slimmy
65 / 18 / 2
Регистрация: 09.10.2010
Сообщений: 97
18.05.2011, 16:39  [ТС]     Функция передачи команды в cmd.exe #7
Я тут подумал, есть еще другой вариант написания. Создать .cmd файл с IP адресом сервера и обратиться к этому файлу из С++ программы. Вопрос только, опять же, как это сделать каким оператором?

Добавлено через 31 секунду
Цитата Сообщение от mimicria Посмотреть сообщение
Это вы сами так решили? Просто пинг можно сделать и без всякой командной строки с помощью Indy
Да, именно сам Мне это просто необходимо.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.05.2011, 16:42     Функция передачи команды в cmd.exe
Еще ссылки по теме:
C++ Error NSB6006 "cmd.exe" завершилась с кодом 1
C++ Получить вывод команды оболочки - функция, обратная system()
Отличие передачи по ссылке от передачи указателя ? C++
Функция GetTextExtentPoint32 в RELEASE EXE C++
В массиве записаны результаты N игр футбольной команды. Определить количество выигрышей, количество проигрышей и количество ничьих данной команды. C++

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

Или воспользуйтесь поиском по форуму:
mimicria
return (true);
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
18.05.2011, 16:42     Функция передачи команды в cmd.exe #8
Ну тогда без всяких cmd
C++
1
ShellExecuteA(NULL,"open","ping.exe", "www.ya.ru", NULL,SW_SHOWNORMAL);
Ну а дальше то что? Показали юзеру, что пинг есть?
Имхо адекватнее с помощью ICMP-пакетов сделать пинг, считать значение и дальше исходя из него принимать какое-либо решение
Yandex
Объявления
18.05.2011, 16:42     Функция передачи команды в cmd.exe
Ответ Создать тему
Опции темы

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