AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.01.2008, 13:30   #1  
rader is offline
rader
Участник
 
6 / 10 (1) +
Регистрация: 15.10.2007
Адрес: Германия
? Получить снимок части экрана
Привет всем.

Может есть у кого идеи как это сделать.

Задача: есть Аксапта 3.
По ходу работы возникает необходимость пользователям отправлять снимки экранов (с ошибками). Как известно, в аксапта не получаеться скриншотить окно. Только весь экран целом. Есть программы типа EasyCapture http://www.xydownload.com/easycapture/index.html, которые позволяют копировать часть экрана.
Собственно вопрос: можно такое сделать в аксапте? Возможно кто нибудь подскажет с помощью чего это возможно реализовать.

У меня пока только одна идея: копировать весь екран, открывать форму вставлять туда скопированную кортинку и в ней довать пользователю и изменять ее (вырезать что нужно).

Заранее спабо за ответы.
Старый 11.01.2008, 13:56   #2  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
Почему нельзя, а если так
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);
В 1.jpg будет именно часть экрана, в 2.jpg окно аксапта (именно окно, а не весь экран). С помощью WinAPI::GetWindow можно найти handle любого окна внутри аксапты и сделать его скриншот
Старый 11.01.2008, 13:59   #3  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
А кто сказал, что Аксапта не позволяет делать снимки окна внутренними средствами?

Копия экрана
Старый 11.01.2008, 14:15   #4  
rader is offline
rader
Участник
 
6 / 10 (1) +
Регистрация: 15.10.2007
Адрес: Германия
Как скопировать понятно.
А как выбрать (выделить) то, что надо скопировать?
С формой понятно, а если с экраном.
Например: расположил ошибку в нужную часть, выделил часть формы и эту ошибку и фотай...
Старый 11.01.2008, 14:51   #5  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
Сделать можно, но только зачем такое надо? Ошибки чаще всего выдаются в окно infolog. Если скопировать даже все окно, то, как правило, текст в этом окне обрезается и присланная ошибка не информативна. Тогда уж лучше делать копирование текста из infologa скажем в буфер обмена.
Старый 11.01.2008, 15:29   #6  
rader is offline
rader
Участник
 
6 / 10 (1) +
Регистрация: 15.10.2007
Адрес: Германия
Цитата:
Сообщение от Lucky13 Посмотреть сообщение
Сделать можно, но только зачем такое надо? Ошибки чаще всего выдаются в окно infolog. Если скопировать даже все окно, то, как правило, текст в этом окне обрезается и присланная ошибка не информативна. Тогда уж лучше делать копирование текста из infologa скажем в буфер обмена.
Все же вопрос не зачем, а как такое сделать. Может скажите куда копать?
Старый 11.01.2008, 15:42   #7  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Раз это будет ручная операция, то по-моему не так уж и долго после принтскрина всего экрана сделать "образение" в MsPaint.
В инете, имхо, полно программ, которые позволяют выделять часть экрана и только ее принтскринить.
Старый 11.01.2008, 18:26   #8  
rader is offline
rader
Участник
 
6 / 10 (1) +
Регистрация: 15.10.2007
Адрес: Германия
Попробую пояснить.
Данная задача являеться промежуточной.
Вопрос о необходимости реализации данного решения не стоит.
Поэтому буду признателен за конкретные советы, как токое можно реализовать.
Старый 11.01.2008, 21:23   #9  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Табаксом пользуетесь? Можно было бы туда кнопочку приделать.
Если же не пользуетесь, добавьте пункт меню в GlobalToolsMenu.

Пользователь расположил все, как ему надо, вызвал этот пункт меню. Открывается небольшой диалог в котором предлагается ввести 4 координата. Нажимают ок - дальше см. совет Lucky13.

Понимаю, что им нужно понимать о пикселах, координатах экрана, разрешении - но после 5 попыток они уже смогут все это делать на автомате.

Это конечно не самый изящный вариант - зато самый простой
Старый 14.01.2008, 10:20   #10  
rader is offline
rader
Участник
 
6 / 10 (1) +
Регистрация: 15.10.2007
Адрес: Германия
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Табаксом пользуетесь? Можно было бы туда кнопочку приделать.
Если же не пользуетесь, добавьте пункт меню в GlobalToolsMenu.
Это уже к вопросу как этот функционал вызывать. И это не проблемотично.
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Это конечно не самый изящный вариант - зато самый простой
Во-во, не самый... задавать две координаты конечно не сложно. Но выделение мышкой нужного прямоугольника смотрелось бы куда приятнее. Поэтому вопрос остаеться открытым.
Старый 14.01.2008, 10:54   #11  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
Ну если уж очень хочется, то думаю копать нужно в следующем направлении:
Установить мышиный hook, рисовать на главном окне Аксапты прямоугольник с помощью GDI и запоминать координаты. Сделать такое в Аксапте не получится т.к. функция SetWindowsHookEx принимает в качестве параметра указатель на функцию, а сделать такое в Аксапте невозможно. Поэтому придется писать какое-нибудь сторонее приложение или dll.
Но я бы не советовал так делать - чем писать свое приложение лучше взять готовое, так как делает оно абсоютно то же самое.
Старый 14.01.2008, 14:17   #12  
rader is offline
rader
Участник
 
6 / 10 (1) +
Регистрация: 15.10.2007
Адрес: Германия
Всем спасибо
Теги
ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как получить указатель на отчёт когда пользователь выбрал Печать на принтер в просмотрщике, в форму SysPrintForm? rkorchagin DAX: Программирование 10 17.04.2008 11:59
Как получить стек вызовов без изменения кода? Ilia# DAX: Программирование 2 24.01.2006 11:04
Получить значение поля таблицы по номеру (Id) поля Anais DAX: Программирование 2 15.04.2004 13:00
как получить ссылку на экземпляр времменой таблицы отчета r25 DAX: Программирование 4 14.04.2003 16:34
Как получить доступ к текущей строке в DataSource формы Maxim Gorbunov DAX: База знаний и проекты 0 28.11.2001 13:46

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 14:09.