[Moscow.pm] Win32::GuiTest Open Context Menu Key
Nikolay Mishin
mi на ya.ru
Вт Ноя 29 06:02:51 PST 2011
Спасибо Дим, криво, но прошло с Win32::GuiTest::GetWindowRect:
SetForegroundWindow($w);
my ( $x, $y ) = Win32::GuiTest::GetWindowRect($w);
Win32::GuiTest::MouseMoveAbsPix( $x + 242, $y + 613 );
sleep 1;
for ( 1 .. 4 ) {
SendKeys("{DOWN}");
}
SendRButtonDown();
SendRButtonUp();
итоговый скрипт (запуска воркфлоуменеджера информатики):
https://gist.github.com/1384894
игрушки , конечно, приукольные, но нужно быть аккуратным,
очень жаль что нельзя посылать сигнал именно окну по его id
, а нужно его предварительно сделать
SetForegroundWindow($w);
ну такая уж, видимо, событийная модель виндоуз
22.11.2011, 08:56, "Dmitry Karasik" <dmitry на karasik.eu.org>:
>> 14 строка посылает enter SendKeys("~");
>> , в notepad это работает, а вот
>> в java-приложении у меня будет работать, если я
>> дважды кликну (или 1 раз) на пункт этого меню (понятно, что там и контекстное меню другое)
>> как вычислить координату этого меню и послать туда сигнал мыши
>>
>> MouseMoveAbsPix( ( $x, $y);
>> sleep(1);
>> SendMouse("{LeftClick}");
>>
>> как вычислить $x и $y ?
>>
>> p.s. здесь http://www.perl.com/pub/2005/08/11/win32guitest.html еще хорошо написано, но это не помогает
>> help!
>
> Если EnumWindows или как там его не помогает на явовских приложениях ( в чем я очень сомневаюсь, т.к. контекстное
> меню как ни крути, а будет иметь системный HWND, а значит его можно найти ), то можно на самый худой конец
> анализировать пиксели с помощью Win32::GUIRobot
>
> --
> Sincerely,
> Dmitry Karasik
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
--
Nikolay Mishin
Подробная информация о списке рассылки Moscow-pm