Есть swf в которой нужно кликнуть мышкой с зажатым шифтом.
Из своей проги делаю
PostMessage(hFlash, WM_LBUTTONDOWN, 0, x or (y shl 16));
— нажатие проходит, а вот с шифтом проблемы. Флаг MK_SHIFT, wm_keydown не проходят. Как я понимаю, во флэшке вызывается функция обработки мыши и затем в ней проверяется нажат ли шифт.
Если кто знает как решить эту проблему, буду благодарен за инфу
Здравствуйте, 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, может придется и с правым возится...