.


:




:

































 

 

 

 


Dword len, dword* actlen).




( ) , INPUT_RECORD . . len. buffer , len 1. , len, 1, ReadConsoleInputA , ( actlen). . , . , , ().

#include <windows.h>

#include <stdio.h>

void main()

{char prompt[]="Input any character:";

char text[]="\nInputing";

INPUT_RECORD charinfo;

DWORD actlen;

HANDLE hstdout,hstdin;

hstdout=GetStdHandle(STD_OUTPUT_HANDLE);

if(hstdout==INVALID_HANDLE_VALUE)

{printf("Error GetStdHandle\n");exit(-1);}

hstdin=GetStdHandle(STD_INPUT_HANDLE);

if(hstdin==INVALID_HANDLE_VALUE)

{printf("Error GetStdHandle\n");exit(-1);}

WriteConsoleA(hstdout,prompt,sizeof(prompt),&actlen,NULL);

do

{ReadConsoleInput(hstdin,&charinfo,1,&actlen);}

while(charinfo.EventType!=KEY_EVENT);

text[10]=charinfo.Event.KeyEvent.uChar.AsciiChar;

WriteConsoleA(hstdout,text,11,&actlen,NULL);

getchar();

CloseHandle(hstdout);

ExitProcess(0);

}

, . , . , . . SetConsoleMode

BOOL SetConsoleMode(HANDLE hConsHandle, DWORD mode);

mode . ENABLE_PROCESSED_INPUT, ENABLE_LINE_INPUT, ENABLE_ECHO_INPUT, ENABLE_WINDOW_INPUT, ENABLE_MOUSE_INPUT. ENABLE_ECHO_INPUT, , . .

BOOL GetConsoleMode(HANDLE hConsHandle, DWORD* pmode),

.

#include <windows.h>

#include <stdio.h>

void main()

{char prompt[]="Input any character:";

char text[]="\nInputing:";

INPUT_RECORD charinfo;

DWORD actlen,fdwMode,fdwSaveOldMode;

HANDLE hstdout,hstdin;

hstdout=GetStdHandle(STD_OUTPUT_HANDLE);

if(hstdout==INVALID_HANDLE_VALUE)

{printf("Error GetStdHandle\n");exit(-1);}

hstdin=GetStdHandle(STD_INPUT_HANDLE);

if(hstdin==INVALID_HANDLE_VALUE)

{printf("Error GetStdHandle\n");exit(-1);}

WriteConsoleA(hstdout,prompt,sizeof(prompt),&actlen,NULL);

if(!GetConsoleMode(hstdin,&fdwSaveOldMode))

{printf("ErrorGetConsoleMode\n");exit(-1);}

fdwMode=fdwSaveOldMode&~ENABLE_MOUSE_INPUT&~ENABLE_ECHO_INPUT;

if(!SetConsoleMode(hstdin,fdwMode))

{printf("ErrorSetConsoleMode\n");exit(-1);}

printf("Input\n");

ReadConsoleInput(hstdin,&charinfo,1,&actlen);

printf("type=%d\n",charinfo.EventType);

text[10]=charinfo.Event.KeyEvent.uChar.AsciiChar;

WriteConsoleA(hstdout,text,11,&actlen,NULL);

getchar();

if(SetConsoleMode(hstdin,fdwSaveOldMode))

{printf("\nRestored ConsoleMode");}

getchar();

CloseHandle(hstdout);

ExitProcess(0);

}

:

1. MS Windows.

2. .

 

 

5





:


: 2016-12-06; !; : 858 |


:

:

, ; , .
==> ...

1709 - | 1488 -


© 2015-2024 lektsii.org - -

: 0.012 .