Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3

Командная строка и Memo

12.07.2012, 10:22. Показов 2666. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!!!

Ребята подскажите по такому вопросу.

Мне надо из Memo сделать командную строку.
Т.е чтобы через него можно было бы вводить команду ipconfig, а также дугие команды. И здесь же получать ответ от этих команд в этом компоненте Memo/

Заранее благодарен за ответ
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.07.2012, 10:22
Ответы с готовыми решениями:

Командная строка
Подскажите, что надо сделать, чтобы мое приложение запускалось при записи в коммандную строку только имени проекта, в не зависимости от...

ShellExecute и командная строка (cmd)
Доброго времени суток! Мне необходимо из командной строки отключить сетевую карту с помощью команды devcon.exe disable...

Командная строка в свойствах проекта
Должна быть где-то в свойствах проекта окно для ввода командной строки. Не могу найти. При старте проекта некоторой функцией (тоже не...

4
 Аватар для Sergey-K
238 / 229 / 58
Регистрация: 27.10.2011
Сообщений: 249
12.07.2012, 13:04
Из консоли в Memo
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
12.07.2012, 14:31  [ТС]
И ничё не вышло. Набрал в мемо команду ipconfig и нажал Enter и всё, но к сожалению в мемо не отобразился ход выполнения команды.
Вот код
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormShow(TObject *Sender)
{
Memo1->Clear();
}
//---------------------------------------------------------------------------
HANDLE SpawnAndRedirect(LPCTSTR commandLine, HANDLE *hStdOutputReadPipe, LPCTSTR lpCurrentDirectory)
{
  HANDLE hStdOutputWritePipe, hStdOutput, hStdError;
  CreatePipe(hStdOutputReadPipe, &hStdOutputWritePipe, NULL, 0);
  DuplicateHandle(GetCurrentProcess(), hStdOutputWritePipe,GetCurrentProcess(), &hStdOutput,0, TRUE, DUPLICATE_SAME_ACCESS);
  DuplicateHandle(GetCurrentProcess(), hStdOutput, GetCurrentProcess(), &hStdError, 0, TRUE, DUPLICATE_SAME_ACCESS);
  CloseHandle(hStdOutputWritePipe);
  PROCESS_INFORMATION pi;
  STARTUPINFO si;
  ZeroMemory(&si, sizeof(STARTUPINFO));
  si.cb = sizeof(STARTUPINFO);
  si.dwFlags = STARTF_USESTDHANDLES|STARTF_USESHOWWINDOW;
  si.hStdInput  = GetStdHandle(STD_INPUT_HANDLE);
  si.hStdOutput = hStdOutput;
  si.hStdError  = hStdError;
  si.wShowWindow = SW_HIDE;
  TCHAR commandLineCopy[1024];
  strcpy(commandLineCopy, commandLine);
  if(!CreateProcess(NULL, commandLineCopy, NULL, NULL, TRUE, CREATE_NEW_CONSOLE, NULL, lpCurrentDirectory, &si, &pi))
    {
      CloseHandle(hStdOutput);
      CloseHandle(hStdError);
      CloseHandle(*hStdOutputReadPipe);
      *hStdOutputReadPipe = INVALID_HANDLE_VALUE;
      return NULL;
    }
  CloseHandle(pi.hThread);
  CloseHandle(hStdOutput);
  CloseHandle(hStdError);
  return pi.hProcess;
}
//-----------------------------------------------------------------
AnsiString GetInfo(LPCTSTR commandLine)
{
  HANDLE hOutput, hProcess;
  hProcess = SpawnAndRedirect(commandLine, &hOutput, NULL);
  if(!hProcess)
    {
      return "";
    }
  CHAR buffer[128];
  CHAR out[131072] = "";
  DWORD read;
  while(ReadFile(hOutput, buffer, 128, &read, NULL))
    {
      buffer[read] = '\0';
      lstrcatA(out, buffer);
    }
  CHAR msg[131072] = "";
  OemToCharA(out, msg);
  AnsiString str = AnsiString(msg);
  CloseHandle(hOutput);
  CloseHandle(hProcess);
  return str;
}
void __fastcall TForm1::Memo1KeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
 if(Key==VK_RETURN)
   {
   AnsiString Command = Memo1->Lines->Strings[0];
   AnsiString Result = GetInfo(Command.c_str());
   }
}
//---------------------------------------------------------------------------
2
return (true);
 Аватар для mimicria
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
12.07.2012, 14:59
C++
1
2
3
4
5
6
if(Key==VK_RETURN)
   {
   AnsiString Command = Memo1->Lines->Strings[0];
   AnsiString Result = GetInfo(Command.c_str());
   Memo1->Lines->Add(Result); // <=======================================
   }
3
12.07.2012, 22:04
 Комментарий модератора 
Правила, п.5.13. Один вопрос - одна тема.
Не относящиеся к текущей теме сообщения перенесены в новую тему:
Что сделать с вот такой вот кодировкой
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.07.2012, 22:04
Помогаю со студенческими работами здесь

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

Командная строка
Почему не выполняется копирование и обработка файла. if not OpenDialog1.Execute then Exit; CopyFile(PChar(OpenDialog1.FileName),...

Командная строка.
как с помощью командной строки в windows XP удалить файлы с заданными именами и расширениями в заданных директориях??? очень срочно...

Командная строка
Подскажите пожалуйста - Если я запускаю программу в командной строке через Sublime Text например, и потом делаю какие-то изменения и снова...

Командная строка
Создать командный файл *.bat выводящий на экран построчно слова из командной строки запуска *.bat на выполнение. Слова вывести в алфавитном...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru