Главная страница
    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.06 c
1-1140553891
Виктор8
2006-02-21 23:31
2006.03.26
Как заблокировать запуск 2х копий программы?


15-1141648992
Piter
2006-03-06 15:43
2006.03.26
Как в PHP получить путь до папки с выполняемым скриптом?


5-1127897094
voe
2005-09-28 12:44
2006.03.26
Подскажите компонент


4-1136740034
Microsom
2006-01-08 20:07
2006.03.26
Delphi & ADSI (ActiveDirectory)


2-1141988262
Der Nechk@ssoff
2006-03-10 13:57
2006.03.26
Реакция на открытие папки





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский