Ver Mensaje Individual
  #1
Antiguo 19 de mayo de 2015, 16:19
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: 221
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
Capas 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).

Código COBOL:
  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
Rapinto no ha iniciado sesión   Responder Con Cita