📄 jwawincon.pas
字号:
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; stdcall;
{$EXTERNALSYM GetLargestConsoleWindowSize}
function GetConsoleCursorInfo(hConsoleOutput: HANDLE;
var lpConsoleCursorInfo: CONSOLE_CURSOR_INFO): BOOL; stdcall;
function GetCurrentConsoleFont(hConsoleOutput: HANDLE; bMaximumWindow: BOOL;
var lpConsoleCurrentFont: CONSOLE_FONT_INFO): BOOL; stdcall;
{$EXTERNALSYM GetCurrentConsoleFont}
function GetConsoleFontSize(hConsoleOutput: HANDLE; nFont: DWORD): COORD; stdcall;
{$EXTERNALSYM GetConsoleFontSize}
function GetConsoleSelectionInfo(var lpConsoleSelectionInfo: CONSOLE_SELECTION_INFO): BOOL; stdcall;
{$EXTERNALSYM GetConsoleSelectionInfo}
{$EXTERNALSYM GetConsoleCursorInfo}
function GetNumberOfConsoleMouseButtons(var lpNumberOfMouseButtons: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetNumberOfConsoleMouseButtons}
function SetConsoleMode(hConsoleHandle: HANDLE; dwMode: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetConsoleMode}
function SetConsoleActiveScreenBuffer(hConsoleOutput: HANDLE): BOOL; stdcall;
{$EXTERNALSYM SetConsoleActiveScreenBuffer}
function FlushConsoleInputBuffer(hConsoleInput: HANDLE): BOOL; stdcall;
{$EXTERNALSYM FlushConsoleInputBuffer}
function SetConsoleScreenBufferSize(hConsoleOutput: HANDLE; dwSize: COORD): BOOL; stdcall;
{$EXTERNALSYM SetConsoleScreenBufferSize}
function SetConsoleCursorPosition(hConsoleOutput: HANDLE; dwCursorPosition: COORD): BOOL; stdcall;
{$EXTERNALSYM SetConsoleCursorPosition}
function SetConsoleCursorInfo(hConsoleOutput: HANDLE;
var lpConsoleCursorInfo: CONSOLE_CURSOR_INFO): BOOL; stdcall;
{$EXTERNALSYM SetConsoleCursorInfo}
function ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE;
const lpScrollRectangle: SMALL_RECT; lpClipRectangle: PSMALL_RECT;
dwDestinationOrigin: COORD; const lpFill: CHAR_INFO): BOOL; stdcall;
{$EXTERNALSYM ScrollConsoleScreenBufferA}
function ScrollConsoleScreenBufferW(hConsoleOutput: HANDLE;
const lpScrollRectangle: PSMALL_RECT; lpClipRectangle: PSMALL_RECT;
dwDestinationOrigin: COORD; const lpFill: CHAR_INFO): BOOL; stdcall;
{$EXTERNALSYM ScrollConsoleScreenBufferW}
{$IFDEF UNICODE}
function ScrollConsoleScreenBuffer(hConsoleOutput: HANDLE;
const lpScrollRectangle: PSMALL_RECT; lpClipRectangle: PSMALL_RECT;
dwDestinationOrigin: COORD; const lpFill: CHAR_INFO): BOOL; stdcall;
{$EXTERNALSYM ScrollConsoleScreenBuffer}
{$ELSE}
function ScrollConsoleScreenBuffer(hConsoleOutput: HANDLE;
const lpScrollRectangle: SMALL_RECT; lpClipRectangle: PSMALL_RECT;
dwDestinationOrigin: COORD; const lpFill: CHAR_INFO): BOOL; stdcall;
{$EXTERNALSYM ScrollConsoleScreenBuffer}
{$ENDIF}
function SetConsoleWindowInfo(hConsoleOutput: HANDLE; bAbsolute: BOOL;
const lpConsoleWindow: SMALL_RECT): BOOL; stdcall;
{$EXTERNALSYM SetConsoleWindowInfo}
function SetConsoleTextAttribute(hConsoleOutput: HANDLE; wAttributes: WORD): BOOL; stdcall;
{$EXTERNALSYM SetConsoleTextAttribute}
function SetConsoleCtrlHandler(HandlerRoutine: PHANDLER_ROUTINE; Add: BOOL): BOOL; stdcall;
{$EXTERNALSYM SetConsoleCtrlHandler}
function GenerateConsoleCtrlEvent(dwCtrlEvent: DWORD; dwProcessGroupId: DWORD): BOOL; stdcall;
{$EXTERNALSYM GenerateConsoleCtrlEvent}
function AllocConsole: BOOL; stdcall;
{$EXTERNALSYM AllocConsole}
function FreeConsole: BOOL; stdcall;
{$EXTERNALSYM FreeConsole}
function AttachConsole(dwProcessId: DWORD): BOOL; stdcall;
{$EXTERNALSYM AttachConsole}
function GetConsoleTitleA(lpConsoleTitle: LPSTR; nSize: DWORD): DWORD; stdcall;
{$EXTERNALSYM GetConsoleTitleA}
function GetConsoleTitleW(lpConsoleTitle: LPWSTR; nSize: DWORD): DWORD; stdcall;
{$EXTERNALSYM GetConsoleTitleW}
{$IFDEF UNICODE}
function GetConsoleTitle(lpConsoleTitle: LPWSTR; nSize: DWORD): DWORD; stdcall;
{$EXTERNALSYM GetConsoleTitle}
{$ELSE}
function GetConsoleTitle(lpConsoleTitle: LPSTR; nSize: DWORD): DWORD; stdcall;
{$EXTERNALSYM GetConsoleTitle}
{$ENDIF}
function SetConsoleTitleA(lpConsoleTitle: LPCSTR): BOOL; stdcall;
{$EXTERNALSYM SetConsoleTitleA}
function SetConsoleTitleW(lpConsoleTitle: LPCWSTR): BOOL; stdcall;
{$EXTERNALSYM SetConsoleTitleW}
{$IFDEF UNICODE}
function SetConsoleTitle(lpConsoleTitle: LPCWSTR): BOOL; stdcall;
{$EXTERNALSYM SetConsoleTitle}
{$ELSE}
function SetConsoleTitle(lpConsoleTitle: LPCSTR): BOOL; stdcall;
{$EXTERNALSYM SetConsoleTitle}
{$ENDIF}
function ReadConsoleA(hConsoleInput: HANDLE; lpBuffer: LPVOID;
nNumberOfCharsToRead: DWORD; var lpNumberOfCharsRead: DWORD;
lpReserved: LPVOID): BOOL; stdcall;
{$EXTERNALSYM ReadConsoleA}
function ReadConsoleW(hConsoleInput: HANDLE; lpBuffer: LPVOID;
nNumberOfCharsToRead: DWORD; var lpNumberOfCharsRead: DWORD;
lpReserved: LPVOID): BOOL; stdcall;
{$EXTERNALSYM ReadConsoleW}
{$IFDEF UNICODE}
function ReadConsole(hConsoleInput: HANDLE; lpBuffer: LPVOID;
nNumberOfCharsToRead: DWORD; var lpNumberOfCharsRead: DWORD;
lpReserved: LPVOID): BOOL; stdcall;
{$EXTERNALSYM ReadConsole}
{$ELSE}
function ReadConsole(hConsoleInput: HANDLE; lpBuffer: LPVOID;
nNumberOfCharsToRead: DWORD; var lpNumberOfCharsRead: DWORD;
lpReserved: LPVOID): BOOL; stdcall;
{$EXTERNALSYM ReadConsole}
{$ENDIF}
function WriteConsoleA(hConsoleOutput: HANDLE; lpBuffer: LPVOID;
nNumberOfCharsToWrite: DWORD; var lpNumberOfCharsWritten: DWORD;
lpReserved: LPVOID): BOOL; stdcall;
{$EXTERNALSYM WriteConsoleA}
function WriteConsoleW(hConsoleOutput: HANDLE; lpBuffer: LPVOID;
nNumberOfCharsToWrite: DWORD; var lpNumberOfCharsWritten: DWORD;
lpReserved: LPVOID): BOOL; stdcall;
{$EXTERNALSYM WriteConsoleW}
{$IFDEF UNICODE}
function WriteConsole(hConsoleOutput: HANDLE; lpBuffer: LPVOID;
nNumberOfCharsToWrite: DWORD; var lpNumberOfCharsWritten: DWORD;
lpReserved: LPVOID): BOOL; stdcall;
{$EXTERNALSYM WriteConsole}
{$ELSE}
function WriteConsole(hConsoleOutput: HANDLE; lpBuffer: LPVOID;
nNumberOfCharsToWrite: DWORD; var lpNumberOfCharsWritten: DWORD;
lpReserved: LPVOID): BOOL; stdcall;
{$EXTERNALSYM WriteConsole}
{$ENDIF}
const
CONSOLE_TEXTMODE_BUFFER = 1;
{$EXTERNALSYM CONSOLE_TEXTMODE_BUFFER}
function CreateConsoleScreenBuffer(dwDesiredAccess: DWORD; dwShareMode: DWORD;
lpSecurityAttributes: PSECURITY_ATTRIBUTES; dwFlags: DWORD;
lpScreenBufferData: LPVOID): HANDLE; stdcall;
{$EXTERNALSYM CreateConsoleScreenBuffer}
function GetConsoleCP: UINT; stdcall;
{$EXTERNALSYM GetConsoleCP}
function SetConsoleCP(wCodePageID: UINT): BOOL; stdcall;
{$EXTERNALSYM SetConsoleCP}
function GetConsoleOutputCP: UINT; stdcall;
{$EXTERNALSYM GetConsoleOutputCP}
function SetConsoleOutputCP(wCodePageID: UINT): BOOL; stdcall;
{$EXTERNALSYM SetConsoleOutputCP}
const
CONSOLE_FULLSCREEN = 1; // fullscreen console
{$EXTERNALSYM CONSOLE_FULLSCREEN}
CONSOLE_FULLSCREEN_HARDWARE = 2; // console owns the hardware
{$EXTERNALSYM CONSOLE_FULLSCREEN_HARDWARE}
function GetConsoleDisplayMode(var lpModeFlags: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetConsoleDisplayMode}
function GetConsoleWindow: HWND; stdcall;
{$EXTERNALSYM GetConsoleWindow}
function GetConsoleProcessList(var lpdwProcessList: LPDWORD; dwProcessCount: DWORD): DWORD; stdcall;
{$EXTERNALSYM GetConsoleProcessList}
implementation
const
kernel32 = 'kernel32.dll';
{$IFDEF DYNAMIC_LINK}
var
_PeekConsoleInputA: Pointer;
function PeekConsoleInputA;
begin
GetProcedureAddress(_PeekConsoleInputA, kernel32, 'PeekConsoleInputA');
asm
mov esp, ebp
pop ebp
jmp [_PeekConsoleInputA]
end;
end;
{$ELSE}
function PeekConsoleInputA; external kernel32 name 'PeekConsoleInputA';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_PeekConsoleInputW: Pointer;
function PeekConsoleInputW;
begin
GetProcedureAddress(_PeekConsoleInputW, kernel32, 'PeekConsoleInputW');
asm
mov esp, ebp
pop ebp
jmp [_PeekConsoleInputW]
end;
end;
{$ELSE}
function PeekConsoleInputW; external kernel32 name 'PeekConsoleInputW';
{$ENDIF DYNAMIC_LINK}
{$IFDEF UNICODE}
{$IFDEF DYNAMIC_LINK}
var
_PeekConsoleInput: Pointer;
function PeekConsoleInput;
begin
GetProcedureAddress(_PeekConsoleInput, kernel32, 'PeekConsoleInputW');
asm
mov esp, ebp
pop ebp
jmp [_PeekConsoleInput]
end;
end;
{$ELSE}
function PeekConsoleInput; external kernel32 name 'PeekConsoleInputW';
{$ENDIF DYNAMIC_LINK}
{$ELSE}
{$IFDEF DYNAMIC_LINK}
var
_PeekConsoleInput: Pointer;
function PeekConsoleInput;
begin
GetProcedureAddress(_PeekConsoleInput, kernel32, 'PeekConsoleInputA');
asm
mov esp, ebp
pop ebp
jmp [_PeekConsoleInput]
end;
end;
{$ELSE}
function PeekConsoleInput; external kernel32 name 'PeekConsoleInputA';
{$ENDIF DYNAMIC_LINK}
{$ENDIF}
{$IFDEF DYNAMIC_LINK}
var
_ReadConsoleInputA: Pointer;
function ReadConsoleInputA;
begin
GetProcedureAddress(_ReadConsoleInputA, kernel32, 'ReadConsoleInputA');
asm
mov esp, ebp
pop ebp
jmp [_ReadConsoleInputA]
end;
end;
{$ELSE}
function ReadConsoleInputA; external kernel32 name 'ReadConsoleInputA';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_ReadConsoleInputW: Pointer;
function ReadConsoleInputW;
begin
GetProcedureAddress(_ReadConsoleInputW, kernel32, 'ReadConsoleInputW');
asm
mov esp, ebp
pop ebp
jmp [_ReadConsoleInputW]
end;
end;
{$ELSE}
function ReadConsoleInputW; external kernel32 name 'ReadConsoleInputW';
{$ENDIF DYNAMIC_LINK}
{$IFDEF UNICODE}
{$IFDEF DYNAMIC_LINK}
var
_ReadConsoleInput: Pointer;
function ReadConsoleInput;
begin
GetProcedureAddress(_ReadConsoleInput, kernel32, 'ReadConsoleInputW');
asm
mov esp, ebp
pop ebp
jmp [_ReadConsoleInput]
end;
end;
{$ELSE}
function ReadConsoleInput; external kernel32 name 'ReadConsoleInputW';
{$ENDIF DYNAMIC_LINK}
{$ELSE}
{$IFDEF DYNAMIC_LINK}
var
_ReadConsoleInput: Pointer;
function ReadConsoleInput;
begin
GetProcedureAddress(_ReadConsoleInput, kernel32, 'ReadConsoleInputA');
asm
mov esp, ebp
pop ebp
jmp [_ReadConsoleInput]
end;
end;
{$ELSE}
function ReadConsoleInput; external kernel32 name 'ReadConsoleInputA';
{$ENDIF DYNAMIC_LINK}
{$ENDIF}
{$IFDEF DYNAMIC_LINK}
var
_WriteConsoleInputA: Pointer;
function WriteConsoleInputA;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -