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

Вниз

Как затормозить Винду?   Найти похожие ветки 

 
pro100max   (2003-07-30 08:19) [0]

Помогите, люди!
У меня возникла определенная проблема, может и не очень сложная, но решить сам я ее не могу. Так вот мой вопрос - можно ли одновременно с выведением на экран окна ПОЛНОСТЬЮ затормозить работу Win98 (чтобы нельзя было работать с другими окнами, типа как при нажатии Ctrl+Alt+Del)? Если кто-либо обладает решением подобной проблемы под Delphi 5 - не поленитесь мне прислать, и я буду очень благодарен!
Макс


 
Calm ©   (2003-07-30 08:38) [1]

Ну так тебе нужно поставить хук на клавиатуру и мышку и в нем блокировать все движения пользователя.
Ищи в местном FAQ по слову Hook и найдешь (как ни странно для этого сайта) там хороший пример хука на клавиатуру.


 
ZZ ©   (2003-07-30 11:40) [2]

Добрые люди советуют - чтобы заторомозить винду на нее надо поставить AVP...


 
default ©   (2003-07-30 11:40) [3]

asm cli end;


 
VMcL ©   (2003-07-30 14:02) [4]

>default © (30.07.03 11:40)

Лучше так (только в Win9x):

asm
@@1: cli
jmp @@1
end;


 
VMcL ©   (2003-07-30 14:03) [5]

Oops, неаккуратненько.

asm
@@1: cli
jmp @@1
end;


 
AlexRush ©   (2003-07-30 14:24) [6]

2VMcL © (30.07.03 14:03) АРХИнеаккуратненько.
CLI - привелигированая инструкция.


program down;

uses windows;

{$R *.RES}

begin
asm
call GetCurrentProcess
push $00000100
push eax
call SetPriorityClass
call GetCurrentThread
push $0F
push eax
call SetThreadPriority
@@_jamper: jmp @@_jamper;
end;
end.


Ни те мыша не двигается, ни те [ctrl+alt+del] и неважно, сколько ГигаГерцов...


 
xShadow ©   (2003-07-30 14:38) [7]


> AlexRush © (30.07.03 14:24)

Штопор конечно классный, то как потом вывести из него ?!


 
AlexRush ©   (2003-07-30 17:19) [8]

2 xShadow © (30.07.03 14:38) А выити, типа, никак.
Вопрос стоял "затормозить". А заблокировать работу с другими окнами можно через хуки (клавы и мыши, для особо злосных - хук на оконые сообщения). Проверять, адресовано ли сообщение твоему окну (его дочерним), если да -разрешить, иначе - болт на 16.


 
Е-Моё имя ©   (2003-07-30 17:49) [9]

>>Как затормозить Винду?
выпить фанты?



 
xShadow ©   (2003-07-30 18:10) [10]

Когда то в далёком детстве делал я так:
procedure LockPC;
var OldValue: LongBool;
begin
SystemParametersInfo(97, Word(Bool), @OldValue, 0);
WinExec(PChar("rundll32 mouse,disable"), SW_HIDE);
( PChar("rundll32 keyboard,disable")
Когда то в далёком детстве делал я так:
procedure LockPC;
var OldValue: LongBool;
begin
SystemParametersInfo(97, Word(Bool), @OldValue, 0);
WinExec(PChar("rundll32 mouse,disable"), SW_HIDE);
WinExec(PChar("rundll32 keyboard,disable"), SW_HIDE);
end;
Не проверял под NT/ME/2000/XP


 
Shurik   (2003-07-30 22:12) [11]

I := True;
While I do;


 
VMcL ©   (2003-07-31 14:40) [12]

>AlexRush © (30.07.03 14:24)
>2VMcL © (30.07.03 14:03) АРХИнеаккуратненько.
>CLI - привелигированая инструкция.

Читай внимательно: только в Win9x


 
AlexRush ©   (2003-07-31 16:50) [13]

2 VMcL © (31.07.03 14:40) Даже для 9х (даже для OS/2 и супер-пупер мегаЮНИКС) CLI есть привелигированная инструкция.
В защищенном режиме эта инструкция является привелигированной ( потомков i386.) 2 VMcL © (31.07.03 14:40) Даже для 9х (даже для OS/2 и супер-пупер мегаЮНИКС) CLI есть привелигированная инструкция.
В защищенном режиме эта инструкция является привелигированной для всех процессоров (потомков i386.) неважно под какой осью.
В 9х исключение PrivelegedInstuction обрабатывается тихо, без каких либо сообщений на эту тему. Управление передается на инструкцию, следующию за вызвавшей ошибку.
Так что код asm CLI end; под 9х не имеет никакого эффекта.


 
NightAngel ©   (2003-07-31 20:58) [14]

> AlexRush © (30.07.03 14:24)

В общем эффект в NT системах - впечатляет, мыша виснет, клавиатура отдыхает. А вот в Win9х/ME: CTRL+ALT+DEL -> End Task и все дела. :) В этом случае, компьютер остаётся рабочим, машина в сети, пингуется, но подрубиться к ней нельзя.

Насчёт asm CLI end всё верно, но если это дело зациклить, то Win9x/ME вешается (вообще-то при этом типе исключения производится рестарт "виноватой" команды после исправления ситуации, для чего в стеке обработчика адрес возврата из прерывания указывает на команду, вызвавшую исключение. Отсюда и все проблемы).


 
AlexRush ©   (2003-08-01 12:25) [15]

2NightAngel © (31.07.03 20:58) Вполне может быть.У меня сейчас нет под рукой (и вообще рядом) установленной 9х - проверить не могу.

P.S. В глубине души я надеюсь, что через пару лет 9х окончательно исчезнет с винтов юзеров и я навсегда забуду об обеспечении совместимости еще и с ней. Каловая ось...


 
Morfein ©   (2003-08-01 13:24) [16]

>>AlexRush
CLI под 9x срабатывает прекрасно. Сделай .com файл, запиши в него #250 #235 #253, запусти под 9х и полюбуйся на неимеющюю эффекта инструкцию.


 
AlexRush ©   (2003-08-01 16:55) [17]

Дак то ж COM... Какое он отношение имеет к защищенному режиму ??


 
Yanis ©   (2003-08-01 18:02) [18]

Может этот вопрос:"Как затормозить Винду?", в отдельную конференцию вынести надо? А вообще зачем тормозить винду, она и сама неплохо с этим справляется.


 
Morfein ©   (2003-08-02 02:13) [19]

>>AlexRush
Сейчас ты нам расскажешь, как система для выполнения .com переходит в реальный режим :))
Не нравится пример c .com, напиши

asm
db $ff
db $eb
db $fd
end;

хотя это тож самое, что и VMcL © (30.07.03 14:03)


 
Anatoly Podgoretsky ©   (2003-08-02 12:34) [20]

Это ты нам расскажи как это сом работает в виндоус



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

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

Наверх




Память: 0.51 MB
Время: 0.029 c
6-51378
Raven
2003-08-18 10:46
2003.10.16
netshare


3-51087
Hose
2003-09-26 10:36
2003.10.16
Как пометить записи в наборе только для чтения?


14-51507
kaif
2003-09-25 04:01
2003.10.16
что такое мудрость?


1-51231
TButton
2003-10-03 17:32
2003.10.16
D5 Enviroment


1-51163
BoxTer
2003-10-03 12:25
2003.10.16
Слежение за программой