![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работает ли мышь? Как поределить програмно? [D5, WinXP]
cerber1 © (2004-10-29 21:45:00)Собственно вопрос в названии. Ответы типа :подергать мышь и помотреть на экран не принимаются ибо надо ПРОГРАММНО. Слышал про такую возможность и чита у Гука, но не видел сорцов.
OSokin (2004-10-31 18:01:00) [1]Сорри, не увидел.
cerber1 (2004-10-31 13:18:00) [2]2 abc (29.10.04 22:17) [3]
Вопрос не в том присутствует или нет, а в том "Работает ли мышь?". Знаю, что есть возможность ввести мышь в режим похожий на "эхо" в СОМ-портах, а вот как, не знаю.
2 OSokin © (30.10.04 17:43) [4]
1. см. выше("присутствует<>работает")
2. Под ХР "int 33h" - сомневаюсь что заработает.
OSokin (2004-10-30 17:43:00) [3]Еще метод (тока не знаю, прокатит ли):
type
TMouseData=record
mversion:word; //Версия мышки
mtype:byte; //Тип (1-bus,2-serial,3-InPort,4-PS/2,5-HP)
mintr:byte; //Прерывание (0-PS/2,2-IRQ2,3-IRQ3,...,7-IRQ7)
mpresent:boolean; //Присутствует ли мышка
end;
...
function MouseData:TMouseData;
var
temp:TMouseData;
tempw:word;
begin
asm
mov ax,0024h
int 33h
mov tempw,ax
mov temp.mversion,bx
mov temp.mtype,ch
mov temp.mintr,cl
end;
if tempw=$FFFF then temp.mpresent:=false else temp.mpresent:=true;
Result:=temp;
end;
abc (2004-10-29 22:17:00) [4]Как узнать, присутствует ли мышка?
function MousePresent: boolean;
begin
if GetSystemMetrics( SM_MOUSEPRESENT ) <> 0 then
Result := true
else
Result := false;
end;
cerber1 (2004-10-29 21:56:00) [5]2 miek © (29.10.04 21:50) [1]
1. если не дергать мішь то там нихрена не идет - проверено осцилографом
2. А если PS/2?
miek (2004-10-29 21:50:00) [6]1) COM-порт, отведенный мыши, должен быть занят (если это COM-мышь)
2) По нему постоянно должна идти передача