Resultados 1 al 10 de 10

Tema: API - SetForegroundWindow

  1. #1
      Patrocinador del Foro
    R

    Registrado
    febrero de 2015
    Ubicación
    Valladolid
    Mensajes
    79
    Última visita
    13.03.2024

    Agradecimientos
     
    Recibidos
    11
    Enviados
    72

    Citaciones y menciones
     
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)
    Poder de Reputación
    10

    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.
    COBOL Código:
    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)

    0 Not allowed!

  2. #2
      Gran amigo y Guru de COBOL
    Avatar de Rapinto

    Registrado
    febrero de 2015
    Ubicación
    Porto
    Mensajes
    246
    Última visita
    29.01.2018

    Agradecimientos
     
    Recibidos
    227
    Enviados
    19

    Citaciones y menciones
     
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)
    Poder de Reputación
    19
    Activista del Foro / Point Value: 0 Agradecimientos / Point Value: 0 Guru de los Gurus / Point Value: 0

    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
    Imagem Anexada Imagem Anexada

    0 Not allowed!

  3. #3
      Patrocinador del Foro
    R

    Registrado
    febrero de 2015
    Ubicación
    Valladolid
    Mensajes
    79
    Última visita
    13.03.2024

    Agradecimientos
     
    Recibidos
    11
    Enviados
    72

    Citaciones y menciones
     
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)
    Poder de Reputación
    10

    Predeterminado

    Cita Iniciado por 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!!!!

    0 Not allowed!

  4. #4
      Gran amigo y Guru de COBOL
    Avatar de Rapinto

    Registrado
    febrero de 2015
    Ubicación
    Porto
    Mensajes
    246
    Última visita
    29.01.2018

    Agradecimientos
     
    Recibidos
    227
    Enviados
    19

    Citaciones y menciones
     
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)
    Poder de Reputación
    19
    Activista del Foro / Point Value: 0 Agradecimientos / Point Value: 0 Guru de los Gurus / Point Value: 0

    Predeterminado
    ¡Solución!1 usuarios han marcado el post como Solución

    Recato53,

    Experimentei este código e funcionou bem.
    COBOL Código:
    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

    0 Not allowed!

  5. #5
      Patrocinador del Foro
    R

    Registrado
    febrero de 2015
    Ubicación
    Valladolid
    Mensajes
    79
    Última visita
    13.03.2024

    Agradecimientos
     
    Recibidos
    11
    Enviados
    72

    Citaciones y menciones
     
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)
    Poder de Reputación
    10

    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.

    0 Not allowed!

  6. #6
      Gran amigo y Guru de COBOL
    Avatar de Rapinto

    Registrado
    febrero de 2015
    Ubicación
    Porto
    Mensajes
    246
    Última visita
    29.01.2018

    Agradecimientos
     
    Recibidos
    227
    Enviados
    19

    Citaciones y menciones
     
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)
    Poder de Reputación
    19
    Activista del Foro / Point Value: 0 Agradecimientos / Point Value: 0 Guru de los Gurus / Point Value: 0

    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

    0 Not allowed!

  7. #7
      Acabo de llegar...
    j

    Registrado
    julio de 2021
    Ubicación
    Cali
    Mensajes
    25
    Última visita
    17.06.2022

    Agradecimientos
     
    Recibidos
    1
    Enviados
    14

    Citaciones y menciones
     
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)
    Poder de Reputación
    0

    Predeterminado

    Buenas tardes saben de alguna api, para dejar columnas estáticas

    0 Not allowed!

  8. #8
      Administrador
    Avatar de Kuk

    Registrado
    enero de 2015
    Ubicación
    Madrid
    Edad
    39
    Mensajes
    2,286
    Última visita
    Hoy a las 12:45

    Agradecimientos
     
    Recibidos
    1,036
    Enviados
    888

    Citaciones y menciones
     
    Mentioned
    102 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    31 Post(s)
    Poder de Reputación
    10

    Predeterminado

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

    0 Not allowed!
    ¿Te han ayudado? NO TE OLVIDES de darle al botón
    ¿Quieres dirigirte a alguien en tu post? Notifícale con una mención, tienes 2 opciones:
    1. Haciendo clic en el icono al lado de su nick
    2. Haciendo clic en el botón en el editor y escribiendo su nick.

  9. #9
      Acabo de llegar...
    j

    Registrado
    julio de 2021
    Ubicación
    Cali
    Mensajes
    25
    Última visita
    17.06.2022

    Agradecimientos
     
    Recibidos
    1
    Enviados
    14

    Citaciones y menciones
     
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)
    Poder de Reputación
    0

    Predeterminado si

    Cita Iniciado por Kuk Ver Mensaje
    @jjcol, a qué columnas te refieres, a las de ListView?
    si ListView es le que estoy utilizando, power cobol 9

    0 Not allowed!

  10. #10
      Administrador
    Avatar de Kuk

    Registrado
    enero de 2015
    Ubicación
    Madrid
    Edad
    39
    Mensajes
    2,286
    Última visita
    Hoy a las 12:45

    Agradecimientos
     
    Recibidos
    1,036
    Enviados
    888

    Citaciones y menciones
     
    Mentioned
    102 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    31 Post(s)
    Poder de Reputación
    10

    Predeterminado

    Cita Iniciado por jjcol Ver Mensaje
    para dejar columnas estáticas
    COBOL Código:
    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)

    0 Not allowed!
    ¿Te han ayudado? NO TE OLVIDES de darle al botón
    ¿Quieres dirigirte a alguien en tu post? Notifícale con una mención, tienes 2 opciones:
    1. Haciendo clic en el icono al lado de su nick
    2. Haciendo clic en el botón en el editor y escribiendo su nick.

Información de Tema

Usuarios Viendo este Tema

Actualmente hay 1 usuarios viendo este tema. (0 miembros y 1 visitantes)

Marcadores

Marcadores

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •