Текущий архив: 2003.05.08;
Скачать: CL | DM;
ВнизПоверх всех окон. Найти похожие ветки
← →
R (2003-04-23 10:02) [0]Вопрос стар как мир однако сколько пробовал все примеры какие то карявые. Вопрос:
как сделать чтобы созданное динамически модальное окно выводилось всегда поверх всех окон даже игрушек.
← →
Anatoly Podgoretsky (2003-04-23 10:34) [1]Запусти две такие программы и убедишься, что нельзя, они просто передуерутся и одна проиграет, так что забудь слово всегда.
← →
Игорь Шевченко (2003-04-23 10:47) [2]MessageBox
← →
evvcom (2003-04-23 11:04) [3]> Anatoly Podgoretsky
Да не передерутся, просто кто последний - тот и папа.
← →
Palladin (2003-04-23 11:15) [4]
> evvcom © (23.04.03 11:04)
вывод: не допускать запуск второго экземпляра
← →
evvcom (2003-04-23 11:43) [5]> Palladin
А такие приложения - совсем необязательно два экземпляра одного exe.
← →
Anatoly Podgoretsky (2003-04-23 11:52) [6]evvcom © (23.04.03 11:04)
Я бы согласился с такой постановкой, если бы в вопросе не было указано всегда
Palladin © (23.04.03 11:15)
Что бы не говорить о двух экземляраях, скажем два разных приложения с таким абсурным требованием.
← →
Palladin (2003-04-23 11:56) [7]:)
хорошо сказано "абсурдным требованием"
ессно согласен...
← →
Opera (2003-04-23 12:58) [8]SwitchToThisWindow(1,True)
или
SetWindowPos(Handle,HWND_TOPMOST,Left,Top,Width, Height, SWP_NOREDRAW);
← →
DVM (2003-04-23 13:02) [9]
> SwitchToThisWindow(1,True)
во-первых, это не для всех, а только для топ-левел окон
во-вторых, только на время
> SetWindowPos(Handle,HWND_TOPMOST,Left,Top,Width, Height,
> SWP_NOREDRAW);
до появления первого такого же окна.
← →
KSergey (2003-04-23 13:47) [10]
> > SetWindowPos(Handle,HWND_TOPMOST,Left,Top,Width, Height,
>
> > SWP_NOREDRAW);
>
> до появления первого такого же окна.
Да. но если нужно хоть какое-то решение, но дубовое и грубое (если это допустимо!) - просто выполнять сию консрукцию, скажем, раз в сек.
← →
Palladin (2003-04-23 13:53) [11]вот вот :)
именно консрукцию
← →
sniknik (2003-04-23 14:21) [12]KSergey © (23.04.03 13:47)
а если то же самое будет делать окно конкурент?
(раз в полсекунды :о))
← →
DVM (2003-04-23 14:48) [13]Вобщем забудьте о этой затее. Можно только ниже всех, выше - нельзя!
← →
Anatoly Podgoretsky (2003-04-23 20:07) [14]KSergey © (23.04.03 13:47)
Если мы выполним это требование для первого окна, значим мы не удовлетвом это требование для второго окна, которое так же имеет наполеоновские плаыны всегда, капец какой то аднака.
← →
R (2003-04-24 01:46) [15]Подвожу итог для того чтобы окно было всегда поверх других
надо сделать так или есть еще мнения?
procedure TForm1.Timer1Timer(Sender: TObject);
begin
SetWindowPos(Handle,HWND_TOPMOST,Left,Top,Width, Height, SWP_NOREDRAW);
end;
← →
Odin (2003-04-24 01:59) [16]К слову о консрукции.
еслу человеку очень хочется вывестись поверх можно:
1: при помощи стандартного скрипта Windows свернуть все окна
"C:\WINDOWS\Application Data\Microsoft\Internet Explorer\Quick Launch\Свернуть все окна.scf",
а потом запустить через каждую миллисекунду, и окно навсегда останется на экране :)
2: По сложнее - пролезть в систему (ну тира Process32First и т.д.) и во всех окнах снять флаг HWND_TOPMOST (а лучше вообще закрыть, чтобы там всякие не брыкались, вроде 0.00001 секунды и т.д.), а у себя поставить HWND_TOPMOST.
← →
Snap (2003-04-24 02:01) [17]Можно найти все окна у которых стоит Он топ и позакрывать их :)))))
И при этом если окно своей проги закрылось, открывать его вновь, смотреть какой процесс посмел так гружбо поступить с нашими и делать ему terminate :)))
← →
Snap (2003-04-24 02:05) [18]
> Odin © (24.04.03 01:59)
:)))
← →
R (2003-04-24 02:21) [19]>Odin © ,Snap © все это как то сложновато на мой взгляд.
Я тут протестировал
procedure TForm1.Timer1Timer(Sender: TObject);
begin
SetWindowPos(Handle,HWND_TOPMOST,Left,Top,Width, Height, SWP_NOREDRAW);
end;
не подходит дело в том что
1.Даже установив интервал 1мс его(окно) перекрыло
первое же запущенное мною окно- Сократа(переводчик)
2.Работает не корректно так как перерисовываясь оставляет
на своей "поверхности" элементы других окон например меню Win
кнопки пуск.
Вывод и эта ветка с корявыми примерами.
>Игорь Шевченко © MessageBox не подходит надо именно чтобы созданное мною окно в котором есть определенные элементы.
← →
Palladin (2003-04-24 07:54) [20]
> R (24.04.03 02:21)
парень, заметь, ведь и ты не идеален...
← →
Palladin (2003-04-24 07:56) [21]могу дать один совет: поковыряй taskmgr.exe, еще ни одно окно его не перекрыло (кроме dx,gl приложений, их ты точно не перекроешь)
← →
DVM (2003-04-24 09:21) [22]
> могу дать один совет: поковыряй taskmgr.exe, еще ни одно
> окно его не перекрыло
c таймером запросто!
← →
R (2003-04-24 10:02) [23]> Palladin ©
> парень, заметь, ведь и ты не идеален...
Совсем не идеал!
> c таймером запросто!
Как?
← →
Palladin (2003-04-24 10:18) [24]
> DVM © (24.04.03 09:21)
ну я не имел ввиду консрукции :)
Страницы: 1 вся ветка
Текущий архив: 2003.05.08;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.014 c