Код:
function SetConsoleDisplayMode(hOut:THandle;dwNewMode:DWORD;lpdwOldMode:pointer):BOOL;
stdcall; external 'kernel32.dll' name 'SetConsoleDisplayMode';
var
smdWND:dword=0;
I,DC:dword;
P : array [0..3] of TPoint;
pi: TProcessInformation;
si: TStartupInfo;
s:string;
procedure TForm1.FormCreate(Sender: TObject);
begin
AllocConsole();
ZeroMemory(@si, SizeOf(TStartupInfo));
si.cb := SizeOf(TStartupInfo);
CreateProcess(nil,PChar('cmd.exe'), // command line
nil,nil,TRUE,0,nil,nil,
si,pi);
setlength(S,256);
setlength(S,GetConsoleTitle(@S[1],256));
SetConsoleTitle('AA_BB_CC_DD');
smdWND:=FindWindow(0,'AA_BB_CC_DD');
SetConsoleTitle(PansiChar(S));
//Делаем не на полный экран
SetConsoleDisplayMode(GetStdHandle(STD_OUTPUT_HANDLE),0,@I);
P[0] := Point( 5,23);
P[1] := Point(500-15,23);
P[2] := Point(500-15,200-5);
P[3] := Point( 5,200-5);
//Вырезаем лишнее
SetWindowRgn(smdWND,CreatePolygonRgn(P,4,Alternate),true);
SetWindowPos(smdWND,HWND_TOPMOST,form1.left,form1.Top+200,700,200,SWP_SHOWWINDOW);
end;
procedure TForm1.FormConstrainedResize(Sender: TObject; var MinWidth,
MinHeight, MaxWidth, MaxHeight: Integer);
begin
if smdWND<>0 then
MoveWindow(smdWND,form1.left,form1.Top+200,700,200,true);
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if smdWND<>0 then begin
Terminateprocess(pi.hProcess,0);
FreeConsole();smdWND:=0;
end;
end;