![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Окно приложения по верх всех окон системы
lightix © (2004-10-07 10:32:00)Имеется некое приложение, в нем несколько форм .
Нужно чтобы одна из форм была всегда видна поверх всех окон , причем поверх всех приложений запущеных в системе.
Идея такая - показывать пользователю на отдельной плавающей панельке часы и индикатор языка, какие бы приложения он ни запускал.
DVM (2004-10-07 11:25:00) [1]
> Дело в том что приложения запускаются не на компьютере юзера
> а на сервере терминалов, и приложение не имеет доступа к
> системе и тем более таскбару компьютера пользователя. во
> как загнул :)
для программ нет почти никакой разницы локально или через терминал их запускают. Все(почти), что работало локально, заработает и в терминале. Если это терминал Windows.
> "Как сделать приложение подобное панели MS Office" :)
ShAppBarMessage()
lightix (2004-10-07 11:21:00) [2]Давайте лучше я заведу новую ветку и назову ее "Как сделать приложение подобное панели MS Office" :)
lightix (2004-10-07 11:20:00) [3]
> Жбан (07.10.04 11:17) [22]
> Можешь попробовать в событии OnDeactivate своей формы заставлять
> быть форму активной - тогда она всегда будет на верху по
> отношению к другим формам StayOnTop, даже если те будут
> пытаться получить фокус.
Скорее на OnDeativate приложения (меню) а не формы, ибо меню вызывает через WinExec другие приложения, и Deactivate формы не происходит
lightix (2004-10-07 11:18:00) [4]Дело в том что приложения запускаются не на компьютере юзера а на сервере терминалов, и приложение не имеет доступа к системе и тем более таскбару компьютера пользователя. во как загнул :)
Жбан (2004-10-07 11:17:00) [5]Можешь попробовать в событии OnDeactivate своей формы заставлять быть форму активной - тогда она всегда будет на верху по отношению к другим формам StayOnTop, даже если те будут пытаться получить фокус.
DVM (2004-10-07 11:10:00) [6]
> При всем этом юзера не видят ни свой таскбар
А куда панель задач то девается?
Вообще-то панель задач делает так: когда активируется топ-левел окна, окно панели задач двигается наверх. Делается хуком WH_SHELL.
КаПиБаРа (2004-10-07 11:09:00) [7]lightix (07.10.04 11:03) [16]
аю
У главной формы
FormStyle := fsStayOnTop
lightix (2004-10-07 11:09:00) [8]
> Jay (07.10.04 11:08) [18]
> Сделай Align у главной формы alClient и не разворачивай
> её на весь экран
И что толку? Окно клиента терминалов закроет таскбар юзера, а на сервере терминалов таскбар вообще не показывается (ну нельзя в принципе им показать его)
Jay (2004-10-07 11:08:00) [9]Сделай Align у главной формы alClient и не разворачивай её на весь экран
DVM (2004-10-07 11:04:00) [10]
> А драйвер видеокарты?
Драйвера не все умеют. И это уже совсем др. песня. На 3 порядка сложнее будет.
А менюшка монитора все равно выше.
А еще выше липкая бумажка, наклеенная на монитор. :)
lightix (2004-10-07 11:03:00) [11]Тогда может подскажете как решить такую проблему:
Пользователи логинятся на сервер терминалов вин2к, автоматически запускается программа "Меню", которая в зависимости от пользователя динамически строит для него менюшку, из которой запускаются приложения.
При всем этом юзера не видят ни свой таскбар, ни таскбар сервера.
А им необходимо (аж вопят) видеть часы и текущий выбранный язык.
Идея была такая - сделать плавающую панельку, на которой бы телепались эти часы и индикатор раскладки клавиатуры.
Ну и другой вариант - делать в каждой проге такую панельку :(
Кстати насчет невозможности такого - у PROMTa же есть такая панелька! или возьмите к примеру плавающую панель MS Office.
КаПиБаРа (2004-10-07 11:00:00) [12]DVM © (07.10.04 10:55) [12]
Невозможно в принципе.
А драйвер видеокарты?
Johnmen (2004-10-07 10:56:00) [13]>lightix
>мне нужно чтобы ПОВЕРХ ВСЕХ ПРИЛОЖЕНИЙ была!
А как ты себе представляешь, если др.приложение тоже захочет ?
lightix (2004-10-07 10:56:00) [14]да что ж такое :(
у меня BCB 5.0
DVM (2004-10-07 10:55:00) [15]
> Нужно чтобы одна из форм была всегда видна поверх всех окон
> , причем поверх всех приложений запущеных в системе.
Невозможно в принципе. Доказательство простое: что будет, если запустить две таких программы? Обе будут поверх друг друга?
Частично это можно решить с пом SetWindowPos() и обработкой WM_WINDOWPOSCHANGING.
Поверх всего только менюшка монитора с настройками изображения.:)
Жбан (2004-10-07 10:54:00) [16]Я вот щас попробовал повторить твой пример - у меня IE не перекрывает мою форму...
lightix (2004-10-07 10:51:00) [17]Странно. Сделал новое приложение из 2-х форм - одна Normal другая StayOnTop - не перекрываются.
А вот переключился на IE чтобы написать это письмо - IE ее перекрыл. А мне нужно чтобы ПОВЕРХ ВСЕХ ПРИЛОЖЕНИЙ была!
lightix (2004-10-07 10:48:00) [18]нету у меня никакого другого StayOnTop
Одно. И перекрывается
Жбан (2004-10-07 10:46:00) [19]Может у тебя уже есть окно fsStayOnTop. И если оно активное, то будет перекрывать твое окно
lightix (2004-10-07 10:46:00) [20]4 окна, из них одно StayOnTop - перекрывают даже они, не говоря уже об окнах других приложений