Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.12.02;
Скачать: [xml.tar.bz2];

Вниз

Блокировка   Найти похожие ветки 

 
Дмитрий Минеев   (2002-10-17 23:00) [0]

Как заблокировать компьютер, а конкретно мне нужно отключить клавиатуру и мышь, вообщем сделать так, чтобы компьютер не реагировал на нажатие клавишь и на движение мыши.


 
Marcus   (2002-10-18 17:01) [1]

BlockInput(true); // блокировка
BlockInput(false); // снятие блокировки. В НТ снимается также тремя волшебными клавишами.
Этой функции нет в юнитах Дельфи, ее придется выдирать из User32.dll вызовом GetProcAddress


 
Дмитрий Минеев   (2002-10-20 21:05) [2]

А можно по-подробней.


 
Song   (2002-10-21 09:18) [3]

В FAQ есть.


 
Dimka Maslov   (2002-10-21 09:27) [4]

Лезешь к системному блоку и меняешь местами провода от клавиатуры и мыши - ввод 100% блокируется, причём даже Ctrl+Alt+Del!!! Операция симметричная - для возврата к старому состоянию её надо повторить


 
TankMan   (2002-10-21 21:27) [5]

>>Dimka Maslov
А программно как это сделать? Я незнал.. а что есть такая функция что-то типа ExchangeInputHardWare(input1,input2)? В каком она модуле?


 
Skyle   (2002-10-22 11:24) [6]

SystemCase.pas
Только для этого надо правами администратора обладать, так просто она не выполнятся.


 
SottNick   (2002-10-22 12:31) [7]

посмотри такую прогу
(просто подмени текст модуля у вновь созданного приложения)

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

const passw="qwerty";

type
TForm1 = class(TForm)

procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
procedure InpMessage(var Msg : TMsg; var Handled : boolean);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
OldVal : LongInt;
Dummy : integer;
inp:string;

implementation

{$R *.DFM}

procedure TForm1.InpMessage(var Msg : TMsg; var Handled : boolean);
begin
if msg.message=450
then
begin
sleep(100);
show;
sleep(1000);
show;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
application.OnMessage:=InpMessage;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
showcursor(false);
Dummy := 0;
SystemParametersInfo (97, Word (True), @OldVal, 0);
SystemParametersInfo( SPI_SCREENSAVERRUNNING, 1, @Dummy, 0);
// SendMessage(HWND_BROADCAST,WM_SYSCOMMAND, SC_MONITORPOWER, 0);
// SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 0);
{ left:=-1;
top:=-1;
width:=screen.width+2;
height:=screen.height+2}
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
showcursor(true);
SystemParametersInfo (97, Word (False), @OldVal, 0);
SystemParametersInfo( SPI_SCREENSAVERRUNNING, 0, @Dummy, 0);
application.OnMessage:=nil;
// SendMessage(HWND_BROADCAST,WM_SYSCOMMAND, SC_MONITORPOWER, -1);
// SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, -1);
end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if length(inp)=length(passw)
then
inp:=copy(inp,2,length(inp)-1);
inp:=inp+key;
if inp=passw
then
close;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
left:=-1;
top:=-1;
width:=screen.width+2;
height:=screen.height+2
end;

end.


 
SottNick   (2002-10-22 12:32) [8]

забыл сказать
и 5 событий у формы назнач


 
SottNick   (2002-10-22 12:37) [9]

эээээ.........
лучше вот текст формы

object Form1: TForm1
Left = 282
Top = 156
BorderIcons = []
BorderStyle = bsNone
Caption = "Form1"
ClientHeight = 364
ClientWidth = 559
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -10
Font.Name = "MS Sans Serif"
Font.Style = []
FormStyle = fsStayOnTop
OldCreateOrder = False
Position = poDesktopCenter
WindowState = wsMaximized
OnActivate = FormActivate
OnClose = FormClose
OnCreate = FormCreate
OnKeyPress = FormKeyPress
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 13
end


 
F1   (2002-10-22 14:16) [10]

Тогда уж форму StayOnTop и BorderStyle:=bsNone делать
а еще

left:=0;
top:=0;
Width:=Screen.Width;
Height:=Screen.Height;

и

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose:=False;
end;

Тогда только тремя пальцами избавиться можно.



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

Форум: "WinAPI";
Текущий архив: 2002.12.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.007 c
3-4259
delph
2002-11-09 14:08
2002.12.02
Win2000 Terminal Server - ошибка инициализации BDE


1-4463
STANT
2002-11-20 11:09
2002.12.02
Как


1-4508
liho26
2002-11-20 08:51
2002.12.02
Как отловить сообщение?


1-4382
ShooRoop
2002-11-22 15:31
2002.12.02
ОП


6-4539
MasterVovan
2002-10-06 11:03
2002.12.02
Как создать простой html редактор???





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский