Skip to Content

Hello community,

over two years ago I presented here the lite version of Scripting Tracker. Scripting Tracker is a utility and a replacement to the SAP GUI Scripting Development Tools. It is a SAP GUI analyzer and recorder on SAP GUI Scripting base. Now I decided to make all features of Scripting Tracker free available. In this case it means that the recording module is also free available from now.

/wp-content/uploads/2014/11/tracker001_589353.jpg

The analyzer shows a clearly arranged tree with all SAP sessions and its scripting objects. Also it shows for each scripting object, after the selection in the tree with a single mouse click, a lot of technical details like e.g. ID, position etc.

/wp-content/uploads/2014/11/tracker002_589361.jpg

With the recorder the program offers the possibility to record, edit and execute your SAP GUI activities in PowerShell, Visual Basic or AutoIt script language. E.g. with the + button you enriches the source with information comment lines about the transaction, title, dynpro – program name and screen number – and the session number. With Scripting Tracker you have full visual control about the creating code, now it couldn’t be easier to use SAP GUI Scripting.

/wp-content/uploads/2014/11/tracker004_999384.jpg

You can find Scripting Tracker here.

2017/03/31 Update 3.15 of Scripting Tracker is available

  • Implementation of Java™ code recording
    More and more is the SAP GUI for Windows not longer the primary UI for the user activities in the context of SAP. With the perspective of UI5 and START I implement the Java™ code recording possibility, to offer an integration with other UI technologies e.g. via Selenium.
    Hint: To use SAP GUI Scripting in the context of Java™ you need the Java COM Bridge (JACOB).
  • Hint: After four years I decided to stop the further development of Scripting Tracker. It is available in the near future, but no newer versions.

2016/12/13 Update 3.11 of Scripting Tracker is available

  • Implementation of a ROT viewer

2016/10/02 Update 3.10 of Scripting Tracker is available

  • Removal of VBScript control, because the relevance is insignificant now and the possibilities are limited. Use instead Windows Scripting Host (WSH) with VBScript.
  • For such reasons removal of VBScript debugging via WSH.
  • PowerShell is now the major language.
  • Scripting Tracker uses now UTF-8 as standard.
  • Codepage additions for Windows Scripting Host (WSH), because WSH is not able to use UTF-8 encoded files.

2016/07/20 Update 3.00 of Scripting Tracker is available

  • Implemetation of an object browser which shows the classes, methods, properties, enumerations and constants of the SAP GUI Scripting API
  • Minor changes

2016/03/12 Update 2.30 of Scripting Tracker is available

  • Complete redesign of the recorder module
  • Native PowerShell code generation

2016/02/25 Update 2.23 of Scripting Tracker is available

  • Help file return to CHM format
  • Minor changes

2015/10/24 Update 2.22 of Scripting Tracker is available

  • Actualization of the recorder module to GUI 7.40
  • Minor bug fixing

2015/09/05 Update 2.20 of Scripting Tracker is available

  • Add the Comparator tab, to compare screens with its elements and find differences between them easily.
  • Disable the possibility to export list of screen elements as CSV file.

2015/03/29 Update 2.12 of Scripting Tracker is available

  • Integration of AutoIt recorder now possible
  • Add the possibility to save a complete source file via shift and save button
  • Disable support of MiniRobot, because it has no relevance
  • Minor bug fixing

Comments are welcome.

Cheers
Stefan

To report this post you need to login first.

