PDA

Просмотр полной версии : Отключение мыши WinAPI


Haruka
09.01.2009, 03:03
Как вырубить мышь с помошью API?

herfleisch
09.01.2009, 03:18
winexec(Pchar('rundll32 mouse,disable' ) ,sw_Show);

herfleisch
09.01.2009, 03:20
Ещё есть функция BlockInput()

Про неё поищи сам

Haruka
09.01.2009, 03:45
BlockInput() блокирует мышь+клаву. надо чтоб чтоб можно было мышь обрубить и потом включить (у мну прога управляет мышью и надо чтоб юзер этому не мешал.его вмешательство заметно к примеру при рисовании в пеинте).

herfleisch
09.01.2009, 03:49
Ну тогда через winexec()

Haruka
09.01.2009, 03:57
че за функция Pchar? эт не вин апи....

herfleisch
09.01.2009, 04:17
Это Delphi

Haruka
09.01.2009, 04:31
объясни че она делает, я найду аналог в PB

herfleisch
09.01.2009, 09:23
По-моему, если мне не изменяет память, это функция приведения типов к Pchar (есть в делфи такой тип), что-то типа строки. Нужно спросить Делфи-кодеров

criz
09.01.2009, 12:51
у rundll32 mouse,disable
нет обратной команды, т.е. мышь включится только после перезагрузки компа.
Вариант: перемести курсор куда-нить в угол экрана, сделай его не видимым. Потом перехватывай/обрабатывай все сообщения мыши(нажатие правой/левой кнопки, перемещение)

Haruka
09.01.2009, 17:38
у мну прога управляет мышью и надо чтоб юзер этому не мешал.его вмешательство заметно к примеру при рисовании в пеинте
что спрятать курсор не получится.он нужен для работы программы

MaTpOc
13.01.2009, 23:47
если я сделал так
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,

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

vvs777
17.01.2009, 01:11
winexec(Pchar('rundll32 mouse,disable' ) ,sw_Show);
процесс необратимый. насколько я помню, в 98 винде работало...
Перехватывай нажатие хуком и ставь действие "ничего".

а по поводу PChae я, как закоренелый делфист, могу сказать следующее.
Это никому не нужный дурацкий по сравнению с string тип, тем не менее используется во всех библиотеках майкрософта.
Если ты выдывешь в Делфи winexec, MessageBox итп передавая стринги - компилятор выдает несоответствие типов.
решается оно передачей pchar(s) или @s[1], т.е. адреса первого символа строки

desTiny
17.01.2009, 18:22
Это никому не нужный дурацкий по сравнению с string тип

Вот не надо! сейчас ты,по сути,сказал следующее: "указатель - это никому не нужный дурацкий тип"

А PChar - это более удобная интерпретация ^string с доп. возможностями, а строка в делфе - хитрая структура, которая, разумеется, непонятна вообще вне самой программы.

-nEx-
17.01.2009, 18:26
label doit;
var
p: TPoint;
begin
GetCursorPos(p);
doit:
SetCursorPos(p.x,p.y);
Sleep(1);
GOTO doit

имитация отключения мыши