Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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
14-39021
Knight
2004-01-24 18:23
2004.02.13
Пока ставится Win98...


1-38936
BlackLord2003
2004-02-03 14:31
2004.02.13
TWebBrowser


7-39106
Администратор
2003-11-22 22:06
2004.02.13
CTRL+ALT+DELETE


14-39056
lipskiy
2004-01-25 15:30
2004.02.13
Подскажите компонент


7-39104
pavel_guzhanov
2003-11-27 16:06
2004.02.13
использование WinIO





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