Вниз
Скачать: 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.044 c
2-1272456320
Вадим
2010-04-28 16:05
2010.08.27
Одна функция для двух одинаковых компонент, возникла проблема


2-1273824908
Игорек
2010-05-14 12:15
2010.08.27
Как лучше работать с файлом размером больше 100мб


2-1272385240
skilful
2010-04-27 20:20
2010.08.27
как организовать ввод в edit


15-1269984282
Petr V. Abramov
2010-03-31 01:24
2010.08.27
а давайте обсудим весну :)


15-1271018237
Кто б сомневался
2010-04-12 00:37
2010.08.27
Структурный файл в php




   Наверх