64-bit Programme mit dem SAP GUI für Windows ausführen

Immer mehr kommen 64-bit Programme im 64-bit Windows-Umfeld zum Einsatz. 32-bit Programme, manchmal auch mit der Extension x86 versehen, werden langsam aber sicher weniger. So stellte sich mir die Frage, ob es mit dem SAP GUI für Windows, der ja bekanntlich eine 32-bit Applikation ist, möglich ist auch x64-Programme zu starten. Um Programme auf dem Frontend-Server zu starten wird aus ABAP im Normalfall die Methode Execute der Klasse cl_gui_frontend_services verwendet. Diese Methode nutzt unter Windows native die API-Funktion ShellExecute und diese kann auch x64-Programme von einem 32-bit-Prozess starten, wie hier zu lesen ist. Also ist es kein Problem, und so ist es auch. Zum Testen habe ich den Editor notepad gestartet, wie im folgenden Code-Snippet zu sehen ist:

*-Begin-----------------------------------------------------------------
Program zExecuteTest.

  Data:
    lr_fe_serv Type Ref To CL_GUI_FRONTEND_SERVICES.

  Create Object lr_fe_serv.

  Check lr_fe_serv->Get_Platform( ) = 14.

  lr_fe_serv->Execute(
    Exporting

      "Das Verzeichnis Sysnative ist nur auf x64-Windows sichtbar und es
      "kann nur mit x86-Software darauf zugegriffen werden
      Application = '%windir%\Sysnative\notepad.exe'

      "Im Verzeichnis System32 sind alle x64 Applikationen zu finden
      "Application = '%windir%\System32\notepad.exe'

      "Im Verzeichnis SysWOW64 sind alle x86 Applicationen zu finden
      "Application = '%windir%\SysWOW64\notepad.exe'

    Exceptions
      CNTL_ERROR = 1
      ERROR_NO_GUI = 2
      BAD_PARAMETER = 3
      FILE_NOT_FOUND = 4
      PATH_NOT_FOUND = 5
      FILE_EXTENSION_UNKNOWN = 6
      ERROR_EXECUTE_FAILED = 7
      SYNCHRONOUS_FAILED = 8
      NOT_SUPPORTED_BY_GUI = 9
      Others = 10
    ).

    If sy-subrc <> 0.

    EndIf.

*-End-------------------------------------------------------------------

Nebenbei zeigt dieses Beispiel noch wie über das virtuelle System-Verzeichnis Sysnative auf Windows-eigene 64-bit Applikationen zugegriffen werden kann. Auf diesem Wege wird das automatische Redirectoring umgangen. Ein Versuch ein Programm direkt aus dem Verzeichnis System32 aufzurufen, wie in der auskommentierten Zeile zu sehen, funktioniert so nicht, da wird man automatisch zu SysWOW64 umgeleitet und der 32-bit Pendant wird verwendet. So steht der Nutzung von x64-Software im Kontext des SAP GUI für Windows nichts entgegen.

Letzte Artikel von Stefan Schnell (Alle anzeigen)