Суббота, 21.12.2024, 19:59 Приветствую вас Гость | Группа "Гости" 
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Волк-1024, Anton93, xXxSh@dowxXx  
Сохранять постояныый фокус на форме
HTTqpДата: Пятница, 17.10.2014, 18:12 | Сообщение # 1
Частый гость
Зарегистрирован: 08.10.2014
Группа: Пользователи
Сообщений: 57
Статус: Offline
Подскажите как постоянно удерживать фокус на форме (api), нужно чтобы при изменении фокуса он возвращался обратно на форму. Форма написана на чистом api.
 
Волк-1024Дата: Пятница, 17.10.2014, 18:48 | Сообщение # 2
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
Не совсем понял, но что-то из этого должно помочь: SetActiveWindow, SetFocus, SetWindowPos, SetForegroundWindow

Pascal, C\C++, Assembler, Python
 
HTTqpДата: Пятница, 17.10.2014, 19:07 | Сообщение # 3
Частый гость
Зарегистрирован: 08.10.2014
Группа: Пользователи
Сообщений: 57
Статус: Offline
Цитата Волк-1024 ()
Не совсем понял, но что-то из этого должно помочь: SetActiveWindow, SetFocus, SetWindowPos, SetForegroundWindow

ну вобщем есть окно, если пользователь пытается с помощью горячих клавиш например при помощи ALT+TAB или другими способами перевести фокус с моей программы на другу или просто свернуть ее, мой программа должна возвращать фокус себе чтобы она оставалась активной. Так понятней? только надо это для формы на api как то реализовать.
 
Волк-1024Дата: Пятница, 17.10.2014, 20:12 | Сообщение # 4
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
Как-то так:

Код

while true do
begin
   SetWindowPos(hWinHandle, HWND_TOPMOST, CW_USEDEFAULT, CW_USEDEFAULT, 0, 0,
                SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
   ShowWindow(hWinHandle, SW_SHOW);
   Sleep(100);
end;

Только это нужно делать в отдельном потоке.


Pascal, C\C++, Assembler, Python
 
HTTqpДата: Пятница, 17.10.2014, 20:56 | Сообщение # 5
Частый гость
Зарегистрирован: 08.10.2014
Группа: Пользователи
Сообщений: 57
Статус: Offline
а как выполнить поток в api так же как и в обычной форме или нет? просто я код выше загнал в таймер или куда его лучше пригвоздить?
 
Волк-1024Дата: Пятница, 17.10.2014, 21:08 | Сообщение # 6
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
CreateThread\BeginThread

Pascal, C\C++, Assembler, Python
 
HTTqpДата: Вторник, 04.11.2014, 02:29 | Сообщение # 7
Частый гость
Зарегистрирован: 08.10.2014
Группа: Пользователи
Сообщений: 57
Статус: Offline
Цитата Волк-1024 ()
view plaincopy to clipboardprint? while true do begin SetWindowPos(hWinHandle, HWND_TOPMOST, CW_USEDEFAULT, CW_USEDEFAULT, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE); ShowWindow(hWinHandle, SW_SHOW); Sleep(100); end;
while true do
begin
SetWindowPos(hWinHandle, HWND_TOPMOST, CW_USEDEFAULT, CW_USEDEFAULT, 0, 0,
SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
ShowWindow(hWinHandle, SW_SHOW);
Sleep(100);
end;
Только это нужно делать в отдельном потоке.

загнал в таймер, но увы не удается держать форму постоянно активной в фокусе. Может через dll как то реализовать?
 
xXxSh@dowxXxДата: Вторник, 04.11.2014, 16:36 | Сообщение # 8
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
Цитата HTTqp ()
загнал в таймер, но увы не удается держать форму постоянно активной в фокусе. Может через dll как то реализовать?

таймер (как компонент), не совсем правильное решение, так как он не является полноценным отдельным потоком, попробуй создать отдельный поток!

PS: твой код не смотрел, на работоспособность не проверял.
 
HTTqpДата: Вторник, 04.11.2014, 16:45 | Сообщение # 9
Частый гость
Зарегистрирован: 08.10.2014
Группа: Пользователи
Сообщений: 57
Статус: Offline
вот как я делаю таймер в отдельном потоке
Доступно только для пользователей
просто например некоторые программы например если, например запустить игры они автоматически переводят игру на передний план, как исправить?


Сообщение отредактировал HTTqp - Среда, 05.11.2014, 23:44
 
  • Страница 1 из 1
  • 1
Поиск:

delphicode.ru © 2008 - 2024 Хостинг от uCoz