Форум: "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.008 c