Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Fujitsu COBOL PowerCOBOL (ActiveX, v4 - v11)
PowerCOBOL (ActiveX, v4 - v11) Versiones del IDE basadas en ActiveX
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Sintaxis] CALL a programas externos en Windows 8 Gusaiello AcuCobol 9 15 de marzo de 2023 20:23
[Sintaxis] Llamada a Advapi32.lib Josber PowerCOBOL y WinAPI 24 24 de octubre de 2022 09:58
[Duda] Rutas con Google Maps... Fito PowerCOBOL (ActiveX, v4 - v11) 1 24 de junio de 2019 19:00
[Componente] Excel y diferentes sheets Breew PowerCOBOL (ActiveX, v4 - v11) 3 8 de noviembre de 2015 20:39

Respuesta

  #1
Antiguo 18 de enero de 2025, 22:45
orlando
Forero Junior
Última Actividad 29.01.2025 23:57
Posts Posts: 42
Likes enviados Enviados: 24
Likes recibidos Recibidos: 2
Pregunta Llamada a programas externos con rutas diferentes
0 Inactivo Inactivo

buena tarde

Alguien me da una mano tengo programas win10 que llaman a paint y excel ..pero
por ejemplo en paint seria cambia ruta y compilarlo con ruta de el usuario ej pepe ver archivo p

Código:
c:\users\pepe\AppData\Local\mspaint.exe D:\odog\0000000000001.bmp
pero

esto me llevaria a compilar por cada usuario....no se si alguien ya lo ha hecho .......pero
con una sola ruta...para dejar algo general y ahorrar trabajo-.............

por otro lado

tengo excel ver archivos e y e1.....pero no se como seria.....
pero ,,,no se dejaron subir solo archivo p
muy amables recibo ideas
orlando is offline   Responder Con Cita
  #2
Antiguo 19 de enero de 2025, 02:09
Kuk
Administrador
Última Actividad 21.09.2026 18:24
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@orlando, para qué indicas la ruta completa?

Estos programas siempre están en la variable de entorno PATH. Por consiguiente, no necesitas indicar la ruta, solo el nombre del programa.

---------- Post added at 02:09 ---------- Previous post was at 02:07 ----------

A las malas, podrías configurar un fichero plano que se lee por tu programa, donde en cada cliente indicarías la ruta, y ya está.

No sé para qué te complicas tanto



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #3
Antiguo 19 de enero de 2025, 13:58
orlando
Forero Junior
Última Actividad 29.01.2025 23:57
Posts Posts: 42
Likes enviados Enviados: 24
Likes recibidos Recibidos: 2
Predeterminado llamadas a programas externos con rutas diferentes
0 Inactivo Inactivo

cordial saludo

el problema es que cuando ejecuto el programa en win 11 no funciona pero en win 10 si.....es por eso que de pronto

si tu o alguien me pudiera indicar ....que hacer ....envio 2 archivos de los errores en win 11
er1 y er2 y e y e1....que me faltaron en el post
pues por alguna razon no me permitio hacerlo

muy amable por su colaboracion
orlando is offline   Responder Con Cita
  #4
Antiguo 19 de enero de 2025, 18:47
Kuk
Administrador
Última Actividad 21.09.2026 18:24
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@orlando, ya te he respondido en mi post anterior, intenta llamar Excel y Paint sin ruta completa, solo por el nombre del EXE.

Si sigue sin funcionar (cosa que me extrañaría), crea un fichero nuevo de texto, y léelo cuando arranca tu programa, así tendrás la ruta de cada programa que te interesa en cada cliente, sin necesidad de recompilar el programa.
Meter parámetros en ficheros es lo típico, por qué no hacerlo también con tu problema.

Pruébalo y nos cuentas.



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #5
Antiguo 19 de enero de 2025, 19:48
JCantero
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros 
Última Actividad 02.09.2026 00:15
Posts Posts: 442
Likes enviados Enviados: 167
Likes recibidos Recibidos: 269

@orlando, prueba con esto.

Yo siempre lo hago asi. Usando start que ve la información en el registro y es independiente de la version de windows


para paint --> start mspaint.exe

para excel --> start excel


en tu caso:
Código:
start mspaint.exe D:\odog\0000000000001.bmp

Última edición por JCantero fecha: 19 de enero de 2025 a las 19:53.
JCantero is offline   Responder Con Cita
  #6
Antiguo 19 de enero de 2025, 20:11
orlando
Forero Junior
Última Actividad 29.01.2025 23:57
Posts Posts: 42
Likes enviados Enviados: 24
Likes recibidos Recibidos: 2

cordial saludo

ok lo hare con el start y les comento

muy amable por tu ayuda
orlando is offline   Responder Con Cita
  #7
Antiguo 20 de enero de 2025, 00:23
Kuk
Administrador
Última Actividad 21.09.2026 18:24
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@orlando, también tienes esta opción, que abrira cualquier fichero con su programa asociado en el SO: Abrir documento Word - COBOL Foro



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #8
Antiguo 20 de enero de 2025, 01:17
orlando
Forero Junior
Última Actividad 29.01.2025 23:57
Posts Posts: 42
Likes enviados Enviados: 24
Likes recibidos Recibidos: 2

cordial saludo

intente con lo que me dice amigo jcantero....

en paint

me dice que falta como una declaracion ...no conozco bien la syntaxis
por lo cual le solicito una mano..
anexo 2 archivos intepaint y errorintepaint

ahora bien en excel
la verdad en esto me ayudo hace mucho tiempo...... el, amigo ROGER (Dios lo guarde) se definio un archivo de excel y se utilizo unas variables globales...
y hay unas funciones de movimiento en celdas conformando el archivo estas imagino quedarian y todo lo del archivo excel lo
descartaria anexo 2 archivos de principio y final de programa itexnicio y intexfin
a ver como podrian ayudar
muy amable toda su colaboracion
@JCantero,
orlando is offline   Responder Con Cita
  #9
Antiguo 20 de enero de 2025, 09:40
Kuk
Administrador
Última Actividad 21.09.2026 18:24
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@orlando, no peques fotos amigo, pega el código para que podamos leerlo bien. En las fotos no se ve nada.

Lo del START tienes que hacerlo así:

Código COBOL:
  1.      INVOKE POW-SELF "Execute" USING "start mspaint.exe D:\odog\0000000000001.bmp"

Lo mismo con lo que te he pasado yo:

Código COBOL:
  1.      INVOKE POW-SELF "Execute" USING 'rundll32 url.dll,FileProtocolHandler "D:\odog\0000000000001.bmp"'



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #10
Antiguo 20 de enero de 2025, 21:34
orlando
Forero Junior
Última Actividad 29.01.2025 23:57
Posts Posts: 42
Likes enviados Enviados: 24
Likes recibidos Recibidos: 2

cordial saludo

para el caso de paint ya ensaye con invoke...mspaint no funciona

