可交互的Delphi控制台常驻程序
摘要:
Delphi控制台常驻程序,第三方程序可通过控制台标准输入输出与之进行交互
program app;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils,System.Classes,Windows;
var
userInput: String;
ConsoleHandle: THandle;
procedure WriteText(sMessage:UTF8String;const bLine:boolean=true);
var
num:Cardinal;
sText:UTF8String;
begin
sText:=sMessage;
if bLine then sText:=ConCat(#13,sMessage,#10);
WriteFile(ConsoleHandle, sText[1], Length(sText), num, nil);
FlushConsoleInputBuffer(ConsoleHandle);
end;
begin
try
ConsoleHandle := GetStdHandle(STD_OUTPUT_HANDLE);
while (1=1) do
try
WriteText('[delphi console]# ',false);
Readln(userInput);
if (userInput.CompareTo('quit')=0) then break
else if userInput.StartsWith('ECHO') then
WriteText('{"code":200,"msg":"ECHO"}')
else if userInput.StartsWith('INFO') then
WriteText('{"code":200,"msg":"INFO"}')
else WriteText('{"code":500,"msg":"unknown command"}');
except
on E: Exception do
WriteText('{"code":500,"msg":"'+E.Message+'"}');
end;
{ TODO -oUser -cConsole Main : Insert code here }
finally
CloseHandle(ConsoleHandle);
end;
end.