sample.vbs
8.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
REM Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
REM (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
REM aplicativos mainframe. Registro no INPI sob o nome G3270.
REM
REM Copyright (C) <2008> <Banco do Brasil S.A.>
REM
REM Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
REM os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
REM Free Software Foundation.
REM
REM Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
REM GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
REM A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
REM obter mais detalhes.
REM
REM Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
REM programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin
REM St, Fifth Floor, Boston, MA 02110-1301 USA
REM
REM Contatos:
REM
REM perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
REM erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
REM
REM Inicializa a biblioteca
rem hllapi_init() - Inicia uma sessão 3270
rem
rem hllapi_init pode receber como argumento o nome de uma janela já aberta,
rem por exemplo, "pw3270:a" para com que atue direto sobre ela, ou,
rem com uma string vazia ("") para tentar criar uma sessão sem janela.
rem
Declare Function hllapi_init Lib "libhllapi.dll" (ByVal tp as string) as Long
rem hllapi_deinit() - Encerra uma sessão 3270
rem
rem Finaliza a sessão 3270 liberando os recursos usados.
rem
Declare Function hllapi_deinit Lib "libhllapi.dll" () as Long
rem hllapi_get_revision - Obtém a revisão do pw3270 que está sendo usada.
rem
Declare Function hllapi_get_revision Lib "libhllapi.dll" () as Long
rem hllapi_connect() - Conecta a um host 3270
rem
rem Efetua a conexão ao host 3270, recebe 2 parâmetros
rem
rem uri - URI com o endereço de conexão ao host
rem wait - Quantos segundos a função deve esperar até o estabelecimento da sessão
rem
Declare Function hllapi_connect Lib "libhllapi.dll" (ByVal uri as string, ByVal wait as Integer) as Long
rem hllapi_disconnect() - Desconecta do host 3270
rem
Declare Function hllapi_disconnect Lib "libhllapi.dll" () as Long
rem hllapi_wait_for_ready() - Aguarda que o terminal fique disponível
rem
rem Suspende a atividade até que o terminal esteja pronto para receber comandos.
rem
rem Recebe apenas um valor numérico com o tempo em segundos a esperar; caso esse
rem tempo seja atingido sem o terminal ficar disponível a função retorna erro.
rem
Declare Function hllapi_wait_for_ready Lib "libhllapi.dll" (ByVal timeout as Integer) as Long
rem hllapi_wait() - Aguarda por "x" segundos
rem
rem Suspende a atividade do script mantendo a comunicação com o host ativa; pode ser usada
rem para parar por um tempo específico enquanto o host executa algum processo.
rem
rem Recebe apenas um valor numérico com o tempo em segundos a esperar.
rem
Declare Function hllapi_wait Lib "libhllapi.dll" (ByVal timeout as Integer) as Long
rem hllapi_get_message_id() - Obtém o código da mensagem atual da OIA
rem
rem Obtém o código numérico correspondente à mensagem de status da OIA.
rem
Declare Function hllapi_get_message_id Lib "libhllapi.dll" () as Long
rem hllapi_is_connected() - Verifica se existe uma conexão com o host
rem
Declare Function hllapi_is_connected Lib "libhllapi.dll" () as Long
rem hllapi_get_screen() - Obtém conteúdo de uma parte do terminal pelo endereço
rem
rem Preenche a string com o conteúdo do termina na posição desejada
rem
rem Recebe 3 parâmetros:
rem
rem - Posição na tela
rem - String com espaço suficiente
rem - Tamanho desejado (se for -1 usa o tamanho da string)
rem
Declare Function hllapi_get_screen Lib "libhllapi.dll" (ByVal offset as Integer, ByVal text as String, ByVal length as Integer) as Long
rem hllapi_get_screen_at() - Obtém o conteúdo de uma parte da tela do terminal.
rem
rem Preenche a string com o conteúdo do terminal a partir da linha e coluna
rem desejadas.
rem
rem Recebe 3 parâmetros:
rem
rem - Linha da posição inicial
rem - Coluna da posição inicial
rem - String já com o tamanho desejado
rem
Declare Function hllapi_get_screen_at Lib "libhllapi.dll" (ByVal row as Integer, ByVal col as Integer, ByVal text as String) as Long
rem hllapi_set_text_at() - Aplica string na tela do terminal.
rem
rem Aplica a string na linha e coluna informadas; atentar para o fato de que
rem a posição deve estar disponível para escrita.
rem
rem Recebe 3 parâmetros:
rem
rem - Linha da posição inicial
rem - Coluna da posição inicial
rem - String que será aplicada
rem
Declare Function hllapi_set_text_at Lib "libhllapi.dll" (ByVal row as Integer, ByVal col as Integer, ByVal text as String) as Long
rem hllapi_cmp_text_at() - Compara conteúdo da tela.
rem
rem Compara o conteúdo da tela na posição informada, recebe 3 parâmetros.
rem
rem - Linha da posição inicial
rem - Coluna da posição inicial
rem - String a comparar
rem
rem Retorna 0 se o valor contido na tela é igual ao informado, diferente de zero se não for.
rem
Declare Function hllapi_cmp_text_at Lib "libhllapi.dll" (ByVal row as Integer, ByVal col as Integer, ByVal text as String) as Long
rem hllapi_find_text
rem
rem Obtém a posição da string na tela.
rem
rem - String a pesquisar
rem
rem 0 se a string não foi encontrada, a posição na tela se encontrar.
rem
Declare Function hllapi_find_text Lib "libhllapi.dll" (ByVal text as String) as Long
rem hllapi_enter()
rem
rem Envia um [ENTER] para o host.
rem
Declare Function hllapi_enter Lib "libhllapi.dll" () as Long
rem hllapi_pfkey()
rem
rem Envia uma [PF] para o host.
rem
rem Recebe como argumento o número da PF que será enviada.
rem
Declare Function hllapi_pfkey Lib "libhllapi.dll" (ByVal keycode as Integer) as Long
rem hllapi_pakey()
rem
rem Envia uma [PA] para o host.
rem
rem Recebe como argumento o número da PA que será enviada.
rem
Declare Function hllapi_pakey Lib "libhllapi.dll" (ByVal keycode as Integer) as Long
rem hllapi_set_session_parameter()
rem
rem Configura um parâmetro da sessão
rem
rem Recebe como argumentos:
rem
rem 1. Nome do parâmetro a ser ajustado
rem 2. Tamanho do nome do parâmetro (ou 0)
rem 3. Valor a atribuir
rem
Declare Function hllapi_set_session_parameter Lib "libhllapi.dll" (ByVal text as String, ByVal len as Integer, ByVal value as Integer) as Long
rem hllapi_set_charset()
rem
rem Configura a página de código
rem
rem Recebe como argumentos:
rem
rem 1. Nome da página de código desejada (UTF-8, CP1252, ISO-8859-1, etc).
rem
Declare Function hllapi_set_charset Lib "libhllapi.dll" (ByVal text as String, ByVal len as Integer, ByVal value as Integer) as Long
rem hllapi_set_unlock_delay()
rem
rem Define o tempo (em milisegundos) que o terminal
rem espera para desbloquear a sessão após um comando.
rem
rem Recebe como argumento o valor do delay em milisegundos.
rem
Declare Function hllapi_set_unlock_delay Lib "libhllapi.dll" (ByVal delay as Integer) as Long
rem hllapi_get_cursor_address() - Obtém a posição atual do cursor
rem
rem Obtém a posição atual do cursor dentro da tela do terminal
rem
Declare Function hllapi_get_cursor_address Lib "libhllapi.dll" () as Long
rem hllapi_set_cursor_address()
rem
rem Define a posição atual do cursor
rem
rem Recebe 1 argumento:
rem
rem Novo endereço do cursor dentro da tela do terminal.
rem
Declare Function hllapi_set_cursor_address Lib "libhllapi.dll" (ByVal addr) as Long
Sub Main
if hllapi_init("") <> 0 then
print "Erro ao inicializar a biblioteca"
Exit Sub
End If
hllapi_connect("fandezhi.efglobe.com:23",0)
Do While hllapi_is_connected() = 0
hllapi_wait(1)
Loop
if hllapi_wait_for_ready(60) <> 0 then
print "Conexão não se estabilizou no tempo esperado"
Exit Sub
End If
Dim text as string
text = space(2000)
if hllapi_get_screen_at(1,1,text) <> 0 then
print "Erro ao tentar obter conteudo do terminal"
Exit Sub
End If
print text
hllapi_disconnect()
hllapi_deinit()
End Sub