Просмотр полной версии : Отключение мыши WinAPI
Как вырубить мышь с помошью API?
herfleisch
09.01.2009, 03:18
winexec(Pchar('rundll32 mouse,disable' ) ,sw_Show);
herfleisch
09.01.2009, 03:20
Ещё есть функция BlockInput()
Про неё поищи сам
BlockInput() блокирует мышь+клаву. надо чтоб чтоб можно было мышь обрубить и потом включить (у мну прога управляет мышью и надо чтоб юзер этому не мешал.его вмешательство заметно к примеру при рисовании в пеинте).
herfleisch
09.01.2009, 03:49
Ну тогда через winexec()
че за функция Pchar? эт не вин апи....
herfleisch
09.01.2009, 04:17
Это Delphi
объясни че она делает, я найду аналог в PB
herfleisch
09.01.2009, 09:23
По-моему, если мне не изменяет память, это функция приведения типов к Pchar (есть в делфи такой тип), что-то типа строки. Нужно спросить Делфи-кодеров
у rundll32 mouse,disable
нет обратной команды, т.е. мышь включится только после перезагрузки компа.
Вариант: перемести курсор куда-нить в угол экрана, сделай его не видимым. Потом перехватывай/обрабатывай все сообщения мыши(нажатие правой/левой кнопки, перемещение)
у мну прога управляет мышью и надо чтоб юзер этому не мешал.его вмешательство заметно к примеру при рисовании в пеинте
что спрятать курсор не получится.он нужен для работы программы
если я сделал так
winexec(Pchar('rundll32 mouse,disable' ) ,sw_Show);
как вернуть все на место???
herfleisch
14.01.2009, 00:00
если я сделал так
winexec(Pchar('rundll32 mouse,disable' ) ,sw_Show);
как вернуть все на место???
Не знаю... погугли... но может быть winexec(Pchar('rundll32 mouse,enable' ) ,sw_Show);
crystalbit
14.01.2009, 00:05
MaTpOc,
нет обратной команды, т.е. мышь включится только после перезагрузки компа.
winexec(Pchar('rundll32 mouse,disable' ) ,sw_Show);
процесс необратимый. насколько я помню, в 98 винде работало...
Перехватывай нажатие хуком и ставь действие "ничего".
а по поводу PChae я, как закоренелый делфист, могу сказать следующее.
Это никому не нужный дурацкий по сравнению с string тип, тем не менее используется во всех библиотеках майкрософта.
Если ты выдывешь в Делфи winexec, MessageBox итп передавая стринги - компилятор выдает несоответствие типов.
решается оно передачей pchar(s) или @s[1], т.е. адреса первого символа строки
Это никому не нужный дурацкий по сравнению с string тип
Вот не надо! сейчас ты,по сути,сказал следующее: "указатель - это никому не нужный дурацкий тип"
А PChar - это более удобная интерпретация ^string с доп. возможностями, а строка в делфе - хитрая структура, которая, разумеется, непонятна вообще вне самой программы.
label doit;
var
p: TPoint;
begin
GetCursorPos(p);
doit:
SetCursorPos(p.x,p.y);
Sleep(1);
GOTO doit
имитация отключения мыши
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot