Resultados 1 al 3 de 3

Tema: Hacer Click en un botón por Software

  1. #1
      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

    Windows Hacer Click en un botón por Software

    Ás vezes necessitamos de executar o código que está num botão, sem o operador saber.

    Por exemplo, para correr um programa automaticamente, sem intervenção do operador, mas utilizando o mesmo programa com interface com o operador.

    Com este código, podemos simular que foi pressionado um botão (ou CMCommand1).

    COBOL Código:
    1.  @OPTIONS NOALPHA
    2. *****************************************************************
    3. *  Copyright (c) 2005 R.P.S.
    4. *
    5. *  Last Modified:    Jan 2005.
    6. *****************************************************************
    7.  IDENTIFICATION DIVISION.
    8.  PROGRAM-ID.    INVOKECLICK.
    9.  AUTHOR.        Rui Pinto - MAR 2005.
    10. *-----------------------------------------------------------------
    11.  ENVIRONMENT DIVISION.
    12.  CONFIGURATION SECTION.
    13.  SPECIAL-NAMES.
    14.  INPUT-OUTPUT SECTION.
    15.  FILE-CONTROL.
    16. *-----------------------------------------------------------------
    17.  DATA DIVISION.
    18.  FILE SECTION.
    19.  WORKING-STORAGE SECTION.
    20. *
    21. *
    22.  01  MSGFUNCTION                   PIC S9(009)    COMP-5  VALUE ZERO.
    23.  01  MSGPARAM1                     PIC S9(009)    COMP-5  VALUE ZERO.
    24.  01  MSGPARAM2                     PIC S9(009)    COMP-5  VALUE ZERO.
    25.  LINKAGE SECTION.
    26.  01  WS-HANDLER                    PIC S9(009)    COMP-5.
    27.  PROCEDURE DIVISION USING WS-HANDLER.
    28.  MAIN SECTION.
    29.  MAIN-00.
    30.       IF WS-HANDLER = 0
    31.            CALL "GetFocus" WITH STDCALL RETURNING WS-HANDLER.
    32. ****   MOUSE DOWN
    33.       MOVE 513 TO MSGFUNCTION.
    34.       MOVE 0 TO MSGPARAM2.
    35.       MOVE 0 TO MSGPARAM1.
    36.       CALL "SendMessageA" WITH STDCALL USING BY VALUE WS-HANDLER
    37.                                              BY VALUE MSGFUNCTION
    38.                                              BY VALUE MSGPARAM1
    39.                                              BY VALUE MSGPARAM2.
    40. ****   MOUSE UP
    41.       MOVE 514 TO MSGFUNCTION.
    42.       MOVE 0 TO MSGPARAM2.
    43.       MOVE 0 TO MSGPARAM1.
    44.       CALL "SendMessageA" WITH STDCALL USING BY VALUE WS-HANDLER
    45.                                              BY VALUE MSGFUNCTION
    46.                                              BY VALUE MSGPARAM1
    47.                                              BY VALUE MSGPARAM2.
    48. ****   BUTTON STATE
    49.       MOVE 243 TO MSGFUNCTION.
    50.       MOVE 0 TO MSGPARAM2.
    51.       MOVE 0 TO MSGPARAM1.
    52.       CALL "SendMessageA" WITH STDCALL USING BY VALUE WS-HANDLER
    53.                                              BY VALUE MSGFUNCTION
    54.                                              BY VALUE MSGPARAM1
    55.                                              BY VALUE MSGPARAM2.
    56.  
    57.  MAIN-99.
    58.  END PROGRAM INVOKECLICK.
    59. *   INVOKE CMCOMMAND2 "SETFOCUS". FOCUS NO BOTAO A CLICKAR
    60. *   CALL "INVOKECLICK".    
    61. *   INVOKE CMCOMMAND1 "SETFOCUS". FOCUS PARA OUTRO OBJECTO

    Espero que ajude alguém.
    Un saludo,
    Rui Pinto

    0 Not allowed!

  2. #2
      Junior
    G

    Registrado
    junio de 2015
    Ubicación
    Murcia
    Mensajes
    38
    Última visita
    22.01.2021

    Agradecimientos
     
    Recibidos
    41
    Enviados
    20

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

    Predeterminado

    Entiendo que estás hablando de un programa hecho en PowerCOBOL. En PC 3.0 yo lo que hago es poner en el botón sólo la llamada a un subprograma que estará en el evento PROCEDURE del form.

    Por ejemplo, en el botón estaría un código como éste:

    COBOL Código:
    1. CALL "Imprimir"

    El subprograma "Imprimir" estaría en la PROCEDURE. Si yo quiero imprimir sin pulsar el botón, símplemente llamo a dicho subprograma.

    Si el programa es nuevo creo que es una buena práctica proceder de esta manera. Pero si el programa ya está hecho y es grande, entonces tu código sí es de utilidad. Y me resulta muy ilustrativo sobre la forma de invocar las funciones de la API de Windows.

    0 Not allowed!

  3. #3
      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

    Galileo,

    Também utilizo esse forma de programar no PowerCobol 9.0
    (No botão tem apenas o "call" e a rotina esta fora).
    Tens razão, é a melhor maneira de programar.

    Este meu exemplo tem mesmo como objectivo, dar uma ideia de como utilizar as API's do Windows.

    Un Saludo e Feliz Navidad

    Rui Pinto

    0 Not allowed!

Información de Tema

Usuarios Viendo este Tema

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

Temas Similares

  1. [Petición] OCX Botón redondo con imagen
    Por Roger en el foro Componentes y Librerías
    Respuestas: 1
    Último Mensaje: 20.10.2022, 00:36
  2. [Información] Proteccion de Software
    Por fastpho en el foro PowerCOBOL (ActiveX, v4 - v11)
    Respuestas: 9
    Último Mensaje: 03.06.2018, 22:22
  3. [Herramienta] DASERP - Software en Windev
    Por Dasije en el foro WinDev
    Respuestas: 5
    Último Mensaje: 22.03.2017, 13:33
  4. [Compilador] Error 3 al/después de hacer LINK
    Por Kuk en el foro PowerCOBOL V3L10 (Win32)
    Respuestas: 4
    Último Mensaje: 15.01.2016, 21:41
  5. [Sintaxis] Botón derecho del ratón
    Por Josber en el foro PowerCOBOL (ActiveX, v4 - v11)
    Respuestas: 4
    Último Mensaje: 12.02.2015, 16:29

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
  •