Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как отключить кнопку Пуск [D5, D6, Win95/98, Win2k, WinXP]


Данилин Руслан ©   (2002-07-19 14:02:00) 

Как сделать, чтобы по нажвтию Ctrl + Esc меню не всплывало.


msts   (2002-09-26 11:37:00) [1]

А какую задачу решает народ? (стратегическую?)


Beglec   (2002-09-26 05:10:00) [2]

Причем данная херня работает и в Win9x

А вообще я отказался от процедур SystemParametersInfo!!!
Потому как очень много таких процедур не робят под NT движок :(


Beglec   (2002-09-26 05:09:00) [3]

Чтобы не работал пуск в NT

procedure NotButton(bButton: boolean);
begin
if not bButton then
begin
Tray:=FindWindow("Shell_TrayWnd",nil);
Child:=GetWindow(Tray,GW_CHILD);
While Child<>0do
begin
if GetClassName(Child,CaptionWnd,SizeOf(CaptionWnd))>0 then
begin
if UpperCase(StrPAS(CaptionWnd))="BUTTON" then begin PostMessage(Child,wm_close,0,0); Exit; end;
end;
Child:=GetWindow(Child,GW_HWNDNEXT);
end;
end;
end;


Song   (2002-09-22 17:35:00) [4]

2Igor__ © (22.09.02 04:56)
Просто люди, кроме выдержек из любого FAQ больше ничего предложить не могут.
Этот код не будет работать в ОС семейства NT.


Igor__   (2002-09-22 04:56:00) [5]


> Aralekin

Я конечно дико извинтиляюсь, но этот код
под XP не пашет(кроме скрытия таскбара), хотя под 9x все нормально:
1.Не существует RegisterServiceProcess в Kernel32.dll
2.Режим заставки не врубается


Aralekin   (2002-09-21 13:14:00) [6]

Не надо писать хуков и ДЛЛ...
И в Рею тоже лишний раз залазить не надо...

Просто запускаешь режим заставки и все!...Т.Е. полная блокировка до какого-нибудь события анпример ввода определенной комбинации клавиш
Давным давно писал такой Locker. Вот код:

procedure TForm1.FormCreate(Sender: TObject);
var
hTaskBar : THandle;
i : integer;
begin

// Отрубаем показ приложения по C+A+D

if not (csDesigning in ComponentState) then
RegisterServiceProcess(GetCurrentProcessID, 1);

// Скраваем TaskBar

hTaskbar := FindWindow("Shell_TrayWnd", Nil);
ShowWindow(hTaskBar, SW_HIDE);

// Врубаем режим заставки

i := 0;
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, @i, 0);
i := 0;
SystemParametersInfo(SPI_SETFASTTASKSWITCH, 1, @i, 0);


Обратный код:

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
hTaskBar : THandle;
i : integer;
begin
// Включаем показ приложения по C+A+D

if not (csDesigning in ComponentState) then
RegisterServiceProcess(GetCurrentProcessID, 0);

// Возвращаем TaskBar на место

hTaskbar := FindWindow("Shell_TrayWnd", Nil);
ShowWindow(hTaskBar, SW_SHOWNORMAL);

// Отключаем режим заставки

i := 0;
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, @i, 0);
i := 0;
SystemParametersInfo(SPI_SETFASTTASKSWITCH, 0, @i, 0);

End;


Не забудь подключить Shellapi.pas
Если нужен полный код, то пиши на мыло.
Если что-то не понятно - спрашивай

Да. и еще...догадайся сам как можно заблокировать Alt+F4 .:))


Aralekin   (2002-09-21 13:14:00) [7]

Не надо писать хуков и ДЛЛ...
И в Рею тоже лишний раз залазить не надо...

Просто запускаешь режим заставки и все!...Т.Е. полная блокировка до какого-нибудь события анпример ввода определенной комбинации клавиш
Давным давно писал такой Locker. Вот код:

procedure TForm1.FormCreate(Sender: TObject);
var
hTaskBar : THandle;
i : integer;
begin

// Отрубаем показ приложения по C+A+D

if not (csDesigning in ComponentState) then
RegisterServiceProcess(GetCurrentProcessID, 1);

// Скраваем TaskBar

hTaskbar := FindWindow("Shell_TrayWnd", Nil);
ShowWindow(hTaskBar, SW_HIDE);

// Врубаем режим заставки

i := 0;
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, @i, 0);
i := 0;
SystemParametersInfo(SPI_SETFASTTASKSWITCH, 1, @i, 0);


Обратный код:

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
hTaskBar : THandle;
i : integer;
begin
// Включаем показ приложения по C+A+D

if not (csDesigning in ComponentState) then
RegisterServiceProcess(GetCurrentProcessID, 0);

// Возвращаем TaskBar на место

hTaskbar := FindWindow("Shell_TrayWnd", Nil);
ShowWindow(hTaskBar, SW_SHOWNORMAL);

// Отключаем режим заставки

i := 0;
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, @i, 0);
i := 0;
SystemParametersInfo(SPI_SETFASTTASKSWITCH, 0, @i, 0);

End;


Не забудь подключить Shellapi.pas
Если нужен полный код, то пиши на мыло.
Если что-то не понятно - спрашивай

Да. и еще...догадайся сам как можно заблокировать Alt+F4 .:))


Beglec   (2002-09-20 21:22:00) [8]

Есть на много просче вариант, через реестр. Очень даже эффективный


Song   (2002-07-19 14:33:00) [9]

1. Написать хук на перехватывание этой комбинации.
2. Закрыть/заблокировать саму кнопку.


Наверх

Титульная страница Поиск, карта сайта Написать письмо