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

Вниз

Ловим отсоединение мыши...   Найти похожие ветки 

 
Геннадий ©   (2003-11-01 01:04) [0]

Возможно ли программно, средствами Delphi отследить отключение мыши от системного блока?
Работаю в Инет-клубе и эта проблема в последнее время стала переходить все мыслимые границы... :((


 
Song ©   (2003-11-01 12:53) [1]

Нет.


 
Sam Stone ©   (2003-11-02 14:35) [2]

Если мышки воруют, то можно сделать так: взять все провода, выходящие из системника и обмотать скотчем ;)


 
Геннадий ©   (2003-11-03 06:27) [3]

Угу, так и делаем. Но хотелось бы реализовать более программный подход.

P.S. Мы знакомы?


 
Vorobyev Sergey ©   (2003-11-03 09:30) [4]


> [1] Song © (01.11.03 12:53)
> Нет.

Я бы не стал так критично..
1. Ведь есть же программы тестилки оборудования, которые могут физически проверить устройства, сигналами там всякими и т.п.
2. Тем более, если написать драйвер, который будет работать на уровне ядра
3. Может быть задача и не простая, но реальная

А вы - НЕТ..


 
SkyN ©   (2003-11-03 09:31) [5]

подумай про USB,
имхо, без написания драйвера здесь не обойтись


 
Геннадий ©   (2003-11-03 13:30) [6]

Так драйвер, работающий в режиме ядра пишут на Си. А мы с Вами - делфисты.

Mouse.MousePresent не то... И у операционной системы нет сообщения wm_mouseleavecomp :)


 
app ©   (2003-11-03 13:35) [7]

Ящик в язик и замок + локальная сигнализация, заодно и питание вывести администратору.


 
Геннадий ©   (2003-11-03 13:43) [8]


> app © (03.11.03 13:35) [7]
> Ящик в язик и замок + локальная сигнализация, заодно и питание
> вывести администратору.


Мне бы чего более интегрированного с операционной системой.


 
Woolen ©   (2003-11-03 13:46) [9]


> Работаю в Инет-клубе и эта проблема в последнее время стала
> переходить все мыслимые границы

Обычно, когда эта проблема решается, дети начинают тырить шарики от мышей. Проверено. Сам работал некоторое время на клуб.


 
Геннадий ©   (2003-11-03 15:46) [10]


> Обычно, когда эта проблема решается, дети начинают тырить
> шарики от мышей. Проверено. Сам работал некоторое время
> на клуб.


Хе! А у нас все оптические! P:)


 
Song ©   (2003-11-04 09:14) [11]

>>А вы - НЕТ..
Потому что пробовал.
В АПИ есть функция, которая об этом говорит. Так вот она меняет своё "мнение" только после перезагрузки.
Про USB правда не знаю.


 
ion ©   (2003-11-04 09:23) [12]

Если мыша USB то не проще ли проверять статус девайса? Можно смотреть в сторону компонентов от MiTeC, я покраней мере с помошью их контролирую изменения в оборудовании своей конторы


 
Sam Stone ©   (2003-11-04 12:16) [13]


> дети начинают тырить шарики от мышей. Проверено

На такую ботву можно их заклеивать ;) (для чистки придется разбирать)

Хм, а "пинговать" мышу низя?(раз в несколько секунд)
Или это прокатит только для усб?(в смысле, что выдернули)


 
Лёша ©   (2003-11-04 14:20) [14]

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


 
Legran   (2003-11-04 15:26) [15]

Удалено модератором


 
N169   (2003-11-04 16:02) [16]

С USB мышкой действительно можно отловить, легко, по WM_DEVICECHANGE; с PS/2 - нет, однозначно.

Есть, правда, непрограммный вариант - просто прижать мышиный шнур к столу скобкой на шурупах. Тогда вору придётся шнур рвать. А кому нужна мыша без разъёма?


 
Геннадий ©   (2003-11-06 10:01) [17]


> N169 (04.11.03 16:02) [16]


> А кому нужна мыша без разъёма?


Нужна. Можно взять старый (от поломанной с колёсиком).

Мышь PS/2 (оптическая)


 
DVM ©   (2003-11-06 11:21) [18]

Да действительно, прикрутите вы их к столу скобой (не мышки, провода:) и все.


 
N169   (2003-11-06 11:27) [19]

Ещё можно не мыши пользовать, а трэкболы, закрепив стационарно на столе.

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


 
DVM ©   (2003-11-06 13:14) [20]

Камеры поставить надо... И тому кто будет резать шнур уши отрезать на выходе.
А вообще есть специальные столы для компьютерных клубов и инет-кафе, так там все это предусмотрено уже.


 
Sam Stone ©   (2003-11-06 13:37) [21]

на входе нужно залог брать за грызуна ;) Доменты какие-нить или деньги


 
Vic   (2003-11-06 16:43) [22]

на входе мышь и клавиатуру выдавать, на выходе забирать :)


 
NikNet ©   (2003-11-07 11:51) [23]

Вызывать в цыкле кое-кокую функцыю или процедуру и проверять на ошибки если ошибка значит мыши нет или дети сломали её думаю помог а вобше не проверял проверь сам для меня сисчас одно задруднение как перейти в Ring0


 
Songoku ©   (2003-11-07 15:26) [24]

Попробуй вот это!
WM_DEVICECHANGE
Windows посылает всем окнам это ссобщение кагда произошло под ключение или отключение кагого нибудь устройства! Знаю что 100% будет работать с USB! Я тестировал это сообщение на маёю ISDN_USB - и всё прекрасно работало!


 
Геннадий ©   (2003-11-27 12:51) [25]

Так в том то и дело, что все мыши у нас PS/2. Я думаю, что единственный выход - это написание своего драйвера мыши либо драйвера-прослойки между системой и родный драйвером мыши. Но вот проблема: на Delphi (такая замечательная система!) драйверы почему-то не пишут (и почему не предусмотрели?).


 
Urvin ©   (2003-11-27 14:04) [26]

unit MAINFRM;

interface

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

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure WMDeviceChange(var Message: TMessage);
message WM_DEVICECHANGE;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

const DBT_DEVICEARRIVAL = $8000;
const DBT_DEVICEQUERYREMOVE = $8001;
const DBT_DEVICEQUERYREMOVEFAILED = $8002;
const DBT_DEVICEREMOVEPENDING = $8003;
const DBT_DEVICEREMOVECOMPLETE = $8004;
const DBT_DEVICETYPESPECIFIC = $8005;
const DBT_CONFIGCHANGED = $0018;

procedure TForm1.WMDeviceChange(var Message: TMessage);
var
s : string;
begin
{Do Something here}
case Message.wParam of
DBT_DEVICEARRIVAL :
s := "A device has been inserted and is now available";
DBT_DEVICEQUERYREMOVE: begin
s := "Permission to remove a device is requested";
ShowMessage(s);
{True grants premission}
Message.Result := integer(true);
exit;
end;
DBT_DEVICEQUERYREMOVEFAILED :
s := "Request to remove a device has been canceled";
DBT_DEVICEREMOVEPENDING :
s := "Device is about to be removed";
DBT_DEVICEREMOVECOMPLETE :
s := "Device has been removed";
DBT_DEVICETYPESPECIFIC :
s := "Device-specific event";
DBT_CONFIGCHANGED :
s:= "Current configuration has changed"
else s := "Unknown Device Message " + IntToStr(Message.wParam);
end;
ShowMessage(s);
inherited;
end;



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

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

Наверх




Память: 0.53 MB
Время: 0.022 c
1-38797
uu
2004-02-03 12:40
2004.02.13
Разряд


6-38994
Dark Elf
2003-09-10 12:15
2004.02.13
Работа с почтой


1-38870
Катя
2004-02-03 14:48
2004.02.13
Отчет


14-39000
Тимохов
2004-01-22 16:45
2004.02.13
Про горячие клавиши редактора Дельфи


14-39053
Piter
2004-01-19 19:13
2004.02.13
Какие компиляторы поддерживают C# ?