Как сделать окно несворачиваемым

Обновлено: 17.05.2024

Сегодня рассмотрим достаточно редкую проблему, которую наблюдают некоторые пользователи операционных систем Windows XP и 7. Заключается проблема в регулярном сворачивании открытых окон или выкидывании из приложений на рабочий стол. Проблема может возникнуть по разным причинам, а потому и способов ее решения существует несколько. Основные из них мы рассмотрим в рамках данной статьи.

Корень проблемы и ее решение

Так что же является корнем проблемы, превращающей рутинную работу в системе Windows XP/Windows Seven в сплошную каторгу? Как бы банально это ни звучало, но виной всему – один из процессов, выполняемых имеющейся в наличии ОС. Предлагаем рассмотреть несколько вариантов того, каким образом можно решить проблему с этими процессами.

1 Вариант

Необходимо зайти в «Диспетчер Задач» (Ctrl+Alt+Del) и перейти во вкладку «Процессы». Находясь в данной вкладке, ищем процесс под названием ouc.exe. Таких процессов может быть и несколько. В таком случае нужно «убить» все отображаемые в списке процессы. Далее проверяем наличие проблемы, запустив процесс и подождав 10-15 минут. При этом необходимо учесть, что закрывать вышеобозначенный процесс придется при каждом входе в систему.

2 Вариант

Это практически идентичный по своему техническому исполнению вариант, однако на этот раз необходимо закрыть команду TWCU.exe. Проделываем те же самые процедуры и после закрытия процессов, также как и в 1 Варианте запускаем приложения. После этого ждем до 15 минут и смотрим на результат.

3 Вариант

Часто случается так, что завершение процессов ouc.exe и TWCU.exe не приводит к должному результату и окна все равно продолжают настойчиво сворачиваться. Также у некоторых эти процессы могут и вовсе не отображаться.

Еще один процесс, который влияет на «сворачивание» окон, будучи в фоновом режиме – «Диспетчер Realtek HD». Его можно отключить, зайдя в «Диспетчер задач», либо выполнив msconfig, далее перейдя в раздел автозагрузка, в котором нужно убрать галочку с «Диспетчера Realtek HD».

При обнаружении процесса в автозагрузке и после снятия соответствующего флажка потребуется перезагрузка компьютера, для того чтобы изменения вступили в силу.

И еще небольшой совет – чтобы не заниматься отключением подобных процессов вручную каждый раз при входе в систему, как вариант, можно воспользоваться сторонним софтом – так, если речь идет о Windows 7, устанавливаем Windows 7 Manager и в настройках процессов во вкладке автозагрузки отключаем вышеуказанные процессы, после чего производим перезагрузку системы.

← →
?Feuerraeder ( 2002-07-02 04:42 ) [0]

Как не допустить сворачивания окна, даже горячими клавами WINDOWS? Ловить SC_MINIMIZE? КаК?

← →
слон ( 2002-07-02 06:37 ) [1]

я делаю так
.
procedure Minim(Sender: TObject);
.
var
Form1: TForm1;
.

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMinimize := Minim;
end;

procedure TForm1.Minim(Sender: TObject);
begin
ShowWindow(Handle, SW_RESTORE);
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
Application.Minimize;
end;

end.

← →
Feuerraeder ( 2002-07-02 07:22 ) [2]

А возможно такое окно свернуть по (кнопка Виндовс на клавиатуре)+D.

← →
слон ( 2002-07-02 07:25 ) [3]

нет

← →
Feuerraeder ( 2002-07-02 08:08 ) [4]

слон, ты пробовал другими способами, оно вообще не сворачивается?
мне очень нужно чтобы окно вообще не сдвигалось и не дергалось, при любом виде сворачивании, понимаешь? есть ли другие способы?

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
TForm1 = class(TForm)
private
< Private declarations >
public
< Public declarations >
procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND;
end;

var
Form1: TForm1;

procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
begin
if Message.CmdType <> SC_MINIMIZE then inherited;
end;

"Ослик, ослик, что с тобой мичуринцы сделали. " (с)

Удачи.

← →
слон ( 2002-07-03 14:06 ) [18]

2Feuerraeder
>> слон, ты пробовал другими способами, оно вообще не
>> сворачивается?

← →
BaDeVlad © ( 2005-02-01 16:04 ) [0]

Как сделать, чтобы окно нельзя было свернуть? Ни по Win+M, ни кнопочкой в КвикЛанче. Кнопочка в КвикЛаче вообще пакостная, после нее окно не определяется свернутым функцией IsIconic.

← →
Jay1982 © ( 2005-02-01 16:08 ) [1]

Так называемая кнопочка в квикланче (Win + D) вовсе не сворачивает окна, она просто показывает рабочий стол (на ней так и написано), и от этого никуда не деться.

← →
BaDeVlad © ( 2005-02-02 09:18 ) [2]

Как тогда "показать" свое окно? Я перепробовал кажется все функции, ничего не помогает.

← →
Jay1982 © ( 2005-02-02 09:31 ) [3]

Ставь просто fsStayOnTop в FormStyle, ещё можно в BorderIcon можно убрать biMinimize, если я правильно понял вопрос.

← →
Чапаев © ( 2005-02-02 09:51 ) [4]

При минимизации выполнять SetWindowPos(). Смотри также WM_SYSCOMMAND.

← →
Almaz © ( 2005-02-02 17:19 ) [5]


> Jay1982 © (01.02.05 16:08) [1]
> Так называемая кнопочка в квикланче (Win + D) вовсе не сворачивает
> окна, она просто показывает рабочий стол (на ней так и написано),
> и от этого никуда не деться.

Уверены ?


> BaDeVlad © (01.02.05 16:04)
> Как сделать, чтобы окно нельзя было свернуть? Ни по Win+M,
> ни кнопочкой в КвикЛанче. Кнопочка в КвикЛаче вообще
> пакостная, после нее окно не определяется свернутым функцией
> IsIconic.

Попробуйте обрабатывать WMWinPosChanging . Плюс fsStayOnTop и ничего вам не будет страшно ;)

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
procedure WMWinPosChanging(var Message: TWMWINDOWPOSCHANGING); message WM_WINDOWPOSCHANGING;
end;

var
Form1: TForm1;


procedure TForm1.WMWinPosChanging(var Message: TWMWINDOWPOSCHANGING);
begin
Message.WindowPos^.flags := Message.WindowPos^.flags and not SWP_HIDEWINDOW;
inherited;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
FormStyle := fsStayOnTop;
end;

← →
BaDeVlad © ( 2005-02-01 16:04 ) [0]

Как сделать, чтобы окно нельзя было свернуть? Ни по Win+M, ни кнопочкой в КвикЛанче. Кнопочка в КвикЛаче вообще пакостная, после нее окно не определяется свернутым функцией IsIconic.

← →
Jay1982 © ( 2005-02-01 16:08 ) [1]

Так называемая кнопочка в квикланче (Win + D) вовсе не сворачивает окна, она просто показывает рабочий стол (на ней так и написано), и от этого никуда не деться.

← →
BaDeVlad © ( 2005-02-02 09:18 ) [2]

Как тогда "показать" свое окно? Я перепробовал кажется все функции, ничего не помогает.

← →
Jay1982 © ( 2005-02-02 09:31 ) [3]

Ставь просто fsStayOnTop в FormStyle, ещё можно в BorderIcon можно убрать biMinimize, если я правильно понял вопрос.

← →
Чапаев © ( 2005-02-02 09:51 ) [4]

При минимизации выполнять SetWindowPos(). Смотри также WM_SYSCOMMAND.

← →
Almaz © ( 2005-02-02 17:19 ) [5]


> Jay1982 © (01.02.05 16:08) [1]
> Так называемая кнопочка в квикланче (Win + D) вовсе не сворачивает
> окна, она просто показывает рабочий стол (на ней так и написано),
> и от этого никуда не деться.

Уверены ?


> BaDeVlad © (01.02.05 16:04)
> Как сделать, чтобы окно нельзя было свернуть? Ни по Win+M,
> ни кнопочкой в КвикЛанче. Кнопочка в КвикЛаче вообще
> пакостная, после нее окно не определяется свернутым функцией
> IsIconic.

Попробуйте обрабатывать WMWinPosChanging . Плюс fsStayOnTop и ничего вам не будет страшно ;)

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
procedure WMWinPosChanging(var Message: TWMWINDOWPOSCHANGING); message WM_WINDOWPOSCHANGING;
end;

var
Form1: TForm1;


procedure TForm1.WMWinPosChanging(var Message: TWMWINDOWPOSCHANGING);
begin
Message.WindowPos^.flags := Message.WindowPos^.flags and not SWP_HIDEWINDOW;
inherited;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
FormStyle := fsStayOnTop;
end;

То есть скажем два окна, одно поверх другого, если мышью кликнуть по нижнему окну то верхнее автоматически скроется, как сделать так что-бы окна были устойчивы и не скрывались при кликах. Точно знаю что где-то в настройках винды 7 есть такой пункт. Кто знает?

Пример: Вот допустим если в будучи в браузере открыть окошко калькулятора, который будет отображаться на фоне браузера и кликнуть по браузеру, то окошко калькулятора исчезнет за окном браузера, а мне надо настроить так что-бы ничего не скрывалось за другими окнами.

И как оно может быть устойчиво? У тебя 2 окна будут одновременно отображаться на 1 месте? Не говори ерунду

Вот допустим если в будучи в браузере открыть окошко калькулятора, который будет отображаться на фоне браузера и кликнуть по браузеру, то окошко калькулятора исчезнет за окном браузера, а мне надо настроить так что-бы ничего не скрывалось за другими окнами.


ерунда?

Иван Иванов Мудрец (17734) Я говорил про его вопрос, а не про новые функции виндовс 10. Он сказал, что ему надо сделать так, чтобы одно окно было ПОВЕРХ другого, при том, что АКТИВНО нижнее окно. Я сказал ему, что такое, мягко говоря, трудновато будет сделать, просто потому, что второе окно перекроет активное. Можно, конечно, поставить свойство "отображать поверх остальных", но тогда толку от этого будет мало, потому, что опять же, ВТОРОЕ ОКНО ПЕРЕКРОЕТ ПЕРВОЕ.

Правой кнопкой на Панели задач - Окна каскадом, или Окна рядом. Проще не пользоваться полноэкранным режимом и самому устанавливать размеры окон.

Фантастика! Это как в анекдоте - "а давай теперь и я сверху, и ты сверху". Все окна на переднем плане, ни одного на заднем! Нет, ну, конечно, на мониторе дюймов в 40 имеет право на жизнь ))

как вы понять не можете: окно не устойчиво, если поверх большего окна наложено меньшее окно, то оно, меньшее, тут же прячется, и я не могу его поймать, пока все окна не сверну. у меня та же проблема.. раньше такого не было.

Читайте также: