Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.28;
Скачать: CL | DM;

Вниз

Можно ли отправить сообщение из/в консоль   Найти похожие ветки 

 
S@shka ©   (2004-01-15 14:36) [0]

1. Отправить сообщение из консольно окна в оконное приложение я так полагаю можно и без проблем.
2. А вот как мне отправить команду в окно консоли из другой проги
(врядли для косоли существует такое понятие как окно :) но можно ли
если у меня там
Please enter some>
Можно ли из другой проги на вход консольно что-либо запулить?


 
Digitman ©   (2004-01-15 14:45) [1]

The WriteConsoleInput function writes data directly to the console input buffer.

BOOL WriteConsoleInput(

   HANDLE hConsoleInput, // handle to a console input buffer
   CONST INPUT_RECORD *lpBuffer, // pointer to the buffer for write data
   DWORD nLength, // number of records to write
   LPDWORD lpNumberOfEventsWritten  // pointer to number of records written
  );


 
марсианин ©   (2004-01-15 16:02) [2]

можно создать невидимое окно и слать сообщения ему...


 
S@shka ©   (2004-01-15 16:17) [3]

Может я не верно сформулировал вопрос....
У меня есть программа (exe) котороая запускается в консоли.
Она ждет ввода каких то данных.
Могу ли я из другой программы что нибудь передать в эту консоль???
Если да... то как получить дескриптор консоли


 
Digitman ©   (2004-01-15 16:17) [4]


> марсианин ©   (15.01.04 16:02) [2]
> можно создать невидимое окно и слать сообщения ему...


это здесь причем ? речь идет о штатном ConsoleInput-буфере, как стало понятно из вопроса


 
S@shka ©   (2004-01-15 16:22) [5]

хм выше сформулировал


 
S@shka ©   (2004-01-15 23:11) [6]

Ну найти консоль
можно по
var
h : HWND;
begin
  h := FindWindow (nil,"C:\console.exe");
  а дальше??
end;


 
BiN ©   (2004-01-16 09:20) [7]

S@shka ©   (15.01.04 23:11) [6]
сомневаюсь, что ты сможешь обрабатывать произвольные сообщения, посланные именно консольному окну. Но лучший способ "найти" это окно в W2k - GetConsoleWindow.

В остальном же, ты, я думаю, получил уже вполне исчерпывающие ответы.


 
S@shka ©   (2004-01-16 09:36) [8]

GetConsole Я посмотрю,
но дело в том что мне не нужно обрабатывать произвольные сообщения для консольного окна - мне надо "запулить" данные в его буфер.


 
Digitman ©   (2004-01-16 09:50) [9]


> S@shka


1. перечисляешь консольные процессы (GetConsoleProcessList)
2. среди перечисленных находишь нужный
3. подключаешься к нему (AttachConsole)
4. получаешь хэндл очереди ввода консоли (GetStdHandle)
5. пишеть в очередь то что тебе нужно (WriteConsoleInput)

кажется, это должно выглядеть так


 
AKul ©   (2004-01-16 09:57) [10]


> S@shka ©   (16.01.04 09:36) [8]
> мне надо "запулить" данные
> в его буфер.


Что понимается под буфером? Надеюсь это не буфер обмена.

Что бы передать какие-нибудь данные из приложения в консоль (или наоборот) можно создать Pipe. И дальше обмениваться данными через функции WriteFile и ReadFile.


 
BiN ©   (2004-01-16 10:06) [11]

AKul ©   (16.01.04 09:57) [10]
...только при создании этого процесса из своего приложения.


 
S@shka ©   (2004-01-16 10:06) [12]

нет не буфер обмена.
Консоль
------------------------------------
Введите имя файла:

------------------------------------

ожидает ввода какихто данных - я хочу эти данные передать


 
S@shka ©   (2004-01-16 10:14) [13]

> Digitman
Нет таких API функций
GetConsoleProcessList
AttachConsole


 
AKul ©   (2004-01-16 10:19) [14]


> BiN ©   (16.01.04 10:06) [11]

> ...только при создании этого процесса из своего приложения.


Так разве ж это проблема?


 
BiN ©   (2004-01-16 10:27) [15]

AKul ©   (16.01.04 10:19) [14]
> BiN ©   (16.01.04 10:06) [11]
> ...только при создании этого процесса из своего приложения.


Да, при доступе к произвольному приложению.

S@shka ©   (16.01.04 10:14) [13]
а на мсдн зайти слабо?


 
AKul ©   (2004-01-16 10:32) [16]


> BiN ©   (16.01.04 10:27) [15]
>
> Да, при доступе к произвольному приложению.

По-моему ты из мухи делаешь слона.


 
BiN ©   (2004-01-16 10:38) [17]

AKul ©   (16.01.04 10:32) [16]
во-первых, слон намного интересней мухи :)
а во-вторых, об этом лучше спросить у автора вопроса


 
Digitman ©   (2004-01-16 10:53) [18]


> S@shka ©   (16.01.04 10:14) [13]
> Нет таких API функций


http://msdn.microsoft.com/library/en-us/dllproc/base/console_functions.asp


 
Digitman ©   (2004-01-16 10:56) [19]


> S@shka


они фигурируют начиная с XP , согласно MSDN


 
AKul ©   (2004-01-16 12:18) [20]


> BiN ©   (16.01.04 10:38) [17]
> во-первых, слон намного интересней мухи :)
> а во-вторых, об этом лучше спросить у автора вопроса


Согласен...



Страницы: 1 вся ветка

Текущий архив: 2004.03.28;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.045 c
1-1078965622
Chlavik
2004-03-11 03:40
2004.03.28
При Application.Minimize оставляем одно окно в OnTop


1-1078668907
able
2004-03-07 17:15
2004.03.28
Gutter


4-1074089076
Phrodo
2004-01-14 17:04
2004.03.28
Внутренности LoadLibrary


1-1078902375
Ш-К
2004-03-10 10:06
2004.03.28
Class-reference types


7-1072708118
andruxin
2003-12-29 17:28
2004.03.28
как определить над каким компонентом(имя) была нажата кнопка на м