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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.71
Slimmy
 Аватар для Slimmy
65 / 18 / 2
Регистрация: 09.10.2010
Сообщений: 97
18.05.2011, 16:18     Функция передачи команды в cmd.exe #1
Добрый день/вечер/утро, товарищи программисты!
Мне бы хотелось написать программу (точнее, жалкое её подобие), которая бы открывала командную строку, записывала бы туда команду, ну... скажем "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 минуты
Ну может кто-нибудь?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
18.05.2011, 16:27     Функция передачи команды в cmd.exe #2
C++
1
system("команда");
Файл cmd.exe не принимает параметры, соответственно ShEx тут не поможет.
Slimmy
 Аватар для 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);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
18.05.2011, 16:31     Функция передачи команды в cmd.exe #4
Цитата Сообщение от Slimmy Посмотреть сообщение
Что же тогда может помочь?
system() в вашем случае.
Вы объясните для чего, возможно есть более адекватные пути решения.
Slimmy
 Аватар для Slimmy
65 / 18 / 2
Регистрация: 09.10.2010
Сообщений: 97
18.05.2011, 16:32  [ТС]     Функция передачи команды в cmd.exe #5
Цитата Сообщение от mimicria Посмотреть сообщение
system() в вашем случае.
Вы объясните для чего, возможно есть более адекватные пути решения.
Ну вообще мне нужно узнать, доступен ли сервер на данный момент времени (именно через командную строку и только через нее!) с помощью команды ping.
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
18.05.2011, 16:38     Функция передачи команды в cmd.exe #6
Цитата Сообщение от Slimmy Посмотреть сообщение
именно через командную строку и только через нее
Это вы сами так решили? Просто пинг можно сделать и без всякой командной строки с помощью Indy
Slimmy
 Аватар для 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++ Запилить функцию вывода на экран адреса директории, из которой запущен экземпляр cmd.exe
Как изменить размер окна cmd.exe C++
Error MSB6006: "cmd.exe" exited with code 3 C++

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

Или воспользуйтесь поиском по форуму:
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
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
Ответ Создать тему
Опции темы

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