genera error de invalid calling of the method---
...aclaro para WIN 10 SI FUNCIONA
PARA WIN 11 NO ..
envio texto
Código COBOL:
  1. *****modulo creacion*****
  2.  
  3. ENVIRONMENT     DIVISION.
  4.  DATA            DIVISION.
  5.  WORKING-STORAGE SECTION.
  6. *estaba 01 RUTA PIC X(300) VALUE "C:\Windows\System32\MSPAINT.EXE D:\odog\0000000000000000000000001.bmp".
  7. * 01 RUTA1 PIC X(300) VALUE "C:\WINDOWS\SYSTEM32\COMMAND.COM /C  DEL D:\A-B-M\PRUEBA.TXT".
  8.  PROCEDURE      DIVISION.
  9. *estaba       INVOKE POW-SELF "EXECUTE" USING RUTA.
  10.  INICIO.
  11.        INVOKE POW-SELF "EXECUTE" USING
  12.               "start mspaint.exe D:\odog\0000000000000000000000001.bmp"
  13.        INVOKE CMCOMMAND6 "SETFOCUS".
  14.  ..
  15.  
  16. ...................................................
  17.  
  18. ******modulo consulta*****
  19.  ENVIRONMENT     DIVISION.
  20.  DATA            DIVISION.
  21.  WORKING-STORAGE SECTION.
  22.  01 COMPLETA GLOBAL EXTERNAL.
  23.     02 CON-Z        PIC 99.
  24.     02 C-Z          PIC 9(12).
  25.     02 NOM-Z        PIC X(40).
  26.     02 CON-OZ       PIC 99.
  27.     02 IF-OZ        PIC 9.
  28.     02 ANO          PIC 9999.
  29.     02 MESO         PIC 99.
  30.     02 DIAO         PIC 99.
  31.  01 SW99 GLOBAL EXTERNAL.
  32.     02 SWNN         PIC 9.  
  33.  01 RUTABUSCA.
  34. *estaba    02 FILLER       PIC X(40)  VALUE "C:\Windows\System32\MSPAINT.EXE D:\odog".
  35.     02 COD-P-N         PIC 9(12).
  36.     02 CONSECUTIVO-N   PIC 99.
  37.     02 CONSE-ON        PIC 99.
  38.     02 IF-ON           PIC 9.
  39.     02 ANO-ON          PIC 9999.
  40.     02 MES-ON          PIC 99.
  41.     02 DIA-ON          PIC 99.
  42.     02 FILLER          PIC X  VALUE ".".
  43.     02 FILLER          PIC XXX VALUE "bmp".
  44. * 01 RUTA1 PIC X(300) VALUE "C:\WINDOWS\SYSTEM32\COMMAND.COM /C  DEL D:\A-B-M\PRUEBA.TXT".
  45.  PROCEDURE      DIVISION.
  46.       IF SWNN = 0
  47.          MOVE ZEROS TO  COD-P-N  CONSECUTIVO-N  CONSE-ON IF-ON
  48.                              ANO-ON MES-ON  DIA-ON
  49.         MOVE C-Z TO COD-P-N
  50.         MOVE CON-Z TO CONSECUTIVO-N
  51.         MOVE CON-OZ TO CONSE-ON
  52.         MOVE IF-OZ TO IF-ON
  53.         MOVE ANO TO ANO-ON
  54.         MOVE MESO TO MES-ON
  55.         MOVE DIAO TO DIA-ON
  56. *estaba                INVOKE POW-SELF "EXECUTE" USING RUTABUSCA.
  57.         INVOKE POW-SELF "EXECUTE" USING "start mspaint.exe D:\odog\RUTABUSCA"
  58.                MOVE 1 TO SWNN
  59.                IF SWNN = 1
  60.                 INVOKE CMCOMMAND6  "SETFOCUS".

ACLARO * estaba era win 10 win 11 ....No funciona


para el caso de paint el rundll32.....no he probado....

ahora bien

para el caso EXCEL...ENVIO TEXTO ...COMO FUNCIONA WIN 10...
Podrias ayudarme para win 11...

envio texto

