1. Заголовок или название темы должно быть информативным ! 2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code]. 3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК ! 4.НЕ используйте форум для личного общения! 5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
Можно, если заносить коды нажатия прямо в буффер клавиатуры.
--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно. -------------------- Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
Для разворота не пойдет.... windows в этомслучае не будет обрабатывать что там поместили в буфер... это только внутри программы.... виндовс и ушами не пошевелит на это.
Развернуть на весь экран можно если написать 2 прогу на 32 битном, и использоватьдля этого winapi
--------------------
Помогая друг другу, мы справимся с любыми трудностями! "Не опускать крылья!" (С)
на весь экран развернуть программу ShowWindow(FindWindow(nil, 'Безымянный - Блокнот'), <XXXX>);
где <XXXX> :
Цитата
SW_HIDE Скрывает окно и активизирует другое. SW_MAXIMIZE Разворачивает окно. SW_MINIMIZE Сворачивает окно. SW_RESTORE Активизирует и выводит окно. Если окно было развёрнуто или свёрнуто - восстанавливает исходный размер и позицию. SW_SHOW Активизирует и выводит окно с его оригинальным размером и положением. SW_SHOWDEFAULT Активизирует с установками, заданными в структуре STARTUPINFO, которая была передана при создании процесса приложением запускающим нужную программу. SW_SHOWMAXIMIZED Выводит окно в развёрнутом виде. SW_SHOWMINIMIZED Выводит окно в виде пиктограммы на панели задач. SW_SHOWMINNOACTIVE Выводит окно в свёрнутом виде на панели задач и не передаёт ему фокус ввода, т.е. окно, которое до этого было активно остаётся активно по прежнему. SW_SHOWNA Отображает окно в его текущем состоянии. Активное окно остаётся активным по прежнему. SW_SHOWNOACTIVATE Выводит окно в его последнем положении и с последними используемыми размерами. Активное окно остаётся активным по прежнему. SW_SHOWNORMAL Выводит окно. Если оно было свёрнуто или развёрнуто - восстанавливает его оригинальные размеры и позицию
это для Дельфи или FPC ...
--------------------
Помогая друг другу, мы справимся с любыми трудностями! "Не опускать крылья!" (С)
На компиляторе FPC пробовал такой вариант, у меня работает в WinXP:
{ Взято с _http://delphiworld.narod.ru } {Переключение консольного приложения в полный экран }
{ There is no documented way to make a console application fullscreen. The following code works for both NT and Win9x. For win NT I used the undocumented SetConsoleDisplayMode and GetConsoleDisplayMode functions. }
Uses Windows, SysUtils;
{ function GetConsoleDisplayMode(var lpdwMode: DWORD): BOOL; stdcall; external 'kernel32.dll'; // lpdwMode: address of variable for current value of display mode }
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 SetConsoleDisplayMode(hOut: THandle; // standard output handle dwNewMode: DWORD; // specifies the display mode var lpdwOldMode: DWORD // address of variable for previous value of display mode ): BOOL; stdcall; external 'kernel32.dll'; }
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 // Better solution than keybd_event under Win9X ? 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('Hi, you are in full screen mode now. Type something [Return]: '); Readln(s); SetConsoleFullScreen(False); // ShowMessage(Format('You typed: "%s"', [s])); finally FreeConsole; end;
end.
--------------------
Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.