Форум: "Система";
Текущий архив: 2002.11.25;
Скачать: [xml.tar.bz2];
ВнизКак отключить кнопку Пуск Найти похожие ветки
← →
Данилин Руслан (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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c