📄 wincon.pas
字号:
{$EXTERNALSYM BACKGROUND_GREEN}
BACKGROUND_RED = $0040; // background color contains red.
{$EXTERNALSYM BACKGROUND_RED}
BACKGROUND_INTENSITY = $0080; // background color is intensified.
{$EXTERNALSYM BACKGROUND_INTENSITY}
COMMON_LVB_LEADING_BYTE = $0100; // Leading Byte of DBCS
{$EXTERNALSYM COMMON_LVB_LEADING_BYTE}
COMMON_LVB_TRAILING_BYTE = $0200; // Trailing Byte of DBCS
{$EXTERNALSYM COMMON_LVB_TRAILING_BYTE}
COMMON_LVB_GRID_HORIZONTAL = $0400; // DBCS: Grid attribute: top horizontal.
{$EXTERNALSYM COMMON_LVB_GRID_HORIZONTAL}
COMMON_LVB_GRID_LVERTICAL = $0800; // DBCS: Grid attribute: left vertical.
{$EXTERNALSYM COMMON_LVB_GRID_LVERTICAL}
COMMON_LVB_GRID_RVERTICAL = $1000; // DBCS: Grid attribute: right vertical.
{$EXTERNALSYM COMMON_LVB_GRID_RVERTICAL}
COMMON_LVB_REVERSE_VIDEO = $4000; // DBCS: Reverse fore/back ground attribute.
{$EXTERNALSYM COMMON_LVB_REVERSE_VIDEO}
COMMON_LVB_UNDERSCORE = $8000; // DBCS: Underscore.
{$EXTERNALSYM COMMON_LVB_UNDERSCORE}
COMMON_LVB_SBCSDBCS = $0300; // SBCS or DBCS flag.
{$EXTERNALSYM COMMON_LVB_SBCSDBCS}
type
PCONSOLE_SCREEN_BUFFER_INFO = ^CONSOLE_SCREEN_BUFFER_INFO;
{$EXTERNALSYM PCONSOLE_SCREEN_BUFFER_INFO}
_CONSOLE_SCREEN_BUFFER_INFO = record
dwSize: COORD;
dwCursorPosition: COORD;
wAttributes: WORD;
srWindow: SMALL_RECT;
dwMaximumWindowSize: COORD;
end;
{$EXTERNALSYM _CONSOLE_SCREEN_BUFFER_INFO}
CONSOLE_SCREEN_BUFFER_INFO = _CONSOLE_SCREEN_BUFFER_INFO;
{$EXTERNALSYM CONSOLE_SCREEN_BUFFER_INFO}
TConsoleScreenBufferInfo = CONSOLE_SCREEN_BUFFER_INFO;
PConsoleScreenBufferInfo = PCONSOLE_SCREEN_BUFFER_INFO;
PCONSOLE_CURSOR_INFO = ^CONSOLE_CURSOR_INFO;
{$EXTERNALSYM PCONSOLE_CURSOR_INFO}
_CONSOLE_CURSOR_INFO = record
dwSize: DWORD;
bVisible: BOOL;
end;
{$EXTERNALSYM _CONSOLE_CURSOR_INFO}
CONSOLE_CURSOR_INFO = _CONSOLE_CURSOR_INFO;
{$EXTERNALSYM CONSOLE_CURSOR_INFO}
TConsoleCursorInfo = CONSOLE_CURSOR_INFO;
PConsoleCursorInfo = PCONSOLE_CURSOR_INFO;
//
// typedef for ctrl-c handler routines
//
PHANDLER_ROUTINE = function (CtrlType: DWORD): BOOL; stdcall;
{$EXTERNALSYM PHANDLER_ROUTINE}
THandlerRoutine = PHANDLER_ROUTINE;
const
CTRL_C_EVENT = 0;
{$EXTERNALSYM CTRL_C_EVENT}
CTRL_BREAK_EVENT = 1;
{$EXTERNALSYM CTRL_BREAK_EVENT}
CTRL_CLOSE_EVENT = 2;
{$EXTERNALSYM CTRL_CLOSE_EVENT}
// 3 is reserved!
// 4 is reserved!
CTRL_LOGOFF_EVENT = 5;
{$EXTERNALSYM CTRL_LOGOFF_EVENT}
CTRL_SHUTDOWN_EVENT = 6;
{$EXTERNALSYM CTRL_SHUTDOWN_EVENT}
//
// Input Mode flags:
//
ENABLE_PROCESSED_INPUT = $0001;
{$EXTERNALSYM ENABLE_PROCESSED_INPUT}
ENABLE_LINE_INPUT = $0002;
{$EXTERNALSYM ENABLE_LINE_INPUT}
ENABLE_ECHO_INPUT = $0004;
{$EXTERNALSYM ENABLE_ECHO_INPUT}
ENABLE_WINDOW_INPUT = $0008;
{$EXTERNALSYM ENABLE_WINDOW_INPUT}
ENABLE_MOUSE_INPUT = $0010;
{$EXTERNALSYM ENABLE_MOUSE_INPUT}
//
// Output Mode flags:
//
ENABLE_PROCESSED_OUTPUT = $0001;
{$EXTERNALSYM ENABLE_PROCESSED_OUTPUT}
ENABLE_WRAP_AT_EOL_OUTPUT = $0002;
{$EXTERNALSYM ENABLE_WRAP_AT_EOL_OUTPUT}
//
// direct API definitions.
//
function PeekConsoleInputA(hConsoleInput: HANDLE; lpBuffer: PINPUT_RECORD;
nLength: DWORD; var lpNumberOfEventsRead: DWORD): BOOL; stdcall;
{$EXTERNALSYM PeekConsoleInputA}
function PeekConsoleInputW(hConsoleInput: HANDLE; lpBuffer: PINPUT_RECORD;
nLength: DWORD; var lpNumberOfEventsRead: DWORD): BOOL; stdcall;
{$EXTERNALSYM PeekConsoleInputW}
{$IFDEF UNICODE}
function PeekConsoleInput(hConsoleInput: HANDLE; lpBuffer: PINPUT_RECORD;
nLength: DWORD; var lpNumberOfEventsRead: DWORD): BOOL; stdcall;
{$EXTERNALSYM PeekConsoleInput}
{$ELSE}
function PeekConsoleInput(hConsoleInput: HANDLE; lpBuffer: PINPUT_RECORD;
nLength: DWORD; var lpNumberOfEventsRead: DWORD): BOOL; stdcall;
{$EXTERNALSYM PeekConsoleInput}
{$ENDIF}
function ReadConsoleInputA(hConsoleInput: HANDLE; lpBuffer: PINPUT_RECORD;
nLength: DWORD; var lpNumberOfEventsRead: DWORD): BOOL; stdcall;
{$EXTERNALSYM ReadConsoleInputA}
function ReadConsoleInputW(hConsoleInput: HANDLE; lpBuffer: PINPUT_RECORD;
nLength: DWORD; var lpNumberOfEventsRead: DWORD): BOOL; stdcall;
{$EXTERNALSYM ReadConsoleInputW}
{$IFDEF UNICODE}
function ReadConsoleInput(hConsoleInput: HANDLE; lpBuffer: PINPUT_RECORD;
nLength: DWORD; var lpNumberOfEventsRead: DWORD): BOOL; stdcall;
{$EXTERNALSYM ReadConsoleInput}
{$ELSE}
function ReadConsoleInput(hConsoleInput: HANDLE; lpBuffer: PINPUT_RECORD;
nLength: DWORD; var lpNumberOfEventsRead: DWORD): BOOL; stdcall;
{$EXTERNALSYM ReadConsoleInput}
{$ENDIF}
function WriteConsoleInputA(hConsoleInput: HANDLE; lpBuffer: PINPUT_RECORD;
nLength: DWORD; var lpNumberOfEventsWritten: DWORD): BOOL; stdcall;
{$EXTERNALSYM WriteConsoleInputA}
function WriteConsoleInputW(hConsoleInput: HANDLE; lpBuffer: PINPUT_RECORD;
nLength: DWORD; var lpNumberOfEventsWritten: DWORD): BOOL; stdcall;
{$EXTERNALSYM WriteConsoleInputW}
{$IFDEF UNICODE}
function WriteConsoleInput(hConsoleInput: HANDLE; lpBuffer: PINPUT_RECORD;
nLength: DWORD; var lpNumberOfEventsWritten: DWORD): BOOL; stdcall;
{$EXTERNALSYM WriteConsoleInput}
{$ELSE}
function WriteConsoleInput(hConsoleInput: HANDLE; lpBuffer: PINPUT_RECORD;
nLength: DWORD; var lpNumberOfEventsWritten: DWORD): BOOL; stdcall;
{$EXTERNALSYM WriteConsoleInput}
{$ENDIF}
function ReadConsoleOutputA(hConsoleOutput: HANDLE; lpBuffer: PCHAR_INFO;
dwBufferSize: COORD; dwBufferCoord: COORD;
var lpReadRegion: SMALL_RECT): BOOL; stdcall;
{$EXTERNALSYM ReadConsoleOutputA}
function ReadConsoleOutputW(hConsoleOutput: HANDLE; lpBuffer: PCHAR_INFO;
dwBufferSize: COORD; dwBufferCoord: COORD;
var lpReadRegion: SMALL_RECT): BOOL; stdcall;
{$EXTERNALSYM ReadConsoleOutputW}
{$IFDEF UNICODE}
function ReadConsoleOutput(hConsoleOutput: HANDLE; lpBuffer: PCHAR_INFO;
dwBufferSize: COORD; dwBufferCoord: COORD;
var lpReadRegion: SMALL_RECT): BOOL; stdcall;
{$EXTERNALSYM ReadConsoleOutput}
{$ELSE}
function ReadConsoleOutput(hConsoleOutput: HANDLE; lpBuffer: PCHAR_INFO;
dwBufferSize: COORD; dwBufferCoord: COORD;
var lpReadRegion: SMALL_RECT): BOOL; stdcall;
{$EXTERNALSYM ReadConsoleOutput}
{$ENDIF}
function WriteConsoleOutputA(hConsoleOutput: HANDLE; lpBuffer: PCHAR_INFO;
dwBufferSize: COORD; dwBufferCoord: COORD;
var lpWriteRegion: SMALL_RECT): BOOL; stdcall;
{$EXTERNALSYM WriteConsoleOutputA}
function WriteConsoleOutputW(hConsoleOutput: HANDLE; lpBuffer: PCHAR_INFO;
dwBufferSize: COORD; dwBufferCoord: COORD;
var lpWriteRegion: SMALL_RECT): BOOL; stdcall;
{$EXTERNALSYM WriteConsoleOutputW}
{$IFDEF UNICODE}
function WriteConsoleOutput(hConsoleOutput: HANDLE; lpBuffer: PCHAR_INFO;
dwBufferSize: COORD; dwBufferCoord: COORD;
var lpWriteRegion: SMALL_RECT): BOOL; stdcall;
{$EXTERNALSYM WriteConsoleOutput}
{$ELSE}
function WriteConsoleOutput(hConsoleOutput: HANDLE; lpBuffer: PCHAR_INFO;
dwBufferSize: COORD; dwBufferCoord: COORD;
var lpWriteRegion: SMALL_RECT): BOOL; stdcall;
{$EXTERNALSYM WriteConsoleOutput}
{$ENDIF}
function ReadConsoleOutputCharacterA(hConsoleOutput: HANDLE; lpCharacter: LPSTR;
nLength: DWORD; dwReadCoord: COORD; var lpNumberOfCharsRead: DWORD): BOOL; stdcall;
{$EXTERNALSYM ReadConsoleOutputCharacterA}
function ReadConsoleOutputCharacterW(hConsoleOutput: HANDLE; lpCharacter: LPWSTR;
nLength: DWORD; dwReadCoord: COORD; var lpNumberOfCharsRead: DWORD): BOOL; stdcall;
{$EXTERNALSYM ReadConsoleOutputCharacterW}
{$IFDEF UNICODE}
function ReadConsoleOutputCharacter(hConsoleOutput: HANDLE; lpCharacter: LPWSTR;
nLength: DWORD; dwReadCoord: COORD; var lpNumberOfCharsRead: DWORD): BOOL; stdcall;
{$EXTERNALSYM ReadConsoleOutputCharacter}
{$ELSE}
function ReadConsoleOutputCharacter(hConsoleOutput: HANDLE; lpCharacter: LPSTR;
nLength: DWORD; dwReadCoord: COORD; var lpNumberOfCharsRead: DWORD): BOOL; stdcall;
{$EXTERNALSYM ReadConsoleOutputCharacter}
{$ENDIF}
function ReadConsoleOutputAttribute(hConsoleOutput: HANDLE;
var lpAttribute: DWORD; nLength: DWORD; dwReadCoord: COORD;
var lpNumberOfAttrsRead: DWORD): BOOL; stdcall;
{$EXTERNALSYM ReadConsoleOutputAttribute}
function WriteConsoleOutputCharacterA(hConsoleOutput: HANDLE;
lpCharacter: LPCSTR; nLength: DWORD; dwWriteCoord: COORD;
var lpNumberOfCharsWritten: DWORD): BOOL; stdcall;
{$EXTERNALSYM WriteConsoleOutputCharacterA}
function WriteConsoleOutputCharacterW(hConsoleOutput: HANDLE;
lpCharacter: LPCWSTR; nLength: DWORD; dwWriteCoord: COORD;
var lpNumberOfCharsWritten: DWORD): BOOL; stdcall;
{$EXTERNALSYM WriteConsoleOutputCharacterW}
{$IFDEF UNICODE}
function WriteConsoleOutputCharacter(hConsoleOutput: HANDLE;
lpCharacter: LPCWSTR; nLength: DWORD; dwWriteCoord: COORD;
var lpNumberOfCharsWritten: DWORD): BOOL; stdcall;
{$EXTERNALSYM WriteConsoleOutputCharacter}
{$ELSE}
function WriteConsoleOutputCharacter(hConsoleOutput: HANDLE;
lpCharacter: LPCSTR; nLength: DWORD; dwWriteCoord: COORD;
var lpNumberOfCharsWritten: DWORD): BOOL; stdcall;
{$EXTERNALSYM WriteConsoleOutputCharacter}
{$ENDIF}
function WriteConsoleOutputAttribute(hConsoleOutput: HANDLE; lpAttribute: PWORD;
nLength: DWORD; dwWriteCoord: COORD; var lpNumberOfAttrsWritten: DWORD): BOOL; stdcall;
{$EXTERNALSYM WriteConsoleOutputAttribute}
function FillConsoleOutputCharacterA(hConsoleOutput: HANDLE; cCharacter: CHAR;
nLength: DWORD; dwWriteCoord: COORD; var lpNumberOfCharsWritten: DWORD): BOOL; stdcall;
{$EXTERNALSYM FillConsoleOutputCharacterA}
function FillConsoleOutputCharacterW(hConsoleOutput: HANDLE; cCharacter: WCHAR;
nLength: DWORD; dwWriteCoord: COORD; var lpNumberOfCharsWritten: DWORD): BOOL; stdcall;
{$EXTERNALSYM FillConsoleOutputCharacterW}
{$IFDEF UNICODE}
function FillConsoleOutputCharacter(hConsoleOutput: HANDLE; cCharacter: WCHAR;
nLength: DWORD; dwWriteCoord: COORD; var lpNumberOfCharsWritten: DWORD): BOOL; stdcall;
{$EXTERNALSYM FillConsoleOutputCharacter}
{$ELSE}
function FillConsoleOutputCharacter(hConsoleOutput: HANDLE; cCharacter: CHAR;
nLength: DWORD; dwWriteCoord: COORD; var lpNumberOfCharsWritten: DWORD): BOOL; stdcall;
{$EXTERNALSYM FillConsoleOutputCharacter}
{$ENDIF}
function FillConsoleOutputAttribute(hConsoleOutput: HANDLE; wAttribute: WORD;
nLength: DWORD; dwWriteCoord: COORD; var lpNumberOfAttrsWritten: DWORD): BOOL; stdcall;
{$EXTERNALSYM FillConsoleOutputAttribute}
function GetConsoleMode(hConsoleHandle: HANDLE; var lpMode: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetConsoleMode}
function GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE;
var lpNumberOfEvents: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetNumberOfConsoleInputEvents}
function GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE;
var lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO): BOOL; stdcall;
{$EXTERNALSYM GetConsoleScreenBufferInfo}
function GetLargestConsoleWindowSize(hConsoleOutput: HANDLE): COORD;
{$EXTERNALSYM GetLargestConsoleWindowSize}
function GetConsoleCursorInfo(hConsoleOutput: HANDLE;
var lpConsoleCursorInfo: CONSOLE_CURSOR_INFO): BOOL; stdcall;
{$EXTERNALSYM GetConsoleCursorInfo}
function GetNumberOfConsoleMouseButtons(var lpNumberOfMouseButtons: DWORD): BOOL; stdcall;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -