Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.25;
Скачать: CL | DM;

Вниз

Как отключить кнопку Пуск   Найти похожие ветки 

 
Данилин Руслан   (2002-07-19 14:02) [0]

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


 
Song ©   (2002-07-19 14:33) [1]

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


 
Beglec ©   (2002-09-20 21:22) [2]

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


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

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

Просто запускаешь режим заставки и все!...Т.Е. полная блокировка до какого-нибудь события анпример ввода определенной комбинации клавиш
Давным давно писал такой 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) [4]

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

Просто запускаешь режим заставки и все!...Т.Е. полная блокировка до какого-нибудь события анпример ввода определенной комбинации клавиш
Давным давно писал такой 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 .:))


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


> Aralekin

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


 
Song ©   (2002-09-22 17:35) [6]

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


 
Beglec ©   (2002-09-26 05:09) [7]

Чтобы не работал пуск в 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;


 
Beglec ©   (2002-09-26 05:10) [8]

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

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


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

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



Страницы: 1 вся ветка

Текущий архив: 2002.11.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
6-82895
TCrash
2002-09-27 13:07
2002.11.25
Socket к одному IP


1-82768
Cruse
2002-11-15 15:21
2002.11.25
Label не хочет меняться


3-82582
STANT
2002-11-07 19:41
2002.11.25
Как распечатать БД?


3-82593
andrrr
2002-11-04 16:41
2002.11.25
Можно ли найти записи запросом


1-82824
Kotka
2002-11-09 16:30
2002.11.25
Помогите с ZLib!