******************************************************************* *-----------------------------------------------------------------* * * * Copyright(c) by Bernd Riemke * * Riemke-IT Solutions * * An den Ruschen 27a * * D-28816 Stuhr * * * *-----------------------------------------------------------------* $SET Ans85 * * * WAS-LAEUFT.CBL Abfrage der momentan laufenden * -------------- Prozesse unter Windows * ------------------------------ * * * LETZTE ÄNDERUNG: * ================ * 01.01.2017 Bernd Riemke * - Angelegt * * * * *================================================================= IDENTIFICATION DIVISION. PROGRAM-ID. WAS-LAEUFT. AUTHOR. BERND RIEMKE. INSTALLATION. BERND RIEMKE. DATE-WRITTEN. 01-Januar-2017. DATE-COMPILED. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. CALL-CONVENTION 66 IS WINAPI DECIMAL-POINT IS COMMA. SOURCE-COMPUTER. IBM-PC-COMP. OBJECT-COMPUTER. IBM-PC-COMP. * INPUT-OUTPUT SECTION. *--------------------- * FILE-CONTROL. *------------- * DATA DIVISION. *============== * FILE SECTION. *------------- * WORKING-STORAGE SECTION. *------------------------ * 01 DWORD PIC S9(09) COMP-5 IS TYPEDEF. 01 INT PIC S9(09) COMP-5 IS TYPEDEF. 01 UINT PIC 9(09) COMP-5 IS TYPEDEF. 01 HWND USAGE DWORD IS TYPEDEF. 01 BOOL USAGE INT IS TYPEDEF. 01 API-BOOL USAGE BOOL. 01 API-INT USAGE INT. 01 ENUMFUNC PROCEDURE-POINTER. 01 WS-PARAM. 05 WS-PARAM-FUNKTION PIC X(10). 05 WS-PARAM-WIN-TITLE PIC X(255). 01 WINTEXT PIC X(255). 01 WINTEXT-LAENGE USAGE INT. 01 ZW-WIN-TITLE PIC X(254). 01 P-ZAEHLER PIC 9(04). 01 PROZESSE-TABELLE. 02 PROZ-TAB OCCURS 100. 03 PROZ-BEZ PIC X(256). LOCAL-STORAGE SECTION. 01 LS-BOOL USAGE BOOL. 01 ZS-PARAM. 05 ZS-PARAM-FUNKTION PIC X(10). 05 ZS-PARAM-WIN-TITLE PIC X(255). LINKAGE SECTION. *---------------- 01 LS-PARAM. 05 LS-PARAM-FUNKTION PIC X(10). 05 LS-PARAM-WIN-TITLE PIC X(254). 01 LS-HWND USAGE HWND. 01 PROZESS-LINKAGE. 02 PROZ-ZAEHLER PIC 9(04). 02 PROZESS-TABELLE. 03 PROZ-T-TAB OCCURS 100. 04 PROZESS-NAME PIC X(256). ******************************************************************* PROCEDURE DIVISION USING PROZESS-LINKAGE. INITIALIZE WS-PARAM, PROZESSE-TABELLE, P-ZAEHLER. CALL "COB32API". SET ENUMFUNC TO ENTRY "EnumWinProc". CALL WINAPI "EnumWindows" USING BY VALUE ENUMFUNC BY REFERENCE WS-PARAM RETURNING API-BOOL. MOVE P-ZAEHLER TO PROZ-ZAEHLER. MOVE PROZESSE-TABELLE TO PROZESS-TABELLE. EXIT PROGRAM. STOP RUN. ****************************************************************** ENTRY "EnumWinProc" WINAPI USING BY VALUE LS-HWND BY REFERENCE LS-PARAM. MOVE 1 TO LS-BOOL. MOVE LENGTH OF WINTEXT TO WINTEXT-LAENGE. MOVE LS-PARAM TO ZS-PARAM. CALL WINAPI "GetWindowTextA" USING BY VALUE LS-HWND BY REFERENCE WINTEXT BY VALUE WINTEXT-LAENGE RETURNING API-INT. IF API-INT > 1 UNSTRING WINTEXT DELIMITED BY X"00" INTO ZW-WIN-TITLE ADD 1 TO P-ZAEHLER MOVE ZW-WIN-TITLE TO PROZ-BEZ(P-ZAEHLER) END-IF. EXIT PROGRAM RETURNING LS-BOOL. ****************************************************************** ****************************************************************** ****************************************************************** ****************************************************************** ******************************************************************