home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1998 March
/
CHIPCD_3_98.iso
/
software
/
testsoft
/
pcany
/
pca_80pl.exe
/
data.2
/
data
/
COMPUSRV.SCR
next >
Wrap
Text File
|
1997-12-02
|
8KB
|
177 lines
description "Przyk│adowy skrypt logowania do Compuserve"
;
; Jest to przyk│adowy skrypt, kt≤ry pokazuje jak zalogowaµ siΩ Compuserve.
; Twoja nazwa i has│o s╣ zapisane (w postaci zakodowanej) w pliku
; COMPUSRV.DAT. Je£li tego pliku nie ma, zostaniesz poproszony o podanie
; nazwy do logowania i has│a, gdy zostanie odebrane zapytanie.
; Skrypt ten wy£wietla wszystkie ekrany i automatycznie podaje Twoj╣ nazwΩ i has│o.
; Po wy£wietleniu g│≤wnego menu skrypt siΩ ko±czy.
; Mo┐esz odzyskaµ kontrolΩ nad klawiatur╣ po wy£wietleniu g│≤wnego menu, je£li
; naci£niesz ESC lub je£li przez 10 sekund nie pojawi siΩ ┐adna, rozpoznawalna komenda.
;==========================================================================
; DEKLARACJA ZMIENNYCH
;==========================================================================
string _s1[120] ;│a±cuch do r≤┐nych zastosowa±
string _s2[120] ;│a±cuch do r≤┐nych zastosowa±
string _name[30] ;tu jest przechowywana nazwa
string _password[16] ;tu jest przechowywane has│o
string _datFile[80] ;tu jest przechowywana nazwa pliku DAT
string _key[1] ;zmienna przechowuj╣ca naci£niΩcie klawisza
integer _i1 ;zmienna ca│kowita do r≤┐nych zastosowa±
;==========================================================================
; PROCEDURA Gú╙WNA
;==========================================================================
clear screen ;wyczyszczenie ekranu
_datFile = "COMPUSRV.DAT" ;nazwa zakodowanego pliku danych
find first _datFile ;sprawdzenie istnienia pliku DAT
if ($result == 0) goto @l5 ;jeszcze go nie ma - zostanie utworzony p≤ƒniej
open 1 _datFile ;otwarcie pliku
read line 1 _name 30 0 ;czytanie nazwy do logowania
;Dla zwiΩkszenia bezpiecze±stwa u┐ytkownik powinien wprowadziµ klucz kodowania
decrypt _name "MICKEY" ;dekodowanie
trim _name ;usuniΩcie zbΩdnych spacji
read line 1 _password 16 0 ;czytanie has│a
decrypt _password "MICKEY" ;dekodowanie
trim _password ;usuniΩcie zbΩdnych spacji
close 1 ;zamkniΩcie pliku
@l5:
set cancel on ;w│╣czenie mo┐liwo£ci anulowania skryptu klawiszem ESC
on cancel goto @cancel
on timeout goto @timeout ;ustawienie ca│kowitego czasu oczekiwania
set timeout 20 ;na 20 sekund
set disconnect on ;ustawienie pu│apek roz│╣czenia
on disconnect goto @disconnect
Send string "^C" ;powiadomienie o obecno£ci
@L10: ;tu zaczyna siΩ g│≤wna pΩtla:
Gosub @getPrompt ;oczekiwanie zapytanie (monit)
if ($result < 0) goto @timeout ;po przekroczeniu czasu oczekiwania, nastΩpuje zako±czenie skryptu
@L40:
index _s1 "User Id:" ;po zapytaniu o identyfikator (nazwΩ do logowania) nastΩpuje wys│anie identyfikatora
if ($RESULT == 0) goto @L50
strcmp _name "" ;je£li nie ma nazwy
if ($result == 0) then gosub @getData ;zostaje ona wprowadzona przez u┐ytkownika
Send string _name ;wys│anie nazwy
Send string "^M" ;oraz kodu CR
Goto @L10
@L50: ;po zapytaniu o has│o nastΩpuje wys│anie has│a
Set ignorecase off ;ustawienie nierozr≤┐niania wielko£ci liter has│a
Index _s1 "Password:" ;sprawdzenie has│a
If ($result == 0) goto @L55 ;skok je£li siΩ nie zgadza
Send string _password ;w przeciwnym razie wys│anie has│a
Send string "^M" ;oraz kodu CR
Goto @end
@L55:
Set ignorecase on
Goto @L10
@timeout: ;przekroczenie czasu oczekiwania - zako±czenie skryptu
Type string "^M^J(przekroczenie czasu oczekiwania)^M^J"
Goto @end
@cancel: ;anulowanie przez u┐ytkownika - zako±czenie skryptu
set cancel off
@cancel1:
type string "^M^JAnulowanie przez u┐ytkownika^M^J"
type string "Roz│╣czyµ (T/N) ?: " ;pytanie o roz│╣czenie
_s1 = "" ;wyzerowanie zmiennej wej£ciowej
input _s1 1 ;wprowadzenie odpowiedzi
upper _s1
strcmp _s1 "T"
if ($result == 0) goto @cancel2 ;je£li "Tak", skok do @cancel2, aby roz│╣czyµ
strcmp _s1 "N"
if ($result != 0) goto @cancel1 ;skok, gdy nie zosta│o wprowadzone ani "Tak", ani "Nie"
goto @end ;je£li "Nie", nie roz│╣cza i zostaje w trybie terminala
@cancel2:
type string "^M^JROZúÑCZANIE..."
Hang
End
@disconnect: ;roz│╣czenie - koniec skryptu
Type string "^M^J(Roz│╣czono)^M^J"
Goto @end
@end:
beep ;informacja dƒwiΩkowa o zako±czeniu skryptu
type string "^M^J[JESTEî W TRYBIE TERMINALA]^M^J"
end terminal
;==========================================================================
; PODPROGRAMY
;==========================================================================
; "@getPrompt" - oczekuje na zapytanie i przechowuje wprowadzon╣ warto£µ w _s1.
; Wszystkie odebrane linie s╣ wy£wietlane.
; Warto£µ zwrotna: >=0, d│ugo£µ │a±cucha
; < 0, przekroczenie czasu
@getPrompt:
on timeout goto @g2
wait receive 10 ;oczekiwanie na odbi≤r
_s1 = ""
on timeout goto @g1
set timeout 2 ;oczekiwanie przez 2 sekundy na liniΩ
receive line _s1 ;(przekroczenie czasu po odbiorze monitu)
type line _s1 ;pe│na linia - wy£wietlenie na ekranie
goto @getPrompt ;oczekiwanie na nastΩpn╣ liniΩ
@g1: ;nie odebrano kodu LF - zapytanie (monit)
Type string _s1 ;wy£wietlenie na ekranie
strlen _s1 _i1
goto @g3 ;i powr≤t
@g2: ;przekroczenie czasu oczekiwania bez odbioru czegokolwiek
_i1 = -1 ;wyst╣pi│ b│╣d
@g3:
on timeout goto @timeout ;odtworzenie czasu oczekiwania
set timeout 20
return _i1 ;zwraca d│ugo£µ linii lub -1 po przekroczeniu czasu oczekiwania
; @getData: wprowadzenie nazwy logowania i has│a przez u┐ytkownika oraz zapisanie tych danych na dysku.
@getData:
set cancel off
@gd2:
type string "^M^J^Jwprowadƒ identyfikator CompuServe: "
_s1 = "" ;zerowanie zmiennej wej£ciowej
input _s1 30 ;wprowadzenie nazwy
_name = _s1
encrypt _s1 "MICKEY" ;zakodowanie jej
type string "^M^J^Jwprowadƒ has│o: "
_s2 = ""
input _s2 16 ;wprowadzenie has│a
_password = _s2
encrypt _s2 "MICKEY" ;zakodowanie go
type string "^M^J^JOK (T/N) ?:" ;pytanie, czy dane s╣ OK
@gd0:
input key _key ;wprowadzenie T lub N
upper _key ;zmiana na wielkie litery
strcmp _key "T"
if ($result == 0) goto @gd1 ;skok je£li "Tak", aby zapisaµ dane w pliku
strcmp _key "N"
if ($result != 0) goto @gd0 ;skok, gdy nie naci£niΩto T lub N
goto @gd2 ;skok je£li "Nie", aby zapytaµ ponownie
@gd1: ;zapisanie danych w pliku
create 1 _datfile ;utworzenie pliku
write string 1 _s1 ;zapisanie nazwy
write string 1 "^@" ;nastΩpnie znak "null"
write string 1 _s2 ;zapisanie has│a
write string 1 "^@" ;nastΩpnie znak "null"
close 1 ;zamkniΩcie pliku
set cancel on
return ;zako±czenie