 |
Перехват мыши и симуляция нажатия клавиши - Вопросы и ответы, обсуждения - Ваши вопросы по Pascal/Delphi только в данном разделе |
09.07.2011, 15:59
|
#1
|
|
|
|
Фельдмаршал
|
 Регистрация: 22.02.2011
 Сообщений: 949
 Популярность: 34698
 Сказал(а) спасибо: 939
Поблагодарили 2,534 раз(а) в 911 сообщениях
|
Перехват мыши и симуляция нажатия клавиши
Весь код
Код:
unit Unit1;
interface
uses
Windows, Messages, ShellApi,SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
HookHandle: hHook;
implementation
{$R *.dfm}
procedure PostKeyEx32(key: Word; const shift: TShiftState; specialkey: Boolean);
type
TShiftKeyInfo = record
shift: Byte;
vkey: Byte;
end;
byteset = set of 0..7;
const
shiftkeys: array [1..3] of TShiftKeyInfo =
((shift: Ord(ssCtrl); vkey: VK_CONTROL),
(shift: Ord(ssShift); vkey: VK_SHIFT),
(shift: Ord(ssAlt); vkey: VK_MENU));
var
flag: DWORD;
bShift: ByteSet absolute shift;
i: Integer;
begin
for i := 1 to 3 do
begin
if shiftkeys[i].shift in bShift then
keybd_event(shiftkeys[i].vkey, MapVirtualKey(shiftkeys[i].vkey, 0), 0, 0);
end; { For }
if specialkey then
flag := KEYEVENTF_EXTENDEDKEY
else
flag := 0;
keybd_event(key, MapvirtualKey(key, 0), flag, 0);
flag := flag or KEYEVENTF_KEYUP;
keybd_event(key, MapvirtualKey(key, 0), flag, 0);
for i := 3 downto 1 do
begin
if shiftkeys[i].shift in bShift then
keybd_event(shiftkeys[i].vkey, MapVirtualKey(shiftkeys[i].vkey, 0),
KEYEVENTF_KEYUP, 0);
end; { For }
end; { PostKeyEx32 }
function HookProc(Code: integer; WParam: word; LParam: Longint): Longint; stdcall;
var
msg: PEVENTMSG;
begin
if Code >= 0 then begin
result := 0;
msg := Pointer(LParam);
with Form1 do
if (Msg.Message = WM_LBUTTONDOWN) then
begin
PostKeyEx32(Ord('K'), [], False);
end
else
result := CallNextHookEx(HookHandle, code, WParam, LParam);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
HookHandle := SetWindowsHookEx(0, @HookProc, HInstance, 0);
end;
end.
После запуска игы "Поинт Блэнк" Хук перестаёт работать.
Нужна помощь по работоспособности Хука.
Добавлено через 5 часов 46 минут
Кто-нибудь может помочь?
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось Dimedrol1536; 09.07.2011 в 21:46.
Причина: Добавлено сообщение
|
|
|
11.07.2011, 00:25
|
#2
|
|
|
|
Фельдмаршал
|
 Регистрация: 13.08.2009
 Сообщений: 1,004
 Популярность: 25098
 Золото Zhyk.Ru: 350
 Сказал(а) спасибо: 111
Поблагодарили 830 раз(а) в 395 сообщениях
|
Re: Перехват мыши и симуляция нажатия клавиши
А что тут думать? Фрост блочит хуки, обходите фрост. Закрывать?
________________
Ни одно доброе дело не остается безнаказанным.
Программы:
PW: Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). .
JD: Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). .
Статьи: Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
|
|
|
11.07.2011, 11:21
|
#3
|
|
|
|
Фельдмаршал
|
 Регистрация: 22.02.2011
 Сообщений: 949
 Популярность: 34698
 Сказал(а) спасибо: 939
Поблагодарили 2,534 раз(а) в 911 сообщениях
|
Re: Перехват мыши и симуляция нажатия клавиши
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
обходите фрост. Закрывать?
|
|
 |
|
 |
|
Обход фроста есть ( от Винсома). И выходит, что дело не в фросте, а перехватует хук окно игры. Возможно ли обойти защиту?
Пока закрывть не надо.
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось Dimedrol1536; 11.07.2011 в 16:12.
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 23:56.
|
 |