Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: 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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.173 c
2-1270489278
Dr. Genius
2010-04-05 21:41
2010.08.27
Проблема с компонентом мониторинга ShellNotify


15-1264517700
Nucer
2010-01-26 17:55
2010.08.27
Proxy сервер на 1000+ соединений на Delphi с исходным кодом


15-1268773367
Nic
2010-03-17 00:02
2010.08.27
НДС - непонятно немного


2-1275332438
Delphi
2010-05-31 23:00
2010.08.27
Как это будет на Delphi?


2-1268835153
@!!ex
2010-03-17 17:12
2010.08.27
Как создать пакет с компонентами?