Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.18;
Скачать: CL | DM;

Вниз

Консоль в полно экранный режим   Найти похожие ветки 

 
Maksss   (2004-02-13 21:07) [0]

Не подскажите как свёрнутую в трей консоль развернуть в полноэкранный режим даже если она свёрнута ввиде окна?
setforegraundwindow и setactivewindow не помогуют совсем


 
Wizard_Ex ©   (2004-02-17 14:47) [1]

Разберись сам

Большой кусок кода:

function NT_GetConsoleDisplayMode(var lpdwMode: DWORD): Boolean;
type
 TGetConsoleDisplayMode = function(var lpdwMode: DWORD): BOOL;
 stdcall;
var
 hKernel: THandle;
 GetConsoleDisplayMode: TGetConsoleDisplayMode;
begin
 Result := False;
 hKernel := GetModuleHandle("kernel32.dll");
 if (hKernel > 0) then
 begin @GetConsoleDisplayMode :=
     GetProcAddress(hKernel, "GetConsoleDisplayMode");
   if Assigned(GetConsoleDisplayMode) then
   begin
     Result := GetConsoleDisplayMode(lpdwMode);
   end;
 end;
end;

function NT_SetConsoleDisplayMode(hOut: THandle; dwNewMode: DWORD;
 var lpdwOldMode: DWORD): Boolean;
type
 TSetConsoleDisplayMode = function(hOut: THandle; dwNewMode: DWORD;
 var lpdwOldMode: DWORD): BOOL;
 stdcall;
var
 hKernel: THandle;
 SetConsoleDisplayMode: TSetConsoleDisplayMode;
begin
 Result := False;
 hKernel := GetModuleHandle("kernel32.dll");
 if (hKernel > 0) then
 begin @SetConsoleDisplayMode :=
     GetProcAddress(hKernel, "SetConsoleDisplayMode");
   if Assigned(SetConsoleDisplayMode) then
   begin
     Result := SetConsoleDisplayMode(hOut, dwNewMode, lpdwOldMode);
   end;
 end;
end;

function GetConsoleWindow: THandle;
var
 S: AnsiString;
 C: Char;
begin
 Result := 0;
 Setlength(S, MAX_PATH + 1);
 if GetConsoleTitle(PChar(S), MAX_PATH) <> 0 then
 begin
   C := S[1];
   S[1] := "$";
   SetConsoleTitle(PChar(S));
   Result := FindWindow(nil, PChar(S));
   S[1] := C;
   SetConsoleTitle(PChar(S));
 end;
end;

function SetConsoleFullScreen(bFullScreen: Boolean): Boolean;
const
 MAGIC_CONSOLE_TOGGLE = 57359;
var
 dwOldMode: DWORD;
 dwNewMode: DWORD;
 hOut: THandle;
 hConsole: THandle;
begin
 if Win32Platform = VER_PLATFORM_WIN32_NT then
 begin
   dwNewMode := Ord(bFullScreen);
   NT_GetConsoleDisplayMode(dwOldMode);
   hOut := GetStdHandle(STD_OUTPUT_HANDLE);
   Result := NT_SetConsoleDisplayMode(hOut, dwNewMode, dwOldMode);
 end
 else
 begin
   hConsole := GetConsoleWindow;
   Result := hConsole <> 0;
   if Result then
   begin
     if bFullScreen then
     begin
       SendMessage(GetConsoleWindow, WM_COMMAND, MAGIC_CONSOLE_TOGGLE, 0);
     end
     else
     begin
       keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), 0, 0);
       keybd_event(VK_RETURN, MapVirtualKey(VK_RETURN, 0), 0, 0);
       keybd_event(VK_RETURN, MapVirtualKey(VK_RETURN, 0), KEYEVENTF_KEYUP, 0);
       keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), KEYEVENTF_KEYUP, 0);
     end;
   end;
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 s: string;
begin
 AllocConsole;
 try
   SetConsoleFullScreen(True);
   Write("full screen mode now");
   Readln(s);
   SetConsoleFullScreen(False);
 finally
   FreeConsole;
 end;
end;



Страницы: 1 вся ветка

Текущий архив: 2004.04.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.023 c
14-1080029594
Volodya_
2004-03-23 11:13
2004.04.18
Почтовый клиент


3-1079619777
stud
2004-03-18 17:22
2004.04.18
непонятно почему открываются наборы данных?


1-1080812596
Viking
2004-04-01 13:43
2004.04.18
Отладка DLL в Delphi 5 под Win XP


1-1081007953
Mefodiy
2004-04-03 19:59
2004.04.18
Разница реакций Windows 98 и Windows X на Sleep и Delay


14-1079973876
Пилкин
2004-03-22 19:44
2004.04.18
Проблема с OutlookXP