Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.096 c
3-1138288605
LineSoft
2006-01-26 18:16
2006.03.26
Ошибка при восстановлении БД Firebird


2-1141641175
kyn66
2006-03-06 13:32
2006.03.26
Поиск компонентов по наименованию.


1-1140432435
SergProger
2006-02-20 13:47
2006.03.26
Иконка нестандартного размера


2-1141897963
DelphiN!
2006-03-09 12:52
2006.03.26
Перевод массива ASCLL кодов в их символьное представление


1-1140514443
RiP
2006-02-21 12:34
2006.03.26
На доске (8х8) расставлено 8 ферзей





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский