Имя: Пароль:
1C
1С v8
Как сохранить яндекс-карту в файл?
0 ИС-2
 
naïve
06.05.14
11:09
Есть карта с выведенными на нее точками клиентов. На карту выведены нестандартные балуны, а свои рисованные картинки, поэтому staciс api не получится использовать.

Фактически надо пробежать по карте от одной точки к другой, "фотографируя" каждый фрагмент в файл, а потом объедить все в 1 файл.

У javascript не нашел ничего, чтобы делало скриншот экрана. Сейчас смотрю GDI32.dll ...
Как это можно сделать?
похожая тема v8: Ищу прогу, которая сохраняет картинку буфера обмена в файл?
1 ИС-2
 
naïve
06.05.14
12:11
ап
2 Godofsin
 
06.05.14
12:18
Procedure PScreen;

const

  CAPTUREBLT = $40000000;

var  ScreenBM:TBitMap;

      SendJPG:TJPEGImage;

begin

ScreenBM:=TBitMap.Create;

SendJPG:=TJPEGImage.Create;

ScreenBM.Width:=Screen.Width;

ScreenBM.Height:=Screen.Height;

BitBlt(ScreenBM.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,

GetDC(0), 0, 0, SRCCopy or CAPTUREBLT);

SendJPG.Assign(ScreenBM);

  SendJPG.SaveToFile('d:\MyJPG.jpg');

SendJPG.Free;

ScreenBM.Free;

end;
3 ИС-2
 
naïve
06.05.14
12:21
(3) это delphi?
4 Godofsin
 
06.05.14
12:21
(3) Так точно!
5 ИС-2
 
naïve
06.05.14
12:24
получается, мне надо это скопилировать в DLL, а потом подключить в 1C
6 Godofsin
 
06.05.14
12:25
(5) Я чот упустил что ты из 1с хочешь))) Можешь просто создать  рабочий проект на делфях, который будет скринить при вызове, а в 1с кнопочку, которая этот проект будет вызывать. Так проще, по-моему
7 ИС-2
 
naïve
06.05.14
12:38
(6) ввиду dll случаем нет? Ни у кого из друзей прогов уже delphi не стоит. До чего дожили...
8 Godofsin
 
06.05.14
12:55
(7)длл нет. Ты не знаешь, где взять делфи? ))) могу подсказать )))
9 ИС-2
 
naïve
06.05.14
13:32
(8) взять-то знаю где, но не на работе ломанную ставить же :)
10 ИС-2
 
naïve
07.05.14
11:09
ап
11 ИС-2
 
naïve
12.05.14
08:46
не понимаю, почему не работает программно нажатие на кнопку PRTSC - не делает скриншот

WHSShell = Новый COMОбъект("WScript.Shell");
WHSShell.SendKeys("{PRTSC}");
12 Wobland
 
12.05.14
08:54
RTFM

Note Note:
You cannot send the PRINT SCREEN key {PRTSC} to an application.
13 Поpyчик-4
 
12.05.14
08:57
14 IVT_2009
 
12.05.14
10:35
sasGis экспортирует без проблем выбранный участок карты. Карт много на выбор в т.ч. и яндекс.
15 ИС-2
 
naïve
12.05.14
11:00
(12) что ж так печально... Как можно поместить html в буфер?
v8: Записать программно в буфер изображение

(14) хорошо бы, только у меня куча своих нарисованных зон и точек на карте, которые и надо перенести в файл
16 ИС-2
 
naïve
12.05.14
11:13
какая dll отвечает за работу с буфером?
17 ИС-2
 
naïve
12.05.14
14:22
ну должно же быть какое-то решение
18 oleg_prg
 
12.05.14
15:46
Держи, на VC++ скомпилируй проект. Сделай exe и при надобности запускай это ЕХЕ. Он тебе будет создавать в нужном месте скрин экрана

#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <iostream>

#include <gdiplus.h>

using namespace std;

#pragma comment(lib, "GdiPlus.lib") /* наш многострадальный lib-файл */
using namespace Gdiplus; /* как хочешь, но мне не в кайф постоянно писать Gdiplus:: */

static const GUID png =
{ 0x557cf406, 0x1a04, 0x11d3, { 0x9a, 0x73, 0x00, 0x00, 0xf8, 0x1e, 0xf3, 0x2e } };


int main()
{
    GdiplusStartupInput gdiplusStartupInput;
    ULONG_PTR gdiplusToken;
    GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);

    HDC scrdc, memdc;
    HBITMAP membit;
    // Получаем HDC рабочего стола
    // Параметр HWND для рабочего стола всегда равен нулю.
    scrdc = GetDC(0);
    // Определяем разрешение экрана
    int Height, Width;
    Height = GetSystemMetrics(SM_CYSCREEN);
    Width = GetSystemMetrics(SM_CXSCREEN);
    // Создаем новый DC, идентичный десктоповскому и битмап размером с экран.
    memdc = CreateCompatibleDC(scrdc);
    membit = CreateCompatibleBitmap(scrdc, Width, Height);
    SelectObject(memdc, membit);
    // Улыбаемся... Снято!
    BitBlt(memdc, Width-50, Height-50, Width, Height, scrdc, 0, 0, SRCCOPY);
    HBITMAP hBitmap;
    hBitmap =(HBITMAP) SelectObject(memdc, membit);
     Gdiplus::Bitmap bitmap(hBitmap, NULL);
    bitmap.Save(L"c:\\screen.png", &png);

    DeleteObject(hBitmap);

    //GdiplusShutdown(gdiplusToken);
    return 0;
}
19 ИС-2
 
naïve
13.05.14
12:26
(18) спасибо, но удалось сделать через python.
http://habrahabr.ru/post/125173/
20 ИС-2
 
naïve
20.05.14
08:43
http://storage5.static.itmages.ru/i/14/0520/h_1400560073_7645525_b8b08ca3e6.png

Надо сохранить выведенное изображение в XML файл (или другой), чтобы передать другому лицу. А он загрузил бы этот файл и в его браузере показалась эта карта. Т.е надо каким-то образом передать карту другому лицу.
Как можно сделать?
21 ИС-2
 
naïve
20.05.14
14:37
с помощью какой библиотеки можно соединить несколько картинок в 1?
Пока смотрю GFLAx
22 ИС-2
 
naïve
20.05.14
15:50
ап
23 ИС-2
 
naïve
21.05.14
07:40
скрин можно сделать проще

xnview.exe -capture=window,d:\screenshot_$.jpg
xnview.exe -capture=desktop,d:\screenshot_###.jpg

А вот с объединеним файлов не понятно
Конвертирование в jpg в командной строке
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн