Ver Mensaje Individual
  #5
Antiguo 28 de octubre de 2015, 23:43
Rapinto
Gran amigo del Foro
Guru de COBOL
Activista del Foro: Activista del Foro - Issue reason: ¡Gracias! Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por ayudar mucho a los foreros Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por saber demasiado! 
Última Actividad 29.01.2018 20:23
Posts Posts: 240
Likes enviados Enviados: 19
Likes recibidos Recibidos: 224

Gusaiello,

Não sei se AcuCobol pode fazer CALL ao kernel do Windows.
Se puder, este código (em Fujitsu Cobol) executa o que pretendes:

Código COBOL:
  1.  @OPTIONS NOALPHA
  2.  IDENTIFICATION DIVISION.
  3.  PROGRAM-ID.   EXECUTEPROGWAIT.
  4.  ENVIRONMENT DIVISION.
  5.  CONFIGURATION SECTION.
  6.  DATA DIVISION.
  7.  WORKING-STORAGE SECTION.
  8.  01 STARTUPINFO.
  9.       03   CB               PIC S9(009)    COMP-5.
  10.       03   LPRESERVED       PIC X(1024).
  11.       03   LPDESKTOP        PIC X(1024).
  12.       03   LPTITLE          PIC X(1024).
  13.       03   DWX              PIC S9(009)    COMP-5 VALUE ZERO.
  14.       03   DWY              PIC S9(009)    COMP-5 VALUE ZERO.
  15.       03   DWXSIZE          PIC S9(009)    COMP-5 VALUE ZERO.
  16.       03   DWYSIZE          PIC S9(009)    COMP-5 VALUE ZERO.
  17.       03   DWXCOUNTCHARS    PIC S9(009)    COMP-5 VALUE ZERO.
  18.       03   DWYCOUNTCHARS    PIC S9(009)    COMP-5 VALUE ZERO.
  19.       03   DWFILEATTRRIBUTE PIC S9(009)    COMP-5 VALUE ZERO.
  20.       03   DWFLAGS          PIC S9(009)    COMP-5 VALUE ZERO.
  21.       03   WSHOWWINDOW      PIC S9(005)    COMP-5 VALUE ZERO.
  22.       03   CBRESERVED2      PIC S9(005)    COMP-5 VALUE ZERO.
  23.       03   LPRESERVED2      PIC S9(009)    COMP-5 VALUE ZERO.
  24.       03   HSTDINPUT        PIC S9(009)    COMP-5 VALUE ZERO.
  25.       03   HSTDOUTPUT       PIC S9(009)    COMP-5 VALUE ZERO.
  26.       03   HSTDERROR        PIC S9(009)    COMP-5 VALUE ZERO.
  27. *
  28.  01  PROCESS-INFORMATION.
  29.       03   HPROCESS         PIC S9(009)    COMP-5 VALUE ZERO.
  30.       03   HTHREAD          PIC S9(009)    COMP-5 VALUE ZERO.
  31.       03   DWPROCESSID      PIC S9(009)    COMP-5 VALUE ZERO.
  32.       03   DWTHREADID       PIC S9(009)    COMP-5 VALUE ZERO.
  33. *
  34.  01  NORMAL-PRIORITY-CLASS  PIC S9(009)    COMP-5    VALUE 32.
  35.  01  INFINITE               PIC S9(009)    COMP-5    VALUE -1.
  36. *
  37.  01  LINHA                   PIC X(1024).
  38. *
  39.  01  STRNULL                 PIC X(1)            VALUE X"00".
  40.  01  STRZERO                 PIC X(001)          VALUE X"00".
  41.  01  STRUM                   PIC X(001)          VALUE "1".
  42.  01  RET                     PIC S9(009) COMP-5  VALUE 0.
  43.  
  44.  PROCEDURE DIVISION.
  45.  MAIN SECTION.
  46.  MAIN-00.
  47. *
  48.      MOVE "REGSVR32.EXE D:\RPS14_SRC\RELEASE\RPSKEYBOARD.DLL"     TO LINHA.
  49.      MOVE X"00"  TO LINHA(64:1).
  50.      MOVE 3143 TO CB.
  51.      CALL "CreateProcessA" WITH STDCALL USING
  52.                        BY VALUE      STRNULL
  53.                        BY REFERENCE  LINHA
  54.                        BY VALUE      STRZERO
  55.                        BY VALUE      STRZERO
  56.                        BY VALUE      STRUM  
  57.                        BY VALUE      NORMAL-PRIORITY-CLASS
  58.                        BY VALUE      STRZERO
  59.                        BY VALUE      STRNULL
  60.                        BY REFERENCE  STARTUPINFO
  61.                        BY REFERENCE  PROCESS-INFORMATION
  62.                RETURNING   RET.
  63.  
  64.      CALL "WaitForSingleObject" WITH STDCALL USING
  65.                        BY VALUE HPROCESS
  66.                        BY VALUE INFINITE.
  67.  
  68.  
  69.      CALL "TerminateProcess" WITH STDCALL USING
  70.                        BY VALUE HPROCESS
  71.                        BY VALUE      STRZERO.
  72.  
  73.      CALL "CloseHandle" WITH STDCALL USING
  74.                        BY VALUE HTHREAD.
  75.      CALL "CloseHandle" WITH STDCALL USING
  76.                        BY VALUE HPROCESS.
  77.  MAIN-95.
  78.  MAIN-99.
  79.      EXIT.
  80.  END PROGRAM EXECUTEPROGWAIT.  

Este exemplo chame o "regsvr32.exe" para registar uma DLL.

Un saludo,
Rui Pinto
Rapinto is offline   Responder Con Cita