Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отключение мышки и клавиатуры 
:(
    Опции темы
-=Fox=-
Дата 5.2.2003, 03:24 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Hi!

Подскажите пожалуйста, как отключть мышку и клавиатуру, но так чтобы их потом можно было бы включить.

Спасибо.
  Вверх
December
Дата 5.2.2003, 03:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 8
Всего: 57



Система какаяconfused.gif?


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
-=Fox=-
Дата 5.2.2003, 03:56 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(December @ 4.2.2003, 19:52)
Система какаяconfused.gif?

Windows ME
Но вообще нжно под все платформы
  Вверх
December
Дата 5.2.2003, 03:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 8
Всего: 57



Если 98, то EnableHardwareInput, если НТ - то фиг.


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
December
Дата 5.2.2003, 04:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 8
Всего: 57



Могу предложить вариант для НТ, который держит всё, кроме Ctrl-Alt-Del.


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
-=Fox=-
Дата 5.2.2003, 04:01 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Подробнее пожалуйста. smile.gif
  Вверх
-=Fox=-
Дата 5.2.2003, 04:03 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Ок, хотелось бы ещё увидеть кусочек кода с использованеем этой штуки...
заранее благодарен smile.gif
  Вверх
Vit
Дата 5.2.2003, 04:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Цитата(December @ 4.2.2003, 19:00)
Могу предложить вариант для НТ, который держит всё, кроме Ctrl-Alt-Del.

На XP ещё в дополнение невозможно перехватить Win-L


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
December
Дата 5.2.2003, 04:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 8
Всего: 57



Цитата(Vit @ 5.2.2003, 00:07)
На XP ещё в дополнение невозможно перехватить Win-L

Про этого зверя я вообще не слышал. Что он делает? (Под ХР никогда не работал).


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
December
Дата 5.2.2003, 04:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 8
Всего: 57



Цитата
Ок, хотелось бы ещё увидеть кусочек кода с использованеем этой штуки...
заранее благодарен smile.gif

Давай мыло, я тебе вышлю исходники, они 10-20 строк длиной.


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
December
Дата 5.2.2003, 04:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 8
Всего: 57



EnableHardwareInput(Enable:boolean): boolean;
Enable - требуемое состояние устройств ввода (True - включены, false - выключены). Если ввод заблокирован, то его можно разблокировать вручную - нажать Ctrl + Alt + Del, при появлении меню "Завершение работы программы" ввод разблокируется.


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
-=Fox=-
Дата 5.2.2003, 04:47 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











  Вверх
Medved
Дата 5.2.2003, 06:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



2December ты бы на всеобщее обозрение этот код запостил бы..... пусть и другие люди посмотрят..... авось и в FAQ это можно внести....

Заранее благодарен!


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
-=Fox=-
Дата 5.2.2003, 06:35 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Мне бы пожалуйста чтобы разблокировать не вручную, а тоже програмно
  Вверх
December
Дата 5.2.2003, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 8
Всего: 57



А, чёрт, именно отрубления я так и не сделал, только блокировку работы с компьютером. Функция EnableHardwareInput отсутствует в ДЛЛ-ках, она есть только в USER.EXE. Как её оттуда вытаскивать разобраться не было времени (если кто знает, расскажите), так что я обходился подручными средствами.

Для НТ:
.DPR

ExtendedStyle:=GetWindowLong(application.Handle, GWL_EXSTYLE);
SetWindowLong(Application.Handle, GWL_EXSTYLE, ExtendedStyle or WS_EX_TOOLWINDOW);
hTaskbar := FindWindow('Shell_TrayWnd', Nil);
ShowWindow(hTaskBar, SW_HIDE);
Application.CreateForm(TForm1, Form1);
Application.Run;
ShowWindow(hTaskBar, SW_SHOWNORMAL);



.PAS
var
Form1: TForm1;
TextBuf:array [1..10] of word;
hTaskBar : THandle;
implementation

{$R *.dfm}

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
i:integer;
wstr:string;
begin
if key=VK_ESCAPE then exit;
for i:=1 to 9 do TextBuf[i]:=TextBuf[i+1];
TextBuf[10]:=key;
wstr:='';
for i:=1 to 10 do wstr:=wstr+char(textBuf[i]);
if wstr='STUPID BUG' then application.Terminate;
if (ssAlt in Shift) then Key := 0;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
keybd_event(VK_ESCAPE,0,0,0);
keybd_event(VK_ESCAPE,0,KEYEVENTF_KEYUP,0);
end;



--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
December
Дата 5.2.2003, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 8
Всего: 57



Для 98:


.DPR

ExtendedStyle:=GetWindowLong(application.Handle, GWL_EXSTYLE);
SetWindowLong(Application.Handle, GWL_EXSTYLE, ExtendedStyle or WS_EX_TOOLWINDOW);
Application.CreateForm(TForm1, Form1);
RegisterServiceProcess(GetCurrentProcessID, 1);
FreezeMeansStop;
Application.Run;




.PAS

function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall; external 'KERNEL32.DLL';
procedure FreezeMeansStop;

var
Form1: TForm1;
TextBuf:array [1..10] of word;

implementation

{$R *.dfm}

procedure FreezeMeansStop;
var
hTaskBar : THandle;
begin
hTaskbar := FindWindow('Shell_TrayWnd', Nil);
ShowWindow(hTaskBar, SW_HIDE);
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, 0, 0);
SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 0);
end;{FreezeMeansStop}