25 Comments

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

  1. Adelina Pechard

    Thank you Stefan for all your work. Its very powerful tool and useful tool.

    I actually have a question for you, which scripting language do you think is best to use for recording SAPGUI transaction/activities?

    -Adelina

    (0) 
    1. Stefan Schnell Post author

      Hello Adelina,

      thanks for your reply.

      Your question is not easy to answer, because it depends from the perspective I think.

      • VBScript is very common and offers a very good COM integration.
      • AutoIt offers very powerful commands for the UI.
      • PowerShell offers a very good dotNet and OS integration.
      • MiniRobot offers an effective mnemonic syntax with powerful commands to control the UI.

      I mean each language has advantages and disadvantages. Take your language decision in dependent to your problem or mix the languages and take the best from each of them.

      My list of favorites is

      1. VBScript – for easy examples and fast developments
      2. AutoIt and PowerShell – for complex developments with UI and OS or dotNet integration
      3. MiniRobot – for special cases

      Hope my explanation helps a little bit for your decision.

      Cheers

      Stefan

      (0) 
      1. Leonard Reaves

        Hello Stefan,

        I discovered your videos about the Scripting Tracker and SAP’s ability to automate using vbscript a few weeks ago. Thank you so much!!! You have been the answer to my prayers. I’ve been working diligently (10hrs per day) trying to automate the VA01 sales order process ever since learning about these tools.

        Reading through all the SAP forums Online has been extremely helpful and I’m almost at the finish line. The only remaining part where I’m completely lost is the scroll bar (GuiTableControl)

        I read through yours and Sayuti’s examples on this topic and tried every combination over and over and still cannot place more than 16 rows of data in the SAP table before it crashes and we sometimes receive sales orders that require up to 99 rows!

        (16 rows are what is visible before moving the scroll bar.) Am I missing a step from your instructions? Do I need to declare an Object that activates the scrollbar?

        I should also note that the scroll bar doesn’t even appear until after at least one line item and quantity is placed on a row and you press enter. Is there a way around this? Ideally I would love to just open SAP and have the Scrollbar available already.

        I replied to one of Sayuti’s threads about this…but since the thread was answered a couple years ago…not sure if he can see it. I really need your guidance on this one…I’m sleep deprived and stressed out.

        VA01.jpg

        The photo above is the table I’m using. Notice: there is no scroll bar and there are 16 visible rows.

        Below is my code. I used the example from the thread “VA02 Sales Order Automation” http://scn.sap.com/thread/3437497 but it does not work for me. I should also note TotalRow and VisibleRow both = 16 So my BlankRow is always = 0. Thanks a TON!!!

        If Not IsObject(application) Then

              Set SapGuiAuto = GetObject(“SAPGUI”)

              Set application = SapGuiAuto.GetScriptingEngine

            End If

            If Not IsObject(connection) Then

              Set connection = application.Children(0)

            End If

            If Not IsObject(session) Then

              Set session = connection.Children(0)

            End If

            If IsObject(WScript) Then

              WScript.ConnectObject session, “on”

              WScript.ConnectObject application, “on”

            End If

        Dim SapGuiApp, Connection, Session, FileObject, oFile, Counter

        Dim ApplicationPath, CredentialsPath, ServerPath, FilePath

        Dim ExcelApp, ExcelWorkbook, ExcelSheet

        Dim sRow, eRow, J

        Dim BlankRow, TotalRow, VisibleRow, Scroll

        Set ExcelApp = CreateObject(“Excel.Application”)

        Set ExcelWorkbook = ExcelApp.Workbooks.Open(“C:\Personal\01654\Desktop\SAP Automation\TestOrder00.xlsx”)

        Set ExcelSheet = ExcelWorkbook.Worksheets(1)

        eRow = 1

        session.findById(“wnd[0]”).maximize

        session.findById(“wnd[0]/tbar[0]/okcd”).text = “VA01”

        session.findById(“wnd[0]”).sendVKey 0

        session.findById(“wnd[0]/usr/ctxtVBAK-AUART”).text = “ZWO”

        session.findById(“wnd[0]/usr/ctxtVBAK-VTWEG”).text = “10”

        session.findById(“wnd[0]/usr/ctxtVBAK-VTWEG”).setFocus

        session.findById(“wnd[0]/usr/ctxtVBAK-VTWEG”).caretPosition = 2

        session.findById(“wnd[0]”).sendVKey 0

        session.findById(“wnd[0]/usr/subSUBSCREEN_HEADER:SAPMV45A:4021/txtVBKD-BSTKD”).text = ExcelSheet.Range(“F5”).value

        session.findById(“wnd[0]/usr/subSUBSCREEN_HEADER:SAPMV45A:4021/subPART-SUB:SAPMV45A:4701/ctxtKUAGV-KUNNR”).text = ExcelSheet.Range(“F4”).value

        session.findById(“wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\02/ssubSUBSCREEN_BODY:SAPMV45A:4401/ctxtRV45A-KETDAT”).text = ExcelSheet.Range(“F6”).value

        session.findById(“wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\02/ssubSUBSCREEN_BODY:SAPMV45A:4401/ctxtRV45A-DWERK”).text = ExcelSheet.Range(“F7”).value

        session.findById(“wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\02/ssubSUBSCREEN_BODY:SAPMV45A:4401/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG”).VerticalScrollbar.position = 0

        TotalRow = session.findById(“wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\02/ssubSUBSCREEN_BODY:SAPMV45A:4401/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG”).RowCount

        VisibleRow = session.findById(“wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\02/ssubSUBSCREEN_BODY:SAPMV45A:4401/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG”).VisibleRowCount

        BlankRow = TotalRow – VisibleRow

        If BlankRow > VisibleRow Then

          Scroll = BlankRow – VisibleRow + 1

          sRow = VisibleRow – 1

              

              Else

                Scroll = 0

                sRow = BlankRow

        End If

        For J = 1 To 30

        session.findById(“wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\02/ssubSUBSCREEN_BODY:SAPMV45A:4401/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG”).VerticalScrollbar.position = Scroll

        session.findById(“wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\02/ssubSUBSCREEN_BODY:SAPMV45A:4401/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG/ctxtRV45A-MABNR[1,”& sRow & “]”).text = ExcelSheet.Cells(eRow, 2)

        session.findById(“wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\02/ssubSUBSCREEN_BODY:SAPMV45A:4401/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG/txtRV45A-KWMENG[2,”& sRow & “]”).text = ExcelSheet.Cells(eRow, 1)

        eRow = eRow + 1

        sRow = sRow + 1

        Next

        (0) 
        1. Stefan Schnell Post author

          Hello Leonard,

          thanks for your reply about Scripting Tracker.

          If I could really help you, I would, but I have no access to a system which offers VA02 functionality completely. In my company we have our own namespaces and we develop special health insurance solutions as add-on on the SAP standard – no SD-SLS. So I can give you only untested advices.

          Anyway, I hope I can help you – as best I can.

          I look for a similar, from the behavior, transaction and I found SR13 (Setting Variants for Help). The table object offers in my case 21 lines and after 21 lines of adding new entries, via SAP GUI Scripting, I get an error. So I check out, what to do if I do the same activity manually and I recorded it. With this knowledge I create an SAP GUI Script like this:

          For j = 1 To 4

            For i = 0 To 15

              session.findById(“txtSADM2D-NAME[0,” + CStr(i) + “]”).text = “HUGO” + CStr(i + i * j)

              session.findById(“ctxtSADM2D-PLATFORM[1,” + CStr(i) + “]”).text = “NONE”

              session.findById(“ctxtSADM2D-AREA[2,” + CStr(i) + “]”).text = “IWBTRAIN”

              session.findById(“ctxtSADM2D-SHLPLANG[4,” + CStr(i) + “]”).text = “DE”

              If (i Mod 16 = 0) And (i <> 0) Then

                session.findById(“wnd[0]/tbar[0]/btn[11]”).press

                session.findById(“wnd[1]/tbar[0]/btn[0]”).press

                session.findById(“wnd[0]/tbar[1]/btn[2]”).press

                session.findById(“wnd[0]/tbar[1]/btn[16]”).press

                session.findById(“wnd[1]/tbar[0]/btn[0]”).press

                session.findById(“wnd[0]/tbar[1]/btn[6]”).press

              End If

            Next

          Next

          I add 64 entries in four blocks á 16 entries and after a 16 entries block I save the new entries on a transport.

          My tip for you is: Look what you do manually if your customer send an order with more than 16 entries and do the same with your SAP GUI Scripting program. Break your oders into parts and proceed it step by step, or block by block.

          Sorry for my abstract approach, but it is all I can say about it.

          Cheers

          Stefan

          (0) 
  2. Deepak Kalra

    Hi Stefan,

    Scripting tracker is very good tool..!! Thanks for sharing it.

    I have a small problem here, hope you can explain it to me.

    When I use recorder part of tool and try to save some part where a dialog box pops up – “SAVE AS LOCAL” that part is not getting recorded by tool.

    Below is my small example.

    session.findById(“wnd[0]”).maximize

    session.findById(“wnd[0]/tbar[0]/okcd”).text = “/nstrustsso2”

    session.findById(“wnd[0]”).sendVKey 0

    session.findById(“wnd[0]/shellcont/shell”).selectedNode = “SSLSDFAULT”

    session.findById(“wnd[0]/shellcont/shell”).doubleClickNode “SSLSDFAULT”

    session.findById(“wnd[0]/shellcont/shell”).doubleClickNode “SSLSDFAULT”

    session.findById(“wnd[0]/usr/txtPSE-OWNCERT-SUBJECT”).setFocus

    session.findById(“wnd[0]/usr/txtPSE-OWNCERT-SUBJECT”).caretPosition = 2

    session.findById(“wnd[0]”).sendVKey 2

    session.findById(“wnd[0]/usr/btnREQUEST”).press

    Once this part runs there is a button on top extreme right “save as local file” and functionality after that is not getting captured in tool.

    What I m trying to do here is to save that file to local dekstop – so that when ever script runs it generates the file always on my dekstop.

    Waiting for your expert suggestions.

    Regards

    Deepak

    (0) 
    1. Stefan Schnell Post author

      Hello Deepak,

      welcome in this forum and thanks for your request.

      The SSO dialog is in the main thing a text edit control and the toolbar is part of this control. As far as I know it is not possible to record activities of this toolbar via SAP GUI Scripting.

      /wp-content/uploads/2015/03/ss0_672363.jpg

      Tip: Take a look at AutoIt, and you can try this:

      $session.findById("wnd[0]/tbar[0]/okcd").text = "/nstrustsso2"
      $session.findById("wnd[0]").sendVKey(0)
      $session.findById("wnd[0]/shellcont/shell").selectedNode = "SSLSDFAULT"
      $session.findById("wnd[0]/shellcont/shell").doubleClickNode("SSLSDFAULT")
      $session.findById("wnd[0]/usr/btnREQUEST").press()
      
      WinWait("Zertifikatsanforderung", "Control  Container", 5)
      Local $WinPos = WinGetPos("Zertifikatsanforderung")
      MouseClick("left", $WinPos[0] + 225, $WinPos[1] + 45, 1)
      WinWait("Speichern unter","Speichern &in:")
      Send("{ALTDOWN}n{ALTUP}test.txt{ALTDOWN}s{ALTUP}")
      

      Scripting Tracker supports AutoIt, so you can combine activities via SAP GUI Scripting and AutoIt recorder very easily. AutoIt is a powerful scripting language and in combination with SAP GUI Scripting you can nearly do what you want.

      Cheers

      Stefan

      (0) 
      1. Deepak Kalra

        Hi Stefan,

        Many thanks for your reply, you made me learn more about scripting today.

        What I tried today is below

        Tried to code sap part as VB script by scripting tracker tool:

        session.findById(“wnd[0]/tbar[0]/okcd”).text = “/nstrustsso2”

        session.findById(“wnd[0]”).sendVKey 0

        session.findById(“wnd[0]/shellcont/shell”).selectedNode = “SSLSDFAULT”

        session.findById(“wnd[0]/shellcont/shell”).doubleClickNode “SSLSDFAULT”

        session.findById(“wnd[0]/usr/txtPSE-OWNCERT-SUBJECT”).setFocus

        session.findById(“wnd[0]/usr/txtPSE-OWNCERT-SUBJECT”).caretPosition = 2

        session.findById(“wnd[0]”).sendVKey 2

        session.findById(“wnd[0]/usr/btnREQUEST”).press

        session.findById(“wnd[1]/usr/cntlTEXTEDITCTRL/shellcont/shell”).setSelectionIndexes 42, 42

        And remaining part which was not getting captured earlier captured it by autoit and got below.

        WinWaitActivate(“Certificate Request”,””)

        MouseClick(“left”,222,37,1)

        WinWaitActivate(“Save As”,””)

        MouseClick(“left”,51,225,1)

        MouseClick(“left”,49,141,1)

        MouseClick(“left”,231,359,1)

        Send(“jgdjgd.txt”)

        MouseClick(“left”,516,360,1)

        WinWaitActivate(“Certificate Request”,””)

        MouseClick(“left”,546,588,1)

        But now I have a quick question again: I tried to put both the code in sequence in single VBS script but still it didn’t worked – got error as invalid character and some compilations error

        Advice if autoit code can be used in scripter tracker ??

        Regards

        Deepak

        (0) 
        1. Stefan Schnell Post author

          Hello Deepak,

          AutoIt is an own scripting language, it is not part of Windows, you can find it here. You must download it and install them explicite.

          It is not really possible to mix VBScript and AutoIt in one script, so use one of them.

          Now a short description how to use AutoIt with Scripting Tracker:

          1. Download and install AutoIt.
          2. Configure the Tracker.ini: Set AutoIt and AutoItRecorder entry in the ScriptingEngine section. E.g.:
            AutoIt = C:\Language\AutoIt\AutoIt3.exe
            AutoItRecorder = C:\Language\AutoIt\Au3Record.exe
          3. Now, if you start Scripting Tracker, you see additional AutoIt buttons.
            001.JPG
          4. Press the toggle button “Use AutoIt Script”
            002.JPG
          5. From this point Scripting Tracker records your SAP GUI activities in the AutoIt scripting language and you can expand your code with the possibilities of AutoIt.


          If you look at my code above you see the $ sign before session, this means it is an AutoIt variable and this code doesn’t work with VBScript.


          Let us know your results.


          Cheers

          Stefan


          (0) 
          1. Deepak Kalra

            Hi Stefan,

            Below are my results.

            1) I thought that scripting tracker with new “use autoit script” will record the “save as” local part of screen, but its also not capturing the same.

            2) So I tried to this way
                      a) Captured SAP part with “use autoit script”

                      b) Captured “save as local” part with autoit recorder part.

                      c) Combined them in one single script just like you said and used “playback                script” but I got an error msg in that too. Error.jpg

            Combined script

            $session.findById(“wnd[0]”).resizeWorkingPane(98, 17, 0)
            $session.findById(“wnd[0]/tbar[0]/okcd”).text = “/nstrustsso2”
            $session.findById(“wnd[0]”).sendVKey(0)
            $session.findById(“wnd[0]/shellcont/shell”).selectedNode = “SSLSDFAULT”
            $session.findById(“wnd[0]/shellcont/shell”).doubleClickNode(“SSLSDFAULT”)
            $session.findById(“wnd[0]/usr/btnREQUEST”).press()

            WinWaitActivate(“Certificate Request”,”Control  Container”)
            MouseClick(“left”,225,45,1)
            WinWaitActivate(“Save As”,”Save as &type:”)
            MouseClick(“left”,48,148,1)
            Send(“certificate.txt”)
            MouseClick(“left”,495,364,1)
            WinWaitActivate(“Certificate Request”,”Control  Container”)
            MouseClick(“left”,548,584,1)

            3) Apart from this: I did noticed one more small problem with “use autoid script” tab.

            Problem is when script is recorded and playback – it works fine but

            When I save it on local machine and try to run it it gives another error like “variable used without been declared” this I do not see if I do same for VB script.

            Regards

            Deepak

            (0) 
            1. Stefan Schnell Post author

              Hello Deepak,

              it seems that the AutoIt recorder uses old commands, change WinWaitActivate to WinWait and all will work well.

              You are right, it seems to be a bug in the save routine, you need the following header to execute the AutoIt script correct – thanks for your hint.

              Dim $SAPROT, $SapGuiAuto, $application, $connection, $session
              
              $SAPROT = ObjCreate("SapROTWr.SapROTWrapper")
              If Not IsObj($SAPROT) Then
                Exit
              EndIf
              
              $SapGuiAuto = $SAPROT.GetROTEntry("SAPGUI")
              If Not IsObj($SapGuiAuto) Then
                Exit
              EndIf
              
              $application = $SapGuiAuto.GetScriptingEngine()
              If Not IsObj($application) Then
                Exit
              EndIf
              
              $connection = $application.Children(0)
              If Not IsObj($connection) Then
                Exit
              EndIf
              
              $session = $connection.Children(0)
              If Not IsObj($session) Then
                Exit
              EndIf
              

              And after this code follows your code and all should be run well – I hope.

              Cheers

              Stefan

              (0) 
              1. Deepak Kalra

                Hi Stefan,

                Made changes and did playback but still not working perfect as needed

                $session.findById(“wnd[0]”).maximize()

                $session.findById(“wnd[0]/tbar[0]/okcd”).text = “/n”

                $session.findById(“wnd[0]”).sendVKey(0)

                $session.findById(“wnd[0]/tbar[0]/okcd”).text = “/nstrustsso2”

                $session.findById(“wnd[0]”).sendVKey(0)

                $session.findById(“wnd[0]/shellcont/shell”).selectedNode = “SSLSDFAULT”

                $session.findById(“wnd[0]/shellcont/shell”).doubleClickNode(“SSLSDFAULT”)

                $session.findById(“wnd[0]/usr/btnREQUEST”).press()

                WinWait(“Certificate Request”,””)

                MouseClick(“left”,280,13,1)

                MouseClick(“left”,223,46,1)

                WinWait(“Save As”,””)

                Send(“ttt.txt”)

                MouseClick(“left”,508,364,1)

                To me it looks like once the autoit rec. script comes to action things starts getting messing up and didn’t work as expected.(Local save as window opens and never save it as expected)

                If you have time – give a shot and try above code or create simillar situation(you know my req.) and try play back.

                Regards

                Deepak

                (0) 
                1. Stefan Schnell Post author

                  Hello Deepak,

                  here the complete code:

                  ;-Begin-----------------------------------------------------------------
                  
                    ;-Directives----------------------------------------------------------
                      AutoItSetOption("MustDeclareVars", 1)
                  
                    ;-Includes------------------------------------------------------------
                      #Include
                    ;-Global Variables----------------------------------------------------
                      Dim $SAPROT, $SapGuiAuto, $application, $connection, $session
                  
                    ;-Main----------------------------------------------------------------
                      $SAPROT = ObjCreate("SapROTWr.SAPROTWrapper")
                      If Not IsObj($SAPROT) Then
                        Exit
                      EndIf
                  
                      $SapGuiAuto = $SAPROT.GetROTEntry("SAPGUI")
                      If Not IsObj($SapGuiAuto) Then
                        Exit
                      EndIf
                  
                      $application = $SapGuiAuto.GetScriptingEngine()
                      If Not IsObj($application) Then
                        Exit
                      EndIf
                  
                      $connection = $application.Children(0)
                      If Not IsObj($connection) Then
                        Exit
                      EndIf
                  
                      $session = $connection.Children(0)
                      If Not IsObj($session) Then
                        Exit
                      EndIf
                  
                      $session.findById("wnd[0]/tbar[0]/okcd").text = "/n"
                      $session.findById("wnd[0]").sendVKey(0)
                      $session.findById("wnd[0]/tbar[0]/okcd").text = "/nstrustsso2"
                      $session.findById("wnd[0]").sendVKey(0)
                      $session.findById("wnd[0]/shellcont/shell").selectedNode = "SSLSDFAULT"
                      $session.findById("wnd[0]/shellcont/shell").doubleClickNode("SSLSDFAULT")
                      $session.findById("wnd[0]/usr/btnREQUEST").press()
                  
                      WinWait("Zertifikatsanforderung", "")
                      ;WinWait("Certificate Request", "")
                  
                      Local $hWnd = WinGetHandle("Zertifikatsanforderung")
                      ;Local $hWnd = WinGetHandle("Certificate Request")
                      _WinAPI_SetForegroundWindow($hWnd)
                  
                      Local $WinPos = WinGetPos("Zertifikatsanforderung")
                      ;Local $WinPos = WinGetPos("Certificate Request")
                      MouseClick("left", $WinPos[0] + 225, $WinPos[1] + 45, 1)
                  
                      WinWait("Speichern unter", "")
                      ;WinWait("Save As", "")
                      Send("{ALTDOWN}n{ALTUP}test.txt{ALTDOWN}s{ALTUP}")
                      ;Check the correct keys for your dialog
                  
                  ;-End-------------------------------------------------------------------
                  

                  Your code is commented because I have another language version.

                  Cheers

                  Stefan

                  (0) 
                  1. Deepak Kalra

                    Hi Stefan,

                    Many thanks..!! Works good.

                    But I would like to learn this stuff…atleast this one as its small and basic.

                    Please let me know how you get this code and if its done by you please explain and how to get this.

                    Mine:

                    WinWait(“Certificate Request”,””)
                    MouseClick(“left”,280,13,1)
                    MouseClick(“left”,223,46,1)
                    WinWait(“Save As”,””)
                    Send(“ttt.txt”)
                    MouseClick(“left”,508,364,1)

                    Yours:

                    WinWait(“Certificate Request”, “”)
                    Local $hWnd = WinGetHandle(“Certificate Request”)
                    Local $WinPos = WinGetPos(“Certificate Request”)
                    MouseClick(“left”, $WinPos[0] + 225, $WinPos[1] + 45, 1)
                    WinWait(“Save As”, “”)
                    Send(“{ALTDOWN}n{ALTUP}test.txt{ALTDOWN}s{ALTUP}”)

                    Regards

                    Deepak

                    (0) 
                    1. Stefan Schnell Post author

                      Hello Deepak,

                      thank your very much 🙂

                      It is not so easy to explain, how to get this code, it is experience on the one hand and as well as trial and error on the other. What I can advise you to learn a programming language is to try, try and try again. It is important to never give up and to involve the community, with questions and with your experience, to give tips and answers.

                      Cheers

                      Stefan

                      (0) 
                      1. Deepak Kalra

                        Hi Stefan,

                        Thanks..!! and it was nice talking to you always 🙂

                        Kind words and thanks for motivation too.

                        Seriouly last 3 days I have learned so manything on scripting and I’ll try to keep my learning graph curve up.

                        Regards

                        Deepak

                        (0) 
  3. Stefan Schnell Post author

    Hello community,

    I check the actual release of Scripting Tracker in the context of Windows 10 x64 and it works well and as expected.

    001.JPG

    Enjoy it.

    Cheers

    Stefan

    P.S. Scripting Tracker is now over 3 years available – at first as light version and later the full version. 🙂

    (0) 
  4. marcio _vr

    Hello Stefan,

    First I would like to congratulate you for the excellent application “Tracker”.

    In short time of use could already get good results, thank you.

    But today when trying to write a script I’m not identify the name of the vertical scroll bar on the transaction QM02, could you help me please.

    Thank you.

    (0) 
    1. Stefan Schnell Post author

      Hello Helge,

      thank you very much for your reply. I checked the access to my website via my company account and it works without any problems. I download Scripting Tracker and check the sha256-sum and all works correct. Please try it again and let me know your results.

      Thanks and best regards
      Stefan

      (0) 

Leave a Reply