11.01.2008, 13:30 | #1 |
Участник
|
Получить снимок части экрана
Привет всем.
Может есть у кого идеи как это сделать. Задача: есть Аксапта 3. По ходу работы возникает необходимость пользователям отправлять снимки экранов (с ошибками). Как известно, в аксапта не получаеться скриншотить окно. Только весь экран целом. Есть программы типа EasyCapture http://www.xydownload.com/easycapture/index.html, которые позволяют копировать часть экрана. Собственно вопрос: можно такое сделать в аксапте? Возможно кто нибудь подскажет с помощью чего это возможно реализовать. У меня пока только одна идея: копировать весь екран, открывать форму вставлять туда скопированную кортинку и в ней довать пользователю и изменять ее (вырезать что нужно). Заранее спабо за ответы. |
|
11.01.2008, 13:56 | #2 |
Участник
|
Почему нельзя, а если так
X++: Image img = new Image(); ; img.captureScreen(0,0,200,200); img.saveImage('c:\\1.jpg',ImagesaveType::JPG); img.captureWindow(infolog.hWnd()); img.saveImage('c:\\2.jpg',ImagesaveType::JPG); |
|
11.01.2008, 13:59 | #3 |
Участник
|
|
|
11.01.2008, 14:15 | #4 |
Участник
|
Как скопировать понятно.
А как выбрать (выделить) то, что надо скопировать? С формой понятно, а если с экраном. Например: расположил ошибку в нужную часть, выделил часть формы и эту ошибку и фотай... |
|
11.01.2008, 14:51 | #5 |
Участник
|
Сделать можно, но только зачем такое надо? Ошибки чаще всего выдаются в окно infolog. Если скопировать даже все окно, то, как правило, текст в этом окне обрезается и присланная ошибка не информативна. Тогда уж лучше делать копирование текста из infologa скажем в буфер обмена.
|
|
11.01.2008, 15:29 | #6 |
Участник
|
Цитата:
|
|
11.01.2008, 15:42 | #7 |
Участник
|
Раз это будет ручная операция, то по-моему не так уж и долго после принтскрина всего экрана сделать "образение" в MsPaint.
В инете, имхо, полно программ, которые позволяют выделять часть экрана и только ее принтскринить. |
|
11.01.2008, 18:26 | #8 |
Участник
|
Попробую пояснить.
Данная задача являеться промежуточной. Вопрос о необходимости реализации данного решения не стоит. Поэтому буду признателен за конкретные советы, как токое можно реализовать. |
|
11.01.2008, 21:23 | #9 |
Участник
|
Табаксом пользуетесь? Можно было бы туда кнопочку приделать.
Если же не пользуетесь, добавьте пункт меню в GlobalToolsMenu. Пользователь расположил все, как ему надо, вызвал этот пункт меню. Открывается небольшой диалог в котором предлагается ввести 4 координата. Нажимают ок - дальше см. совет Lucky13. Понимаю, что им нужно понимать о пикселах, координатах экрана, разрешении - но после 5 попыток они уже смогут все это делать на автомате. Это конечно не самый изящный вариант - зато самый простой |
|
14.01.2008, 10:20 | #10 |
Участник
|
Цитата:
Во-во, не самый... задавать две координаты конечно не сложно. Но выделение мышкой нужного прямоугольника смотрелось бы куда приятнее. Поэтому вопрос остаеться открытым. |
|
14.01.2008, 10:54 | #11 |
Участник
|
Ну если уж очень хочется, то думаю копать нужно в следующем направлении:
Установить мышиный hook, рисовать на главном окне Аксапты прямоугольник с помощью GDI и запоминать координаты. Сделать такое в Аксапте не получится т.к. функция SetWindowsHookEx принимает в качестве параметра указатель на функцию, а сделать такое в Аксапте невозможно. Поэтому придется писать какое-нибудь сторонее приложение или dll. Но я бы не советовал так делать - чем писать свое приложение лучше взять готовое, так как делает оно абсоютно то же самое. |
|
14.01.2008, 14:17 | #12 |
Участник
|
Всем спасибо
|
|
Теги |
ax3.0 |
|
|