Форум: "WinAPI";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];




Вниз

Окно поверх всего и... 


Pete   (2002-02-05 15:54) [0]

Вообщем нужно, что-бы окно ни какими способами не сворачивалось,
не становилось неактивным и т.д.
Вся проблема в том, что прога работает под DirectDraw

Отключаю ctrl+alt+del: SystemParametersInfo(PI_SCREENSAVERRUNNING,1,@old,0);
а вот сворачивание не могу отключить, alt+space все равно сворачивает.



AlexRush   (2002-02-05 17:32) [1]

Чтобы форма была всегда поверх всех окон:
В обьявлении класса формы переопределяешь виртуальный метод TWinControl CreateParams >>

procedure CreateParams(var Params:TCreateParams);override;

Его реализация:
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.ExStyle:=Params.ExStyle or WS_EX_TOPMOST;
end;

Чтобы отключать Alt+Tab, Alt+Space и еже с ними, используем механизм горячих клавиш Виндовс:

CONST
hhkAtlTab =101; // любые значения от от 0 до 49151
hhkAtlSpace = 102;
.......
// на создание формы
procedure TForm1.FormCreate(Sender: TObject);
begin
RegisterHotKey(Self.Handle,hhkAtlSpace,MOD_ALT,VK_SPACE);
RegisterHotKey(Self.Handle,hhkAtlTab,MOD_ALT,VK_TAB);
end;

// Чтобы убрать:
procedure TForm1.FormDestroy(Sender: TObject);
begin
UnregisterHotKey(Self.Handle,hhkAtlTab);
UnregisterHotKey(Self.Handle,hhkAtlSpace);
end;

Проверено, работает.






Форум: "WinAPI";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.031 c
1-22709           Optiquest 15"         2002-03-26 17:10  2002.04.08  
Как программно открыть виндовый Paint, и в нем открыть файл c: picture.bmp?


1-22693           Сатир                 2002-03-26 15:05  2002.04.08  
Директивы компилятора


14-22817          Berserker             2002-02-27 03:34  2002.04.08  
Помогите с обучением в делфи


3-22581           Дуся                  2002-03-13 17:50  2002.04.08  
Как сделать инсталляцию с ADO??


6-22779           Андре                 2002-01-23 11:20  2002.04.08  
Socket Error