Использование метода
Desktop.CaptureBitmap (sBitmap)
делает скрин всего десктопа. Нужно сделать скрин только открытого окна. решение нашел такое:
MainWin("*some_window").CaptureBitmap (sBitmap)
В данный момент делаю все без использования предложенного выше метода GetRect(). Застрял на задании сделать скрины менбшки без выделенного менюайтема и кнопки с наведенным курсором мыши.
Вот что получилось у меня:
[-] testcase screenMenu() appstate none
[ ] MainWin("*some_window").SetActive()
[ ] MainWin("*some_window").Menu("some_id").Pick()
[ ] MainWin("*some_window").MoveMouse()
[ ] doScreenShot("Menu")
[ ]
[ ]
[ ]
[-] public STRING doScreenShot(STRING sName)
[ ] STRING sBitmap
[ ]
[-] withoptions
[ ] BindAgentOption (OPT_BITMAP_MATCH_COUNT, 1)
[ ] sBitmap = "{path}\{sName}_{FormatDateTime (GetDateTime(), "_ddmmyyyy_hhnnss")}.bmp"
[ ] MainWin("*some_window").DialogBox("some_id").CaptureBitmap (sBitmap)
[ ] return sBitmap
Тут воспринимаю открытое меню как диалог_бокс. Далее путем передвижения курсора мыши снимается выделение. Но есть одно НО. Для других пунктов меню выделение не снимается. Есть соображения по этому поводу?
И второе. Скрипт наведения курсора мышки на кнопку и скрин кнопки:
[ ] MainWin("*some_window").SetActive()
[ ] MainWin("*some_window").CustomWin( "some_id").ToolBar("some_id").PushButton("some_id").MoveMouse()
[ ] doScreenShot("mouse")
[ ]
[ ]
[-] public STRING doScreenShot(STRING sName)
[ ] STRING sBitmap
[ ]
[-] withoptions
[ ] BindAgentOption (OPT_BITMAP_MATCH_COUNT, 1)
[ ] sBitmap = "{path}\{sName}_{FormatDateTime (GetDateTime(), "_ddmmyyyy_hhnnss")}.bmp"
[ ] MainWin("*some_window").CustomWin("some_id").ToolBar("some_id").PushButton("some_id").CaptureBitmap (sBitmap)
[ ] return sBitmap
на скрине вижу только кнопку с нажатой мышкой.