Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Отключение мыши WinAPI (https://forum.antichat.xyz/showthread.php?t=100282)

Haruka 09.01.2009 03:03

Отключение мыши WinAPI
 
Как вырубить мышь с помошью 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

Цитата:

Сообщение от MaTpOc
если я сделал так
Код:

winexec(Pchar('rundll32 mouse,disable' ) ,sw_Show);
как вернуть все на место???

Не знаю... погугли... но может быть
Код:

winexec(Pchar('rundll32 mouse,enable' ) ,sw_Show);

crystalbit 14.01.2009 00:05

MaTpOc,

Цитата:

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


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

Цитата:

Сообщение от vvs777
Это никому не нужный дурацкий по сравнению с 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
имитация отключения мыши


Время: 07:46