[Moscow.pm] Win32::GuiTest Open Context Menu Key

Dmitry Karasik dmitry на karasik.eu.org
Пн Фев 27 09:37:09 PST 2012


Пожалуй соглашусь:

PostMessage(hwnd, WM_SYSCOMMAND, IDM_COPYALL, 0) 

должно прокатить. А если не прокатит, то поклавишно Alt-Space, Down Down Enter или мышью

/dk

On Mon, Feb 27, 2012 at 06:47:57PM +0400, Akzhan Abdulin wrote:
> Насколько я помню (10 лет прошло), тебе не надо эмулировать интерфейс.
> Пошли окну WM_SYSCOMMAND<http://msdn.microsoft.com/en-us/library/windows/desktop/ms646360(v=vs.85).aspx>
> .
> 
> 27 февраля 2012 г. 18:39 пользователь Nikolay Mishin <mi на ya.ru> написал:
> 
> > Дим, привет, докопал сырцы putty  (
> > http://tartarus.org/~simon/putty-snapshots/?C=M;O=A)
> >
> > в WINDOW.C есть 804 строка:
> >            AppendMenu(m, MF_ENABLED, IDM_COPYALL, "C&opy All to
> > Clipboard");
> >
> >          case IDM_COPYALL:
> >            term_copyall(term);
> >            break;
> >
> > есть еще 47 строка
> > #define IDM_COPYALL   0x0170
> >
> > далее пишем
> > use Win32::GuiTest qw(:ALL);
> > SendKeys("%{F4}");
> > SendKeys("mishnik");
> > SendKeys("{ENTER}");
> >
> > как мне послать ему сигнал   0x0170 ?
> > или как-нибуль так сделать ?
> > (добраться до системного меню ctrl+space)
> >  MenuSelect("System meny|C&opy All to Clipboard");  # this is also
> > language dependent !
> > ?
> >
> > или
> >
> >   #!/usr/bin/perl
> >    #
> >
> >    use Win32::GuiTest qw(:FUNC :VK);
> >
> >    while (1) {
> >        SendRawKey(VK_DOWN, KEYEVENTF_EXTENDEDKEY);
> >        SendKeys "{PAUSE 200}";
> >    }
> >
> > читаю
> > http://msdn.microsoft.com/en-us/library/windows/desktop/ms646267(v=vs.85).aspx
> > читаю и никак не пойму?
> >
> > 02.12.2011, 12:13, "Dmitry Karasik" <dmitry на karasik.eu.org>:
> > >>  у программ MDI  интерфейс и внутри окна есть и другие, дочерние окна,
> > до которых и
> > >>  не удается добраться
> > >
> > > когда-то давно в состав ms dev studio входила утилита spyxx.exe которой
> > можно было смотреть
> > > иерархию окон в интерактиве, может поможет она, или ее более современные
> > аналоги
> > >
> > >>  правда я сейчас понял, что это можно сделать через меню
> > >>  "Copy All to Сlipboard"
> > >>  правда, чтобы работал ALT-space
> > >>  да, и как послать ALT+space
> > >>  так SendKeys("%{SPACE}");
> > >>  не проходит
> > >
> > > можно порыться в сырцах putty и посмотреть какое сообщение посылает
> > "Copy All To Clipboard",
> > > скорее всего какое нибудь WM_USER+666 или около того. И попробовать его
> > послать самому.
> > >
> > > --
> > > Sincerely,
> > > Dmitry Karasik
> > >
> > > --
> > > Moscow.pm mailing list
> > > moscow-pm на pm.org | http://moscow.pm.org
> >
> > --
> > Nikolay Mishin
> > --
> > Moscow.pm mailing list
> > moscow-pm на pm.org | http://moscow.pm.org
> >

> -- 
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org


-- 
Sincerely,
	Dmitry Karasik



Подробная информация о списке рассылки Moscow-pm