Gracias Rui Pinto (Rapinto)
COBOL Foro
Foro dedicado a COBOL, a la Programación y a la Informática.
  COBOL Foro > IDE-s y compiladores COBOL > Fujitsu COBOL > PowerCOBOL y WinAPI
PowerCOBOL y WinAPI Llamadas a la API de Windows en PowerCOBOL
Comunicados
Respuesta
 
Herramientas

  #1
Antiguo 22 de diciembre de 2015, 16:15
IDENTIFICATION DIVISION
Recato53
 Patrocinador del Foro
ENVIRONMENT DIVISION
Avatar de Recato53
DATA DIVISION
febrero 2015
Valladolid
23.07.2020 11:16
PROCEDURE DIVISION
Posts: 77
Enviado: 72
Recibido: 11
Soluiones: 2
Reputación: 7
Recato53 is on a distinguished road
Medalla API - SetForegroundWindow

Estoy intentando programar una API de Windows 'SetForegroundWindow'.

Algo estoy haciendo mal, no consigo que active una Ventana que se queda en la Barra de Herramientas.

Empleo el siguiente código en PowerCobol 9.
Código COBOL:
  1.  WORKING-STORAGE SECTION.
  2.     01  S-INDEX      PIC S9(9) COMP-5 VALUE 0.
  3.     01  WINDOWCLASSE BINARY-LONG VALUE ZERO.
  4.     01  HWND         BINARY-LONG.
  5.  
  6.   01 WINDOWNAME    PIC X(60).
  7.  
  8.  PROCEDURE DIVISION.
  9.  
  10.       MOVE "FR-UTIL" TO WINDOWNAME.
  11.  
  12.         COMPUTE S-INDEX = FUNCTION STORED-CHAR-LENGTH(WINDOWNAME).
  13.         ADD 1 TO S-INDEX.
  14.         MOVE X"00"        TO WINDOWNAME(S-INDEX:1).
  15.              
  16. *************************************************************************
  17.  
  18.       CALL "FindWindowA" WITH STDCALL USING
  19.                               BY VALUE WINDOWCLASSE
  20.                               BY REFERENCE WINDOWNAME
  21.                               RETURNING HWND.
  22.  
  23. *************************************************************************      
  24.       CALL "SetForegroundWindow" WITH STDCALL USING
  25.                                       BY VALUE HWND.
  26.      
  27.         EXIT PROGRAM.

La variable WINDOWNAME es el formulario que quiero activar.

En las propiedades del script estoy añadiendo la siguiente opción: ALPHAL(WORD)
Recato53 no ha iniciado sesión   Responder Con Cita
Mejores respuestas Soluciones: 1
  #2
Antiguo 22 de diciembre de 2015, 23:05
IDENTIFICATION DIVISION
Rapinto
 Gran amigo del Foro y Guru de COBOL
Activista del Foro: Activista del Foro - Razón: ¡Gracias!  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Razón: Por ayudar mucho a los foreros  Guru de los Gurus: Por solidos y amplios conocimientos - Razón: Por saber demasiado! 
ENVIRONMENT DIVISION
Avatar de Rapinto
DATA DIVISION
febrero 2015
Porto
29.01.2018 19:23
PROCEDURE DIVISION
Posts: 246
Enviado: 19
Recibido: 225
Soluiones: 47
Reputación: 16
Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road
Predeterminado

Recato53,

O nome da Window é exactamente o que aparece na barra superior.
Se vires a imagem é:

"FCCID.io-2368817.pdf - Adobe Acrobat Reader DC"

(tens que inclui o nome todo - incluindo espaços)

Se souberes o nome exato da classe é mais fácil pois o nome da classe é sempre igual:
Por exemplo: um documento de WORD tem a ClassName: OpusApp (Depende da versão Office)
uma folha de Excel tem a ClassName: XLMAIN ( depende da versão de Office)
um documento de PDF tem a ClassName: AcrobatSDIWindow (também depende da versão do Acrobat Reader)

Se pretenderes usar a ClassName tens que alterar a Working-Storage, para defenir que vais passar por ClasseName e não por Form Name

Saludos e FELIZ NAVIDAD

Rui Pinto
Imágenes Adjuntas
Tipo de Archivo: jpg Image2.jpg (20,6 KB, 23 descargas)
Rapinto no ha iniciado sesión   Responder Con Cita
Ha dicho Gracias : 1
Recato53 (23 de diciembre de 2015)
  #3
Antiguo 23 de diciembre de 2015, 08:39
IDENTIFICATION DIVISION
Recato53
 Patrocinador del Foro
ENVIRONMENT DIVISION
Avatar de Recato53
DATA DIVISION
febrero 2015
Valladolid
23.07.2020 11:16
PROCEDURE DIVISION
Posts: 77
Enviado: 72
Recibido: 11
Soluiones: 2
Reputación: 7
Recato53 is on a distinguished road
Predeterminado

Cita del post de Rapinto Ver Mensaje
Recato53,

O nome da Window é exactamente o que aparece na barra superior.
Se vires a imagem é:

"FCCID.io-2368817.pdf - Adobe Acrobat Reader DC"

(tens que inclui o nome todo - incluindo espaços)

Se souberes o nome exato da classe é mais fácil pois o nome da classe é sempre igual:
Por exemplo: um documento de WORD tem a ClassName: OpusApp (Depende da versão Office)
uma folha de Excel tem a ClassName: XLMAIN ( depende da versão de Office)
um documento de PDF tem a ClassName: AcrobatSDIWindow (também depende da versão do Acrobat Reader)

Se pretenderes usar a ClassName tens que alterar a Working-Storage, para defenir que vais passar por ClasseName e não por Form Name

Saludos e FELIZ NAVIDAD

Rui Pinto
Pretendo activar un Formulario de Powercobol, que después de un proceso, se queda en la Barra de Herramientas.
¿Como consigo levantar este FORM?.

¡¡¡¡FELIZ NAVIDAD!!!!
Recato53 no ha iniciado sesión   Responder Con Cita
  #4
Antiguo 23 de diciembre de 2015, 11:14
IDENTIFICATION DIVISION
Rapinto
 Gran amigo del Foro y Guru de COBOL
Activista del Foro: Activista del Foro - Razón: ¡Gracias!  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Razón: Por ayudar mucho a los foreros  Guru de los Gurus: Por solidos y amplios conocimientos - Razón: Por saber demasiado! 
ENVIRONMENT DIVISION
Avatar de Rapinto
DATA DIVISION
febrero 2015
Porto
29.01.2018 19:23
PROCEDURE DIVISION
Posts: 246
Enviado: 19
Recibido: 225
Soluiones: 47
Reputación: 16
Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road
Predeterminado
1 usuarios han marcado este post como "Solución"

Recato53,

Experimentei este código e funcionou bem.
Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  PROCEDURE       DIVISION.
  5. * Minimize current form
  6.     INVOKE POW-SELF "ShowForm" USING POW-SWMINIMIZED.  
  7. * Call another form with no return
  8.     INVOKE pow-self "CallForm" USING "CfForm1".  
  9. *
  10. *   Open normal the minimized form
  11.     INVOKE POW-SELF "ShowForm" USING POW-SWNORMAL.

Não sei se isto resolve o teu problema.

Un saludo e Feliz Navidad
Rui Pinto
Rapinto no ha iniciado sesión   Responder Con Cita
  #5
Antiguo 26 de diciembre de 2015, 12:30
IDENTIFICATION DIVISION
Recato53
 Patrocinador del Foro
ENVIRONMENT DIVISION
Avatar de Recato53
DATA DIVISION
febrero 2015
Valladolid
23.07.2020 11:16
PROCEDURE DIVISION
Posts: 77
Enviado: 72
Recibido: 11
Soluiones: 2
Reputación: 7
Recato53 is on a distinguished road
Predeterminado

No consigo hacer funcionar las distintas opciones que me proponeis, se sigue quedando el formulario que llama a un proceso en la barra de herramientas.

