Форум: "Система";
Текущий архив: 2004.02.13;
Скачать: [xml.tar.bz2];
Вниз
Ловим отсоединение мыши... Найти похожие ветки
← →
Геннадий (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;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.012 c