Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.08.2012, 20:32   #1
alex4321
Пользователь
 
Регистрация: 23.07.2012
Сообщений: 77
По умолчанию Низкоуровневая имитация мыши.

В общем вопрос в том, как правильно имитировать работу мыши (всякие SendInput и прочее - не прокатят, к сожалению).
Решено было писать драйвер. Как я понял из этих 2 описаний :
http://ru.osdev.wikia.com/wiki/%D0%9...%81%D0%B0_PS/2
http://src-code.net/neposredstvennay...shyu-ps2-tipa/
Необходимо по готовности 8042 передать ему сперва D3h а потом записать описывающий состояние мыши байт.
Соответственно был переделан из имеющегося клавиатурного такой драйвер : http://pastebin.com/vgMQ7KrX (внимания вроде заслуживает лишь KbPs2Write )

Пытаюсь вызвать его из Delphi так :
Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils,Windows;

var
  code:byte;
  c:array [0..1] of byte;
  ret:Cardinal;
  h:THandle;

function Inp32(PortAdr: word): byte; stdcall; external 'inpout32.dll';
function Out32(PortAdr: word; Data: byte): byte; stdcall; external 'inpout32.dll';

begin
  Sleep(10000);
  h := CreateFile('\\.\r0modrv', GENERIC_READ + GENERIC_WRITE, 0,
    nil, OPEN_EXISTING, 0, 0);
  c[0]:=1;
  c[1]:=32;
  DeviceIoControl(h, 1,@c[0],2*sizeof(Byte),nil,0,ret, nil);
  Sleep(500);
  c[0]:=1;
  c[1]:=0;
  DeviceIoControl(h, 1,@c[0],2*sizeof(Byte),nil,0,ret, nil);
  Sleep(500);
  CloseHandle(h);
  Sleep(10000);
end.
(Функции работы с сервисами не вызываются, т.к. драйвер уже встроился в систему)
Но ничего не происходит. В чём может быть проблема?
alex4321 вне форума Ответить с цитированием
Старый 05.08.2012, 20:33   #2
alex4321
Пользователь
 
Регистрация: 23.07.2012
Сообщений: 77
По умолчанию

Inp32, Out32 - по ходу просто забыл удалить их :-)
alex4321 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Имитация мыши Visual C# Анатолий88 Общие вопросы .NET 2 28.06.2011 20:32
Имитация клика мыши Anfall Общие вопросы Delphi 20 05.10.2010 09:15
Имитация движения мыши dueram Win Api 5 02.04.2010 22:38
Имитация клика мыши, не работает по Vista Аферук Общие вопросы Delphi 9 21.04.2009 15:45
Имитация клика мыши tipzozborova JavaScript, Ajax 1 04.03.2009 07:27