He partido de una rutina que tienes en POWER+API en la cocina del Foro:
Bring Window to Top (By "Name).

Un saludo. Feliz NAVIDAD.
Recato53 no ha iniciado sesión   Responder Con Cita
  #6
Antiguo 27 de diciembre de 2015, 21:49
IDENTIFICATION DIVISION
Rapinto
 Gran amigo del Foro y Guru de COBOL
Activista del Foro: Activista del Foro - Razón: ¡Gracias!  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Razón: Por ayudar mucho a los foreros  Guru de los Gurus: Por solidos y amplios conocimientos - Razón: Por saber demasiado! 
ENVIRONMENT DIVISION
Avatar de Rapinto
DATA DIVISION
febrero 2015
Porto
29.01.2018 19:23
PROCEDURE DIVISION
Posts: 246
Enviado: 19
Recibido: 225
Soluiones: 47
Reputación: 16
Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road
Predeterminado

Recato53,

Manda-me um exemplo por Email (ou Mensagem Privada) , para ver se consigo perceber o teu problema.

Não consigo obter a situação que descreves.

Saludos,
Rui
Rapinto no ha iniciado sesión   Responder Con Cita
  #7
Antiguo 30 de julio de 2021, 20:51
IDENTIFICATION DIVISION
jjcol
 Acabo de llegar...
ENVIRONMENT DIVISION
Avatar de jjcol
DATA DIVISION
julio 2021
Cali
25.09.2021 15:25
PROCEDURE DIVISION
Posts: 16
Enviado: 6
Recibido: 1
Soluiones: 0
Reputación: 0
jjcol is an unknown quantity at this point
Predeterminado

Buenas tardes saben de alguna api, para dejar columnas estáticas
jjcol no ha iniciado sesión   Responder Con Cita
  #8
Antiguo 30 de julio de 2021, 22:33
IDENTIFICATION DIVISION
Kuk
 Administrador
ENVIRONMENT DIVISION
Avatar de Kuk
DATA DIVISION
diciembre 2014
Madrid
36 años
25.09.2021 14:45
PROCEDURE DIVISION
Posts: 1.807
Enviado: 583
Recibido: 756
Soluiones: 95
Reputación: 10
Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road
Predeterminado

@jjcol, a qué columnas te refieres, a las de ListView?



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 no ha iniciado sesión   Responder Con Cita
  #9
Antiguo 30 de julio de 2021, 23:29
IDENTIFICATION DIVISION
jjcol
 Acabo de llegar...
ENVIRONMENT DIVISION
Avatar de jjcol
DATA DIVISION
julio 2021
Cali
25.09.2021 15:25
PROCEDURE DIVISION
Posts: 16
Enviado: 6
Recibido: 1
Soluiones: 0
Reputación: 0
jjcol is an unknown quantity at this point
Predeterminado si

Cita del post de Kuk Ver Mensaje
@jjcol, a qué columnas te refieres, a las de ListView?
si ListView es le que estoy utilizando, power cobol 9
jjcol no ha iniciado sesión   Responder Con Cita
  #10
Antiguo 31 de julio de 2021, 09:04
IDENTIFICATION DIVISION
Kuk
 Administrador
ENVIRONMENT DIVISION
Avatar de Kuk
DATA DIVISION
diciembre 2014
Madrid
36 años
25.09.2021 14:45
PROCEDURE DIVISION
Posts: 1.807
Enviado: 583
Recibido: 756
Soluiones: 95
Reputación: 10
Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road
Predeterminado

Cita del post de jjcol Ver Mensaje
para dejar columnas estáticas
Código COBOL:
  1.  IDENTIFICATION DIVISION.
  2.  PROGRAM-ID. VISTA-EXTENDIDA.
  3. **************************************************
  4. * RUTINA PARA OPCIONES EXTENDIDAS EN EL LISTVIEW *
  5. **************************************************
  6.  ENVIRONMENT DIVISION.
  7.  CONFIGURATION SECTION.
  8.  SPECIAL-NAMES.
  9.      DECIMAL-POINT IS COMMA.
  10.  INPUT-OUTPUT SECTION.
  11.  DATA DIVISION.
  12.  WORKING-STORAGE SECTION.
  13. *MOVE "HWND" OF NOMBRE-CONTROL TO WS-HANDLE
  14.  01  WS-LINEA-ENTERA              PIC S9(9) COMP-5 VALUE 32.
  15.  01  WS-LINK                      PIC S9(9) COMP-5.
  16.  01  WS-GRID                      PIC S9(9) COMP-5 value 01.
  17.  01  WS-DRAG                      PIC S9(9) COMP-5 VALUE 16.
  18.  01  LVM-SETEXTENDEDLISTVIEWSTYLE PIC S9(9) COMP-5 VALUE 4150.
  19.  01  LVS-EX-FULLROWSELECT         PIC S9(9) COMP-5 VALUE 32.
  20.  01  LVS-EX-HEADERDRAGDROP        PIC S9(9) COMP-5 VALUE 16.
  21.  01  LVS-EX-GRIDLINES             PIC S9(9) COMP-5 VALUE 01.
  22.  01  LVS-EX-FLATSB                PIC S9(9) COMP-5 VALUE 256.
  23.  01  LVS-NOSORTHEADER             PIC S9(9) COMP-5 VALUE h"8000".
  24.  01  LV-STYLE                     PIC S9(9) COMP-5.
  25.  01  LVM_GETHEADER    PIC S9(9) COMP-5 VALUE h"101F".
  26.  01  RESP             PIC S9(9) COMP-5.
  27.  LINKAGE SECTION.
  28.  01  WS-HANDLE                    PIC S9(9) COMP-5.
  29.  
  30.  PROCEDURE DIVISION USING WS-HANDLE.
  31. **********************************************
  32. **** HABILITA LINEA ENTERA EN EL LISTVIEW ****
  33. **********************************************
  34.      CALL "SendMessageA" WITH STDCALL USING BY VALUE WS-HANDLE
  35.                                             BY VALUE LVM-SETEXTENDEDLISTVIEWSTYLE
  36.                                             BY VALUE LVS-EX-FULLROWSELECT
  37.                                             BY VALUE WS-LINEA-ENTERA
  38.    
  39. ****************************************************
  40. **** HABILITA CAMBIO DE COLUMNAS EN EL LISTVIEW ****
  41. ****************************************************
  42.      CALL "SendMessageA" WITH STDCALL USING BY VALUE WS-HANDLE
  43.                                             BY VALUE LVM-SETEXTENDEDLISTVIEWSTYLE
  44.                                             BY VALUE LVS-EX-HEADERDRAGDROP
  45.                                             BY VALUE WS-DRAG
  46.    
  47. *****************************************************
  48. **** HABILITA APARIENCIA DE TABLA EN EL LISTVIEW ****
  49. *****************************************************
  50.      CALL "SendMessageA" WITH STDCALL USING BY VALUE WS-HANDLE
  51.                                             BY VALUE LVM-SETEXTENDEDLISTVIEWSTYLE
  52.                                             BY VALUE LVS-EX-GRIDLINES
  53.                                             BY VALUE WS-GRID
  54.    
  55. *****************************************************
  56. **** HABILITA FLAT SCROLLBARS                    ****
  57. *****************************************************
  58.      CALL "SendMessageA" WITH STDCALL USING BY VALUE WS-HANDLE
  59.                                             BY VALUE LVM-SETEXTENDEDLISTVIEWSTYLE
  60.                                             BY VALUE LVS-EX-FLATSB
  61.                                             BY VALUE -1
  62.    
  63. *****************************************************
  64. **** DESHABILITA CABECERA                        ****
  65. *****************************************************
  66.      CALL "SendMessageA" WITH STDCALL USING BY VALUE WS-HANDLE
  67.                                             BY VALUE LVM_GETHEADER
  68.                                             BY VALUE 0
  69.                                             BY VALUE 0
  70.                                             RETURNING RESP    
  71.                                            
  72.      CALL "EnableWindow" WITH STDCALL USING BY VALUE RESP
  73.                                             BY VALUE 0
  74.                                            
  75. *****************************************************
  76. **** DESHABILITA BOTONES                         ****
  77. *****************************************************
  78.       CALL "GetWindowLongA" WITH STDCALL USING BY VALUE WS-HANDLE      
  79.                                                BY VALUE -16
  80.                                                RETURNING LV-STYLE                                               .
  81.      
  82.       ADD LVS-NOSORTHEADER TO LV-STYLE
  83.      
  84.       CALL "SetWindowLongA" WITH STDCALL USING BY VALUE WS-HANDLE
  85.                                                BY VALUE -16
  86.                                                BY VALUE LV-STYLE
  87.       .

No te aolvides de añadir la opción ALPHAL(WORD)



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 no ha iniciado sesión   Responder Con Cita
Ha dicho Gracias : 1
jjcol (31 de julio de 2021)
Respuesta


Usuarios activos actualmente viendo este tema: 1 (0 miembros y 1 visitantes)
 
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



La franja horaria es GMT +1. Ahora son las 16:56.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2021, Jelsoft Enterprises Ltd.