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

  #1
Antiguo 22 de diciembre de 2015, 17:15
IDENTIFICATION DIVISION
Recato53
Patrocinador del Foro
ENVIRONMENT DIVISION
Avatar de Recato53
DATA DIVISION
Forero desde (Registrado)febrero 2015
España
UbicaciónValladolid
Última Actividad28.11.2019 12:33
PROCEDURE DIVISION
PostsPosts: 75
Ha dicho GraciasEnviado: 71
Ha recibido agradecimientosRecibido: 11
Mejores respuestasSoluiones: 2
ReputaciónReputación: 6
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 23 de diciembre de 2015, 00:05
IDENTIFICATION DIVISION
Rapinto
Gran amigo del Foro y Guru de COBOL
ENVIRONMENT DIVISION
Avatar de Rapinto
DATA DIVISION
Forero desde (Registrado)febrero 2015
Portugal
UbicaciónPorto
Última Actividad29.01.2018 20:23
PROCEDURE DIVISION
PostsPosts: 246
Ha dicho GraciasEnviado: 19
Ha recibido agradecimientosRecibido: 215
Mejores respuestasSoluiones: 47
Medallas recibidas: 2Medallas: 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! 
ReputaciónReputación: 14
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, 19 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, 09:39
IDENTIFICATION DIVISION
Recato53
Patrocinador del Foro
ENVIRONMENT DIVISION
Avatar de Recato53
DATA DIVISION
Forero desde (Registrado)febrero 2015
España
UbicaciónValladolid
Última Actividad28.11.2019 12:33
PROCEDURE DIVISION
PostsPosts: 75
Ha dicho GraciasEnviado: 71
Ha recibido agradecimientosRecibido: 11
Mejores respuestasSoluiones: 2
ReputaciónReputación: 6
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, 12:14
IDENTIFICATION DIVISION
Rapinto
Gran amigo del Foro y Guru de COBOL
ENVIRONMENT DIVISION
Avatar de Rapinto
DATA DIVISION
Forero desde (Registrado)febrero 2015
Portugal
UbicaciónPorto
Última Actividad29.01.2018 20:23
PROCEDURE DIVISION
PostsPosts: 246
Ha dicho GraciasEnviado: 19
Ha recibido agradecimientosRecibido: 215
Mejores respuestasSoluiones: 47
Medallas recibidas: 2Medallas: 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! 
ReputaciónReputación: 14
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, 13:30
IDENTIFICATION DIVISION
Recato53
Patrocinador del Foro
ENVIRONMENT DIVISION
Avatar de Recato53
DATA DIVISION
Forero desde (Registrado)febrero 2015
España
UbicaciónValladolid
Última Actividad28.11.2019 12:33
PROCEDURE DIVISION
PostsPosts: 75
Ha dicho GraciasEnviado: 71
Ha recibido agradecimientosRecibido: 11
Mejores respuestasSoluiones: 2
ReputaciónReputación: 6
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, 22:49
IDENTIFICATION DIVISION
Rapinto
Gran amigo del Foro y Guru de COBOL
ENVIRONMENT DIVISION
Avatar de Rapinto
DATA DIVISION
Forero desde (Registrado)febrero 2015
Portugal
UbicaciónPorto
Última Actividad29.01.2018 20:23
PROCEDURE DIVISION
PostsPosts: 246
Ha dicho GraciasEnviado: 19
Ha recibido agradecimientosRecibido: 215
Mejores respuestasSoluiones: 47
Medallas recibidas: 2Medallas: 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! 
ReputaciónReputación: 14
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
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 15:48.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2020, Jelsoft Enterprises Ltd.