Código COBOL:
  1. ENVIRONMENT DIVISION.
  2.  INPUT-OUTPUT SECTION.
  3.  FILE-CONTROL.
  4.      SELECT LEXCEL
  5.      ASSIGN TO "D:\EXCEL1\LPACIENTES.XLS"
  6.      ORGANIZATION IS LINE SEQUENTIAL.
  7.  DATA DIVISION.
  8.  FILE SECTION.
  9.   FD LEXCEL
  10.      LABEL RECORD IS STANDARD.
  11.  01 REC-LEXCEL PIC X(700).
  12.  WORKING-STORAGE SECTION.
  13.  01 EXCEL OBJECT REFERENCE COM IS GLOBAL.
  14.  01 WORKBOOK OBJECT REFERENCE COM IS GLOBAL.
  15.  01 COM-TRUE PIC 1(1) BIT VALUE B"1" IS GLOBAL.
  16.  01 APPLICATION PIC X(20) VALUE "EXCEL.APPLICATION" IS GLOBAL.
  17.  01 EXCEL_FILE PIC X(35) VALUE "D:\EXCEL1\LPACIENTES.XLS".
  18.  01     FECHA.
  19.     02   DIA          PIC 99.
  20.     02   FILLER       PIC X VALUE "/".
  21.     02   MES          PIC 99.
  22.     02   FILLER       PIC X VALUE "/".
  23.     02   ANO          PIC 9999.
  24.  01    FECHAD.
  25.     02 ANOD           PIC 99.
  26.     02 MESD           PIC 99.
  27.     02 DIAD           PIC 99.
  28.  
  29.  01     ANODD        PIC 9999 VALUE ZEROS.
  30.  01     ERRORA       PIC 9.
  31.  01     FALLO        PIC 9.
  32. * 01 FECHA.
  33. *    02 DIA PIC 99.
  34. *    02 FILLER PIC X VALUE "/".
  35. *    02 MES PIC 99.
  36. *    02 FILLER PIC X VALUE "/".
  37. *    02 FILLER PIC XX VALUE "20".
  38. *    02 ANO PIC 99.
  39.  01 FIN-A PIC 9.
  40.  01 FIN-AA PIC 9.  
  41.  01 FEC.
  42.     02 AA PIC 99.
  43.     02 MM PIC 99.
  44.     02 DD PIC 99.    
  45.  01 L0.
  46.     02 PIC X(85) VALUE
  47.       "<HTLM><HEAD><TITLE>ABONOS  DEL MES DE SEP.2018</TITLE></HEAD>".
  48.  01 L-1.
  49.     02 PIC X(6) VALUE "<BODY>".
  50.     02 PIC X(15) VALUE "<TR><TH><B> ".
  51.     02 L1-CIA PIC X(60) VALUE
  52.        "CONSULTORIO ODONTOLOGICO ".
  53.     02 PIC X(6) VALUE "<\B>".
  54.  01 L-11.
  55.     02 PIC X(15) VALUE "<TR><TH>".
  56.     02 PIC X(55) VALUE
  57.         "LISTA DE PACIENTES :".
  58.     02 FECHA-II PIC X(10).          
  59.  01 L-30.
  60.     02 PIC X(7) VALUE "<TABLE>".
  61.  01 L-2.
  62.     02 PIC X(4) VALUE "<BR>".
  63.     02 L2-CIA PIC X(112) VALUE SPACES.
  64.     02 L3-MES PIC X(10).
  65.     02 L3-RMES REDEFINES L3-MES.
  66.      03 L3-DMES PIC BXXX.
  67.      03 L3-LET PIC XXX.
  68.      03 L3-HMES PIC XXX.
  69.     02 L3-ANO PIC Z9999.
  70.  01 GRUPO.
  71.    02 G1 PIC 999.
  72.    02 G2 PIC X(17).  
  73.  01 L-3.
  74.     02 PIC X(4) VALUE "<BR>".
  75.     02 L3-CIA PIC X(32).
  76.     02 PIC X(7) VALUE " ".
  77.     02 L2-RFC PIC X(15) VALUE SPACES.
  78.  01 LLL.
  79.     02 PIC X(7) VALUE "<BR><U>".
  80.     02 L-0 PIC X(163) VALUE SPACES.
  81.  01 L-4.
  82.     02 PIC X(30) VALUE "<TR><TH><U>  PACIENTE  ".
  83.     02 PIC X(30) VALUE "<TH><U>      TELEFONO  ".
  84.     02 PIC X(30) VALUE "<TH><U>      C.C o T.I ".
  85.  01 L-5.
  86.     02 PIC X(15) VALUE "<TR><TH> ".
  87.     02 PACIENTE-I PIC X(30) VALUE "  ".
  88.     02 PIC X(4) VALUE "<TD>".
  89.     02 TELEFONO-I PIC X(14).
  90.     02 PIC X(4) VALUE "<TD>".
  91.     02 IDENTIDAD-I PIC X(14).
  92.  
  93. * 01 CAMINO.
  94. * **   02 CAM1 PIC X(40) VALUE "D:\EXCEL.EXE BALANZA.XLS".
  95.  01 ANO-X.
  96.     02 AA-N PIC 99.
  97.     02 BB-N PIC 99.
  98.  01 X-ANO REDEFINES ANO-X PIC 9(4).
  99.  01 TIPO PIC X.
  100.  01 CIA PIC X(15).
  101.  01 A1 PIC 99 VALUE 0.
  102.  01 K PIC 99 VALUE 0.
  103. *
  104.  01 SW PIC 9.  
  105.  01 CADENA PIC X(8).
  106.  01 RUTA PIC X(256).
  107.  01 REDD GLOBAL EXTERNAL.
  108.    02 RED PIC X(256).
  109.  PROCEDURE      DIVISION.
  110.  INICIO.  
  111.        OPEN OUTPUT LEXCEL CLOSE LEXCEL.
  112.        OPEN EXTEND LEXCEL.
  113.  RECIBE-FEC-ACTUAL.
  114.        MOVE ZEROS  TO DIA MES ANO DIAD MESD ANOD ANODD
  115.         ACCEPT FECHAD
  116.         FROM DATE
  117.         MOVE DIAD TO DIA
  118.         MOVE MESD TO MES
  119.         IF
  120.           ANOD > 90
  121.           COMPUTE ANODD = 1900 + ANOD
  122.           MOVE ANODD TO ANO
  123.          ELSE
  124.           COMPUTE ANODD = 2000 + ANOD
  125.           MOVE ANODD TO ANO.
  126. ** *      MOVE AA TO ANO.
  127. *      MOVE MM TO MES.
  128.       MOVE FECHA TO FECHA-II.
  129.       INSPECT L-0 REPLACING CHARACTERS BY " ".
  130.       INSPECT L0 REPLACING ALL " " BY " ".
  131.       INSPECT L-1 REPLACING ALL " " BY " ".
  132.       INSPECT L-11 REPLACING ALL " " BY " ".
  133.       INSPECT L-2 REPLACING ALL " " BY " ".
  134.       INSPECT L-3 REPLACING ALL " " BY " ".
  135. *      INSPECT L-30 REPLACING ALL " " BY " ".
  136.       INSPECT L-4 REPLACING ALL " " BY " ".
  137.       WRITE REC-LEXCEL FROM L0.
  138.       WRITE REC-LEXCEL FROM L-1.
  139.       WRITE REC-LEXCEL FROM L-3.
  140.       WRITE REC-LEXCEL FROM L-11.
  141. *      WRITE REC-LEXCEL FROM L-2.
  142.       WRITE REC-LEXCEL FROM L-3.
  143.       INSPECT L-0 REPLACING CHARACTERS BY " ".
  144.       WRITE REC-LEXCEL FROM LLL.
  145.       WRITE REC-LEXCEL FROM L-30.
  146. *                   MOVE ANO TO ANO-A
  147. *                   MOVE MES TO MES-A
  148. *                   MOVE 0  TO DIA-A.
  149. *      WRITE REC-LEXCEL FROM L-4.
  150. *      WRITE REC-LEXCEL FROM L55.
  151. * INICIO.
  152. *      MOVE SPACES TO RUTA.
  153. *      STRING RED DELIMITED BY SPACES
  154. *            "Artic.DAT" DELIMITED BY SIZE
  155. *            INTO RUTA.
  156. *      MOVE RUTA TO WF-ARTIC.
  157. * PUSE DESDE ACA
  158.  ABRIR-A.
  159. *       OPEN INPUT ABONO.
  160.        OPEN INPUT PACIENTE-A.
  161.  PRINCIPAL.
  162.        MOVE 0 TO FIN-A FIN-AA SW
  163.        MOVE "A"  TO  NOMBRE-P
  164.        MOVE ALL ZEROS TO CODIGOP-KEY  
  165.        PERFORM START-P
  166.         IF FALLO = 1
  167.               STOP RUN
  168.         ELSE
  169.          WRITE REC-LEXCEL FROM L-4
  170.          MOVE COD-P TO COD-A.
  171. *         PERFORM PROCESAR UNTIL FIN-A = 1.
  172. *         GO TO FIN.  
  173. *
  174.  PROCESAR.
  175.          PERFORM LEER-P
  176.          IF FIN-A = 1
  177.                 GO FIN
  178.           ELSE
  179.          MOVE NOMBRE-P TO PACIENTE-I
  180.          MOVE  TEL1-P TO TELEFONO-I
  181.          MOVE COD-P    TO IDENTIDAD-I
  182.          WRITE REC-LEXCEL FROM L-5
  183.          GO PROCESAR.
  184.  LEER-P.
  185.      MOVE 0 TO FIN-A
  186.      READ PACIENTE-A
  187.      NEXT RECORD AT END
  188.      MOVE 1 TO FIN-A.
  189.  
  190.  START-P.
  191.           MOVE 0  TO FALLO
  192.           START PACIENTE-A KEY NOT LESS NOMBRE-P
  193.            INVALID KEY
  194.           MOVE 1 TO FALLO.  
  195. *
  196.  FIN.  
  197. *      CLOSE ABONO.
  198.       CLOSE PACIENTE-A.
  199.       CLOSE LEXCEL.
  200.       INVOKE COM "CREATE-OBJECT" USING APPLICATION RETURNING EXCEL.
  201.       INVOKE EXCEL "SET-VISIBLE" USING COM-TRUE.
  202.       INVOKE EXCEL "GET-WORKBOOKS" RETURNING WORKBOOK.
  203.       INVOKE WORKBOOK "Open" using EXCEL_FILE.  
  204.       EXIT PROGRAM.
orlando is offline   Responder Con Cita
Respuesta


Herramientas

Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 00:26.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.