Вниз
Скачать: CL | DM;

Не получается записать во входной буфер консоли WriteConsoleInput   Найти похожие ветки 

← →
Serafim ©   (2009-02-10 17:38) [0]

У меня такая проблема - не получается записать во входной буфер консоли графического приложения  так, как написано в http://www.delphimaster.ru/articles/console.html -
Объявляю переменные
 ConsoleWindow : HWND;
 InputHandle : THandle;
 OutputHandle : THandle;

 InputRecord : TInputRecord;
 NumberOfRecords : Cardinal;

При создании формы пишу
procedure TForm1.FormCreate(Sender: TObject);
begin
 AllocConsole;
 ConsoleWindow := GetConsoleWindow;
 ShowWindow ( ConsoleWindow, SW_MINIMIZE );
 InputHandle := GetStdHandle ( STD_INPUT_HANDLE );
 OutputHandle := GetStdHandle ( STD_OUTPUT_HANDLE );

end;

При нажатии клавиши в поле Edit
procedure TForm1.Edit2KeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
 InputRecord.EventType := KEY_EVENT;

 InputRecord.Event.KeyEvent.bKeyDown := TRUE;
 InputRecord.Event.KeyEvent.wRepeatCount := 1;
 InputRecord.Event.KeyEvent.wVirtualKeyCode := Key;
 InputRecord.Event.KeyEvent.AsciiChar := Char ( Key );

 WriteConsoleInput ( InputHandle,
                     InputRecord,
                     1,
                     NumberOfRecords );

 InputRecord.Event.KeyEvent.bKeyDown := FALSE;
 WriteConsoleInput ( InputHandle,
                     InputRecord,
                     1,
                     NumberOfRecords );

end;
И в консоли ничего не выводится, но должно, поскольку - это эмуляция нажатия клавиши в самой консоли.
Ксли же пишу
procedure TForm1.Edit2KeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
 Write ( InputHandle, Char ( Key ) );

end;
То символы выводятся, но перед ними пишется цифра 3.
Что делать, как писать во входной буфер консоли с помощью WriteConsoleInput?


← →
Сергей М. ©   (2009-02-11 00:29) [1]

If the function fails, the return value is zero. To get extended error information, call GetLastError.



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.046 c
8-1202991381
Jimmy
2008-02-14 15:16
2010.08.27
Сохранение в psd


2-1267610535
@!!ex
2010-03-03 13:02
2010.08.27
Как в синхронном режиме получить ответ от TCP сервера?


2-1267686761
cyber-pilot
2010-03-04 10:12
2010.08.27
Скроллеры в мемо


15-1262712162
Anatoly Podgoretsky
2010-01-05 20:22
2010.08.27
Режим бога в Вигдоус 7


2-1271962888
Andrey925
2010-04-22 23:01
2010.08.27
написание библеотеки




   Наверх