Hello community,

I posted here the message of a new AutoIt version. AutoIt includes a COM library, called AutoItX, with a subset of the AutoIt scripting language commands. So it is easy possible to control the frontend server. In my case I create inside ABAP a JPG picture with MSPaint and store it in the temporary directory automatically. Also it is uploaded and stored in MIME repository. With the AutoItX library it is absolut easy to control mouse, keyboard, window and process management. And on this way is it also absolut easy that ABAP controls the frontend server.

“-Begin—————————————————————–

  Program ZPIC2MIME.

    “-TypePools———————————————————

      Type-Pools OLE2.

    “-Variables———————————————————

      Data TempDir Type String.

      Data AutoItX Type OLE2_Object.

      Data Result Type i.

      Data FileName Type String.

      Data Cmd Type String.

      Data tabPicture Type Table Of TLINE.

      Data linePicture Like Line Of tabPicture.

      Data Picture Type XString.

      Data rif_MR_API Type Ref To if_mr_api.

      Data Url Type String Value ‘/sap/public/components/Test.jpg’.

      Field-Symbols <Picture> Type x.

    “-Main————————————————————–

      “-Get temporary directory—————————————–

        Call Method cl_gui_frontend_services=>get_temp_directory

            Changing TEMP_DIR = TempDir Exceptions Others = 1.

      Create Object AutoItX ‘AutoItX3.Control’.

      If sy-subrc = 0 And AutoItX-Handle > 0 And AutoItX-Type = ‘OLE2’.

        “-Set AutoItX option——————————————–

          Call Method Of AutoItX ‘Opt’

            Exporting

              #1 = ‘SendKeyDelay’

              #2 = 50.

        “-Start MSPAINT————————————————-

          Call Method Of AutoItX ‘Run’ = Result

            Exporting

              #1 = ‘mspaint.exe’

              #2 = TempDir

              #3 = 3. “SW_MAXIMIZE

          Call Method Of AutoItX ‘WinWait’ = Result

            Exporting

              #1 = ‘Unbenannt – Paint’.

        “-Set the size of the picture———————————–

          Cmd = ‘^w{RIGHT}{TAB}{TAB}{TAB}{SPACE}+{TAB}+{TAB}’ &&

            ‘640{TAB}480{ENTER}’.

          Call Method Of AutoItX ‘Send’

            Exporting

              #1 = Cmd.

        “-Painting——————————————————

          Call Method Of AutoItX ‘MouseMove’ Exporting #1 = 40 #2 = 180.

          Call Method Of AutoItX ‘MouseDown’ Exporting #1 = ‘left’.

          Call Method Of AutoItX ‘MouseMove’ Exporting #1 = 140 #2 = 180.

          Call Method Of AutoItX ‘MouseMove’ Exporting #1 = 140 #2 = 280.

          Call Method Of AutoItX ‘MouseMove’ Exporting #1 = 40 #2 = 280.

          Call Method Of AutoItX ‘MouseMove’ Exporting #1 = 40 #2 = 180.

          Call Method Of AutoItX ‘MouseUp’ Exporting #1 = ‘left’.

          Call Method Of AutoItX ‘MouseMove’ Exporting #1 = 60 #2 = 200.

          Call Method Of AutoItX ‘MouseDown’ Exporting #1 = ‘left’.

          Call Method Of AutoItX ‘MouseMove’ Exporting #1 = 160 #2 = 200.

          Call Method Of AutoItX ‘MouseMove’ Exporting #1 = 160 #2 = 300.

          Call Method Of AutoItX ‘MouseMove’ Exporting #1 = 60 #2 = 300.

          Call Method Of AutoItX ‘MouseMove’ Exporting #1 = 60 #2 = 200.

          Call Method Of AutoItX ‘MouseUp’ Exporting #1 = ‘left’.

        “-Save the picture———————————————-

          FileName = TempDir && ‘\Test.jpg’.

          Call Method cl_gui_frontend_services=>file_delete

              Exporting FILENAME = FileName Changing RC = Result

              Exceptions Others = 1.


          Call Method Of AutoItX ‘Send’

            Exporting

              #1 = ‘^s’.

          Call Method Of AutoItX ‘WinWait’ = Result

            Exporting

              #1 = ‘Speichern unter’.

          Cmd = ‘{TAB}j+{TAB}’ && TempDir && ‘\Test.jpg{ENTER}’.

          Call Method Of AutoItX ‘Send’

            Exporting

              #1 = Cmd.

        “-Quit MSPAINT————————————————–

          Call Method Of AutoItX ‘WinWait’ = Result

            Exporting

              #1 = ‘Test – Paint’.

          Call Method Of AutoItX ‘WinKill’ = Result

            Exporting

              #1 = ‘Test – Paint’.

        Free Object AutoItX.

        “-Upload the picture——————————————–

          Call Function ‘GUI_UPLOAD’

            Exporting

              FILENAME = FileName

              FILETYPE = ‘BIN’

            Tables

              DATA_TAB = tabPicture

            Exceptions

              Others = 1.

          Loop At tabPicture Into linePicture.

            Assign linePicture To <Picture> Casting.

            Concatenate Picture <Picture> Into Picture In Byte Mode.

          EndLoop.

        “-Picture to web repository————————————-

          If Picture <> ”.

            If rif_MR_API Is Initial.

              rif_MR_API = cl_mime_repository_api=>if_mr_api~get_api( ).

            EndIf.

            Call Method rif_MR_API->put

              Exporting

                i_url = Url

                i_content = Picture

                i_language = sy-langu

                i_suppress_package_dialog = ‘X’

                i_description = ‘Dies ist ein Test’

              Exceptions

                Others = 1.

          EndIf.

      EndIf.

“-End——————————————————————-

001.JPG

This is only a funny example but it shows impressively what is possible.

Enjoy it.

Cheers

Stefan

To report this post you need to login first.

Be the first to leave a comment

You must be Logged on to comment or reply to a post.

Leave a Reply