![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как отключить кнопку Пуск [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. Закрыть/заблокировать саму кнопку.