зажатие клавиши
От: MaxL  
Дата: 23.05.05 14:30
Оценка:
Есть swf в которой нужно кликнуть мышкой с зажатым шифтом.
Из своей проги делаю
PostMessage(hFlash, WM_LBUTTONDOWN, 0, x or (y shl 16));

— нажатие проходит, а вот с шифтом проблемы. Флаг MK_SHIFT, wm_keydown не проходят. Как я понимаю, во флэшке вызывается функция обработки мыши и затем в ней проверяется нажат ли шифт.
Если кто знает как решить эту проблему, буду благодарен за инфу
Re: зажатие клавиши
От: Danchik Украина  
Дата: 23.05.05 15:21
Оценка:
Здравствуйте, MaxL, Вы писали:

ML>Есть swf в которой нужно кликнуть мышкой с зажатым шифтом.

ML>Из своей проги делаю
ML> PostMessage(hFlash, WM_LBUTTONDOWN, 0, x or (y shl 16));

ML> — нажатие проходит, а вот с шифтом проблемы. Флаг MK_SHIFT, wm_keydown не проходят. Как я понимаю, во флэшке вызывается функция обработки мыши и затем в ней проверяется нажат ли шифт.

ML>Если кто знает как решить эту проблему, буду благодарен за инфу

Тут тебе поможет только установка Shift всему Windows. Примеры процедур:

function IsShiftPressed : Boolean;
begin
  Result := GetKeyState (VK_LSHIFT) <> 0;
end;

procedure SetShift (Down : Boolean);
var
  aInput    : tagINPUT;
  aKbdInput : tagKEYBDINPUT;
begin

  FillChar (aInput, SizeOf (aInput), 0);
  aInput.Itype  := INPUT_KEYBOARD;
  aInput.ki.wVk := VK_LSHIFT;

  if not Down then
    aInput.ki.dwFlags := KEYEVENTF_KEYUP;

  SendInput (1, aInput, SizeOf (aInput));
end;

Тоесть ставиш Shift, шлеш свое сообщение, возвращаеш обратно.

Удачи!

P.S.
Приведен вариант только с Левым Shiftom, может придется и с правым возится...
Re[2]: зажатие клавиши
От: MaxL  
Дата: 23.05.05 16:00
Оценка:
Спасибо, работает!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.