Главная страница
    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.008 c
14-4574
Govorin S.
2002-11-11 16:12
2002.12.02
Заплачю 10WMZ за простую работу


1-4437
Jeka.
2002-11-20 09:14
2002.12.02
---|Ветка была без названия|---


1-4309
BJValentine
2002-11-21 11:25
2002.12.02
FindFirst, FindNext, FindClose


1-4503
Dmitry_mit
2002-11-20 20:01
2002.12.02
Кривая функция и var


1-4422
Ag2002
2002-11-23 12:21
2002.12.02
ListView1.Items.Delete(i);





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский