Highlighted
Absent Member.
Absent Member.
2171 views

[archive] Capture screen

[Migrated content. Thread originally posted on 17 February 2009]

Hello,

We are using to capture the main windows of our program and send it to a printer with a special library, vic32.dll, but in a 64 bits OS dont works. My question is, Anyone knows a method to do the same but for a 64 bits OS?

Thanks afterwards.
0 Likes
4 Replies
Highlighted
Absent Member.
Absent Member.

RE: [archive] Capture screen

W$BITMAP and its method's WBITMAP-CAPTURE-* allows you to make a snapshot of the whole or parts of the screen to a file. This file you can then use with a normal print.
0 Likes
Highlighted
Absent Member.
Absent Member.

RE: [archive] Capture screen

Btw, "how" does it not work in 64 bit?
0 Likes
Highlighted
Absent Member.
Absent Member.

RE: [archive] Capture screen

This example does load gtanima.bmp, it is not included here, nor is it required for the purpose of the demo, but if you want to have it, you will find it in the sample folder of your ACUCOBOL-GT installation.

Do note that capture function also allow you to take snapshots of your dialog exclusively, even individual controls. You can also control the color depth, thus controlling the size of the printscreen.


       IDENTIFICATION               DIVISION.
       PROGRAM-ID. GUIPrintScreen.
       DATE-WRITTEN.  15-Apr-2005
      * Copyright (c) 1996-2006 by Acucorp, Inc.  Users of ACUCOBOL
      * may freely modify and redistribute this program.
       FILE-CONTROL.
       SELECT MatrixReport          ASSIGN TO PRINTER "-P SPOOLER"
           ORGANIZATION             IS LINE SEQUENTIAL.
       FILE SECTION.
       FD MatrixReport.
       01 MatrixRecord              PIC X(12).
       WORKING-STORAGE SECTION.
       COPY "ACUGUI.DEF".
       COPY "WINPRINT.DEF".
       COPY RESOURCE                "GTANIMA.BMP".
       77  LARGE-FONT               HANDLE OF FONT LARGE-FONT.
       77  SMALL-FONT               HANDLE OF FONT SMALL-FONT.
       77  PRTSCR-BMP               USAGE IS HANDLE.
       77  GT-BITMAP                PIC S9(9) COMP-4.
       01  COMBO-BOX-CHOICES.
           03      PIC X(20)        VALUE "Beets, Todd".
           03      PIC X(20)        VALUE "McCormley, Tim".
           03      PIC X(20)        VALUE "Zack, Randy".
           03      PIC X(20)        VALUE "Forseth, Gisle".
           03      PIC X(20)        VALUE "Coker, Drake".
           03      PIC X(20)        VALUE "Madison, Dawn".
           03      PIC X(20)        VALUE "Mooney, Kate".
           03      PIC X(20)        VALUE "Withey, Peter".
           03      PIC X(20)        VALUE "Cavanagh, Bob".
           03      PIC X(20)        VALUE "Wizard, Mr.".
       78  NUMBER-OF-COMBO-CHOICES  VALUE 10.
       01  COMBO-CHOICE REDEFINES   COMBO-BOX-CHOICES
           OCCURS NUMBER-OF-COMBO-CHOICES TIMES
           INDEXED BY COMBO-IDX     PIC X(20).
       77  INTRO-TEXT               PIC X(200) VALUE
           "This program demonstrates the look and feel of some of the g
      -    "raphical controls supported by ACUCOBOL-GT.  Use this progra
      -    "m as an introduction on how to program graphical controls.".
       77  CHECK-BOX-DATA               PIC 9 VALUE ZERO.
       77  RADIO-BUTTON-DATA            PIC 9 VALUE ZERO.
       77  ENTRY-DATA-1                 PIC X(10).
       77  ENTRY-TABLE OCCURS 20 TIMES  PIC X(70).
       77  COMBO-DATA                   PIC X(20).
       77  KEY-STATUS IS SPECIAL-NAMES  CRT STATUS PIC 9(4).
           88 EXIT-BUTTON-PUSHED        VALUE 13.
           88 PRINT-SCREEN-PUSHED       VALUE 102.
       SCREEN SECTION.
       01  SCREEN-1.
           03  LABEL                "ACUCOBOL-GT"
               LINE                 1.5
               COLUMN               21
               SIZE                 25
               FONT                 LARGE-FONT
               CENTER.
           03  BITMAP               GRAPHICAL
               BITMAP-HANDLE        = GT-BITMAP
               SIZE                 39
               BITMAP-START         = 1
               BITMAP-END           = 15
               BITMAP-TIMER         = 10
               LINE                 1.5
               COLUMN               57.
           03  FRAME                RIMMED
               FONT                 SMALL-FONT
               LINE                 4
               COLUMN               4
               SIZE                 32
               LINES                9.
           03  LABEL                INTRO-TEXT
               FONT                 SMALL-FONT
               LINE                 5
               COLUMN               5
               SIZE                 30
               LINES                7.
           03  LABEL                "&Entry field"
               LINE                 14
               COLUMN               5.
           03  ENTRY-FIELD          USING ENTRY-DATA-1
               COLUMN               + 2
               3-D.
           03  LABEL                "&Scrolling entry box"
               LINE                 + 3
               COLUMN               5
               CLINE                + 2.
           03  ENTRY-FIELD          USING MULTIPLE ENTRY-TABLE
               LINE                 + 1.5
               CLINE                + 1
               COLUMN               8
               SIZE                 50
               LINES                5
               MAX-LINES            = 20
               VSCROLL-BAR
               3-D
               NO-AUTOSEL
               USE-RETURN.
           03  CHECK-BOX            "&Check box" USING CHECK-BOX-DATA
               LINE                 5
               COLUMN               38.
           03  FRAME                LOWERED
               LINE                 + 1.5
               COLUMN               37
               LINES                3
               CSIZE                28
               SIZE                 26.
           03  RADIO-BUTTON         "Radio &1" USING RADIO-BUTTON-DATA
               LINE                 + 1
               COLUMN               38
               GROUP-VALUE          = 1.
           03  RADIO-BUTTON         "Radio &2" USING RADIO-BUTTON-DATA
               COLUMN               + 3
               GROUP-VALUE          = 2.
           03  LABEL                "&Drop-down box"
               LINE                 + 2.5
               COLUMN               38.
           03  COMBO-1              COMBO-BOX USING COMBO-DATA
               LINE                 + 1.5
               COLUMN               39
               LINES                5
               3-D.
           03  PUSH-BUTTON          "E&xit program"
               OK-BUTTON
               LINE                 25
               COLUMN               15
               SIZE                 13.
           03  PUSH-BUTTON          "&Print screen"
               LINE                 25
               COLUMN               40
               SIZE                 13
               TERMINATION-VALUE    102.

       PROCEDURE DIVISION.
       MAIN-LOGIC.
           CALL    "W$BITMAP"       USING
                   WBITMAP-LOAD     "GTANIMA.BMP"
                   GIVING           GT-BITMAP.
           DISPLAY STANDARD         GRAPHICAL WINDOW
                   TITLE            "Controls sample - Tour.cbl"
                   LINES            27
                   SIZE             66
                   BACKGROUND-LOW.
           DISPLAY SCREEN-1.
           MODIFY  COMBO-1          ITEM-TO-ADD = TABLE COMBO-CHOICE.
           PERFORM WITH TEST AFTER  UNTIL EXIT-BUTTON-PUSHED
                   ACCEPT           SCREEN-1
                   IF               PRINT-SCREEN-PUSHED
                                    PERFORM PRINT-SCREEN
                                    END-IF
           END-PERFORM.
           STOP RUN.
       PRINT-SCREEN.
      * Capture the active window, client area only, 8 bit colors:
           CALL    "W$BITMAP"       USING
                   WBITMAP-CAPTURE-IMAGE
                   "PRINTFORM.BMP"
                   0
                   1
                   8.
      *Open printer
           OPEN    OUTPUT           MATRIXREPORT.
      *Load bitmap
           CALL    "W$BITMAP"       USING
                   WBITMAP-LOAD
                   "PRINTFORM.BMP"
                   GIVING           PRTSCR-BMP.
      *Print bitmap
           INITIALIZE               WPRTDATA-PRINT-BITMAP.
           MOVE    PRTSCR-BMP       TO WPRTDATA-BITMAP.
           MOVE    2                TO WPRTDATA-BITMAP-ROW.
           MOVE    2                TO WPRTDATA-BITMAP-COL.
           MOVE    15               TO WPRTDATA-BITMAP-WIDTH.
           MOVE    12               TO WPRTDATA-BITMAP-HEIGHT.
           MOVE    WPRTBITMAP-SCALE-CENTIMETERS TO
                   WPRTDATA-BITMAP-FLAGS.
           CALL    "WIN$PRINTER"    USING
                   WINPRINT-PRINT-BITMAP
                   WINPRINT-DATA.
           CLOSE   MATRIXREPORT.
           DESTROY PRTSCR-BMP.
           EXIT PARAGRAPH.
0 Likes
Highlighted
Absent Member.
Absent Member.

RE: [archive] Capture screen

Thank you Gforseth for the answers, i'll test it. The library shows me an error when I call it in a 64 bits OS.
0 Likes
The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.