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

Nikolay Mishin mi на ya.ru
Пн Фев 27 06:39:35 PST 2012


Дим, привет, докопал сырцы 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