Форум: "WinAPI";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];
ВнизАктивизация приложения Найти похожие ветки
← →
Igor_thief (2006-01-04 23:17) [0]Как сделать так, чтобы мое приложение, которое стало не активным при переключении на другое приложени, стало снова активным через интревал времени. Пробовал разные способы, но не получил желаемого результата. Надо чтобы форма снова могла получать ввод пользователя. Т.е. форма реально должна стать активной, точно так же как она становится активной при переключении на нее при помощи Алт+таб, а не просто заголовок стал активным.
Очень надо!!!
← →
Гаврила © (2006-01-05 00:18) [1]Application.BringToFront пробовал?
← →
Игорь Шевченко © (2006-01-05 10:28) [2]
> Как сделать так, чтобы мое приложение, которое стало не
> активным при переключении на другое приложени, стало снова
> активным через интревал времени
В топку такие программы.
← →
Igor_thief (2006-01-05 12:03) [3]Гаврила © (05.01.06 0:18) [1]
Application.BringToFront пробовал?
Пробовал. Не помогает.
Я также пробовал SetForegroundWindow, BringWindowToTop....
Игорь Шевченко © (05.01.06 10:28) [2]
В топку такие программы.
А вот в этом, многоуважаемый, вы ошиблись. Хотя я могу вас понять. Я же дал не полное описание программы, а всего лишь описание той части, которая не получается. А программа действительно полезная и это не только мое мнение.
← →
Igor_thief (2006-01-05 13:54) [4]Удалено модератором
Примечание: Создание пустых сообщений
← →
Igor_thief (2006-01-05 19:07) [5]Удалено модератором
Примечание: Создание пустых сообщений
← →
DDA © (2006-01-06 21:41) [6]//-------------------------------
function ForceForegroundWindow(hwnd: THandle): boolean;
const
SPI_GETFOREGROUNDLOCKTIMEOUT = $2000;
SPI_SETFOREGROUNDLOCKTIMEOUT = $2001;
var
ForegroundThreadID: DWORD;
ThisThreadID: DWORD;
timeout: DWORD;
begin
if IsIconic(hwnd) then
ShowWindow(hwnd, SW_RESTORE);
if GetForegroundWindow = hwnd then
Result := True
else
begin
// Windows 98/2000 doesn"t want to foreground a window when some other
// window has keyboard focus
if ((Win32Platform = VER_PLATFORM_WIN32_NT) and (Win32MajorVersion > 4))
or
((Win32Platform = VER_PLATFORM_WIN32_WINDOWS) and
((Win32MajorVersion > 4) or ((Win32MajorVersion = 4) and
(Win32MinorVersion > 0)))) then
begin
// Code from Karl E. Peterson, www.mvps.org/vb/sample.htm
// Converted to Delphi by Ray Lischner
// Published in The Delphi Magazine 55, page 16
Result := False;
ForegroundThreadID := GetWindowThreadProcessID(GetForegroundWindow,
nil);
ThisThreadID := GetWindowThreadPRocessId(hwnd, nil);
if AttachThreadInput(ThisThreadID, ForegroundThreadID, True) then
begin
BringWindowToTop(hwnd); // IE 5.5 related hack
SetForegroundWindow(hwnd);
AttachThreadInput(ThisThreadID, ForegroundThreadID, False);
Result := (GetForegroundWindow = hwnd);
end;
if not Result then
begin
// Code by Daniel P. Stasinski
SystemParametersInfo(SPI_GETFOREGROUNDLOCKTIMEOUT, 0, @timeout, 0);
SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, TObject(0), SPIF_SENDCHANGE);
BringWindowToTop(hwnd); // IE 5.5 related hack
SetForegroundWindow(hWnd);
SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, TObject(timeout), SPIF_SENDCHANGE);
end;
end
else
begin
BringWindowToTop(hwnd); // IE 5.5 related hack
SetForegroundWindow(hwnd);
end;
Result := (GetForegroundWindow = hwnd);
end;
end; { ForceForegroundWindow }
//-----------------------------------------
← →
Igor_thief (2006-01-06 22:22) [7]Очуметь, никто не знает. Я хоть и решил, но мне нужен другой способ.
← →
Джо © (2006-01-06 22:24) [8]> [7] Igor_thief (06.01.06 22:22)
> Очуметь, никто не знает. Я хоть и решил, но мне нужен другой
> способ.
Да уже ж сказали, внятно и доходчиво: в топку :)
Какая бы там программа распрекрасная не была, если она будет заниматься таким безобразием, ее место в корзине.
← →
Igor_thief (2006-01-06 22:24) [9]Igor_thief (06.01.06 22:22) [7]
Этот посто не в счет. Просто у меня не обновило инфу.
DDA - большой тебе спасибо!!!! Я шас проверю!
← →
Германн © (2006-01-07 02:21) [10]
> Игорь Шевченко © (05.01.06 10:28) [2]
> В топку такие программы.
>
> Джо © (06.01.06 22:24) [8]
>
> Да уже ж сказали, внятно и доходчиво: в топку :)
> Какая бы там программа распрекрасная не была, если она будет
> заниматься таким безобразием, ее место в корзине.
Джо. Даже если и было уже сказано "внятно и доходчиво", то это ещё не значит, что сказано было правильно!
Во-первых, автор сабжа не уточнил для чего ему сие надобно. А может быть его процесс крайне важен? И речь идёт не о простом пользрвателе РС, а об "операторе некоей системы"?
Во-вторых ИШ говорит со "своей высоты". Он может понять, что "переключение между приложениями" вовсе не обязательно в конкретном случае. Имхо, правильнее запретить запуск иных приложений.
В-третьих, ИШ, имхо, по-фигу в ряде случаев суть вопроса. Как и почти всем тут. Он тоже человек.
← →
Джо © (2006-01-07 02:31) [11]> [10] Германн © (07.01.06 02:21)
Я тоже, как это ни парадоксально, человек. И у меня также имеются свои колокольни, с "высоты" которых я и сужу. И, положа руку на свое сердце, повторю: "Какая бы там программа распрекрасная не была, если она будет заниматься таким безобразием, ее место в корзине". И даже выдумывать ничего не стоит, как не стоит выдумывать способ попасть на Луну при помощи колокольни. У автора, видимо, своя колокольня, но я считаю нецелесообразным помогать ему ее строить, о чем и сказал.
Возможно, подобным замечаниям не место в тематической конференции, но пусть первый в меня бросит камень тот... и т.д. Извините, если кого чем задел.
← →
Германн © (2006-01-07 02:51) [12]2 Джо © (07.01.06 02:31) [11]
> Я тоже, как это ни парадоксально, человек.
А я в этом и не сомневаюсь!
Но вот представь себе. Есть программа, которая обслуживает "Охранно-пожарную систему". Да, конечно, все главные защитные функции выполняет некое железо, а программа - лишь удобный интерфейс для пользователя.
Но вот начальник требует, чтобы операторы/охранники ни в коем случае не переключались из данной программы ни в какую другую! Даже в "Косынку"! И вот как тогда быть?
А в сабже нет упоминания об системе.
← →
Джо © (2006-01-07 02:57) [13]> [12] Германн © (07.01.06 02:51)
В данном конкретном примере, который вы привели, я тем более считаю, что заниматься такими глупостями как в сабже не следует категорически. Ибо это не исправит ситуацию с такими охранниками/операторами. И даже более того, если программа самопроизвольно и неожиданно для пользователя изменит фокус ввода с косынки на критическую программу это может быть чревато различной тяжести последствиями. Грубо говоря, могут случайно "не туда клацнуть".
Уф, что-то я разболтался, сорри.
← →
Германн © (2006-01-07 03:08) [14]
> Джо © (07.01.06 02:57) [13]
>
> Уф, что-то я разболтался, сорри.
Тогда пойдём спать!?
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.046 c