procedure Revive;
var
hTaskBar : THandle;
begin
SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, -1);
hTaskbar := FindWindow('Shell_TrayWnd', Nil);
ShowWindow(hTaskBar, SW_SHOWNORMAL);
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, 0, 0);
end;{Revive}


procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
i:integer;
wstr:string;
begin
for i:=1 to 9 do TextBuf[i]:=TextBuf[i+1];
TextBuf[10]:=key;
wstr:='';
for i:=1 to 10 do wstr:=wstr+char(textBuf[i]);
if wstr='STUPID BUG' then
begin
application.Terminate;
Revive;
end;{if over}

if (Key = VK_F4) and (ssAlt in Shift) then Key := 0;
end;

Это сообщение отредактировал(а) December - 5.2.2003, 09:12


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
[auxx]
Дата 5.2.2003, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 2.2.2003

Репутация: нет
Всего: нет



Цитата
Для 98:


.DPR

ExtendedStyle:=GetWindowLong(application.Handle, GWL_EXSTYLE);
SetWindowLong(Application.Handle, GWL_EXSTYLE, ExtendedStyle or WS_EX_TOOLWINDOW);
Application.CreateForm(TForm1, Form1);
RegisterServiceProcess(GetCurrentProcessID, 1);
FreezeMeansStop;
Application.Run;




.PAS

function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall; external 'KERNEL32.DLL';
procedure FreezeMeansStop;

var
Form1: TForm1;
TextBuf:array [1..10] of word;

implementation

{$R *.dfm}

procedure FreezeMeansStop;
var
hTaskBar : THandle;
begin
hTaskbar := FindWindow('Shell_TrayWnd', Nil);
ShowWindow(hTaskBar, SW_HIDE);
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, 0, 0);
SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 0);
end;{FreezeMeansStop}


procedure Revive;
var
hTaskBar : THandle;
begin
SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, -1);
hTaskbar := FindWindow('Shell_TrayWnd', Nil);
ShowWindow(hTaskBar, SW_SHOWNORMAL);
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, 0, 0);
end;{Revive}


procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
i:integer;
wstr:string;
begin
for i:=1 to 9 do TextBuf[i]:=TextBuf[i+1];
TextBuf[10]:=key;
wstr:='';
for i:=1 to 10 do wstr:=wstr+char(textBuf[i]);
if wstr='STUPID BUG' then
begin
application.Terminate;
Revive;
end;{if over}

if (Key = VK_F4) and (ssAlt in Shift) then Key := 0;
end;


Сложно както очень.

WinExec('rundll mouse,disable',0);
WinExec('rundll keyboard,disable',0);
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, 0, 0);

WinExec('rundll mouse,enable',0);
WinExec('rundll keyboard,enable',0);
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, 0, 0);


PM MAIL   Вверх
Dayana
Дата 5.2.2003, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 352
Регистрация: 6.10.2002
Где: Тель-Авив

Репутация: 2
Всего: 4



Цитата(Pegas @ 5.2.2003, 05:21)
2December ты бы на всеобщее обозрение этот код запостил бы..... пусть и другие люди посмотрят..... авось и в FAQ это можно внести....

Заранее благодарен!

Я где-то писала код на этом форуме, который создает низкоуровневый hook на клавиатуру, в котором можно перехватить и обработать любые клавиши, кроме CTRL+ALT+DEL.
PM MAIL ICQ   Вверх
-=Fox=-
Дата 5.2.2003, 18:07 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Спасибо. Попробую на счет EnableHardwareInput:

uses ShellApi;
...
...
...
ShellExecute(Application.MainForm.Handle,PChar('open'),
'c:\windows\user.exe','EnableHardwareInput,enabled',nil,SW_ShowNormal)
.... disabled
...

  Вверх
78125
Дата 5.2.2003, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 20.1.2003
Где: Санкт-Петербург

Репутация: нет
Всего: нет



А как начет Ctrl+Alt+delete

Вообще как нибудь реально?
--------------------
купим подпись
PM MAIL   Вверх
Dayana
Дата 5.2.2003, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 352
Регистрация: 6.10.2002
Где: Тель-Авив

Репутация: 2
Всего: 4



78125, реально. Для Win2000 надо подменить стандартную gina.dll на свою. Именно там обрабатывается CTRL+ALT+DEL.... ну или написать свой драйвер клавиатуры... :-)
PM MAIL ICQ   Вверх
Medved
Дата 5.2.2003, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



Цитата(Dayana @ 5.2.2003, 21:03)
Цитата(Pegas @ 5.2.2003, 05:21)
2December ты бы на всеобщее обозрение этот код запостил бы..... пусть и другие люди посмотрят..... авось и в FAQ это можно внести....

Заранее благодарен!

Я где-то писала код на этом форуме, который создает низкоуровневый hook на клавиатуру, в котором можно перехватить и обработать любые клавиши, кроме CTRL+ALT+DEL.

А где собственно говоря ссылка?


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
Dayana
Дата 5.2.2003, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 352
Регистрация: 6.10.2002
Где: Тель-Авив

Репутация: 2
Всего: 4



Вот... :-)
Hook
... последнее мое сообщение в теме...
PM MAIL ICQ   Вверх
Medved
Дата 5.2.2003, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



Спасибо Dayana


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
[auxx]
Дата 5.2.2003, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 2.2.2003

Репутация: нет
Всего: нет



Цитата
ну или написать свой драйвер клавиатуры... :-)

Если уж писать драйвер, так проще в нем функции стандартного драйвера клавы юзать
PM MAIL   Вверх
-=Fox=-
Дата 5.2.2003, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 5.2.2003

Репутация: нет
Всего: нет



Всем спасибо за помощь
PM MAIL   Вверх
December
Дата 6.2.2003, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 8
Всего: 57



Цитата

uses ShellApi;
...
...
...
ShellExecute(Application.MainForm.Handle,PChar('open'),
'c:\windows\user.exe','EnableHardwareInput,enabled',nil,SW_ShowNormal)
.... disabled
...

Так вызываются все функции из юзер.ехе? Есть по ним справка какая-нибудь?


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
December
Дата 6.2.2003, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 8
Всего: 57



Цитата(Dayana @ 5.2.2003, 15:05)
78125, реально. Для Win2000 надо подменить стандартную gina.dll на свою. Именно там обрабатывается CTRL+ALT+DEL.... ну или написать свой драйвер клавиатуры... :-)

Кто-нибудь этим уже занимался? Если да, поделитесь, плз, достижениями.


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
Dayana
Дата 6.2.2003, 00:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 352
Регистрация: 6.10.2002
Где: Тель-Авив

Репутация: 2
Всего: 4



December, я не занималась, но видела в сети много инфы про GINA. Описание.
Также скачивала такую ginu. Но, к сожалению, не помню откуда. Если надо, сегодня поищу дома...
PM MAIL ICQ   Вверх
[auxx]
Дата 6.2.2003, 02:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 2.2.2003

Репутация: нет
Всего: нет



Вот ТУТ еще чтото про GINA
PM MAIL   Вверх
December
Дата 6.2.2003, 02:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 8
Всего: 57



Большое спасибо.
Dayana Думаю, смогу найти сам, если нет, то ещё побеспокою.


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
RA
Дата 6.2.2003, 03:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 14
Всего: 115



Эй а в FAQ'е слабо посмотреть. Лично писал.
PM   Вверх
Guest_Song
Дата 6.2.2003, 04:00 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











EnableHardwareInput() - давно устарела и испоользовалась только в Win16.
В Win32 используется замена - BlockInput() - живёт в user32.dll
Ctrl-Alt-Del можно заблокировать ТОЛЬКО через драйвер клавиатуры. А что до gina.dll ... все про неё говорят, но никто не может привести решения или хотя бы названия процедур из gina.dll, с помощью которых можно заблокировать CAD. Также системную надо ещё и своей подменить. Так что не надо про gin'у если сами того не делали.
  Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0744 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.