RAS-звонилка

    
 *********************************  
 * Звонилка. (c) Andrey Shishkin *  
 *********************************  
 *------------------ тестовая программа -----------------------*  
  LOCAL lResult && хранит результат соединения  
  RAS = CREATEOBJECT('ConnRAS') && создает обьект и передает ссылку на объект в переменной RAS  
  RAS.ConnName = "111" 		&& Имя удаленного соединения (соединение создается вручную)  
  RAS.UserName = "OOOLORIA" 	&& Имя пользователя  
  RAS.PassWord = "096410" 	&& Пароль пользователя  
  RAS.Domain 	 = "rasdom" 	&& Имя домена  
  lResult 	 = RAS.Connect()&& Соединение  
  IF EMPTY(lResult)  
  	WAIT 'Соединение ['+RAS.ConnName+'] установлено' WINDOW && выводит сообщение об  
  установленном соединении  
  	RAS.DisConnect() && Разрыв соединения  
  ELSE  
      MESSAGEBOX(RAS.RasGetError(lResult), ; && выводит строку ошибки  
      	48, 'Ошибка удаленного соединения ['+RAS.ConnName+']')  
  ENDIF  
  RELEASE RAS && удаляет объект по ссылке в переменной RAS  
    
 *------------------ CLASS ConnRAS ----------------------------*  
  DEFINE CLASS ConnRAS AS CUSTOM  
    
  	ConnName = '' && Имя удаленного соединения  
  	UserName = '' && Имя пользователя  
  	PassWord = '' && Пароль пользователя  
  	Domain   = '' && Имя домена  
  	  
  	PROTECTED ConnHandle   
  		ConnHandle = 0 && хранит код установленного соединения  
  		  
  	PROCEDURE INIT  
  		ConnName   = ''  
  		UserName   = ''  
  		PassWord   = ''  
  		Domain     = ''  
  		ConnHandle = 0  
  		RETURN THIS.LoadRASAPI()  
  	ENDPROC  
  	  
  	FUNCTION Connect  
  		LOCAL cParam, nConnHandle, nResult  
  		cParam = chr(28)+chr(4)+chr(0)+chr(0)+;  
  			padr(THIS.ConnName+chr(0), 256+1)+;  
  			padr(chr(0), 128+1)+;  
  			padr(chr(0), 128+1)+;  
  			padr(THIS.UserName+chr(0), 256+1)+;  
  			padr(THIS.Password+chr(0), 256+1)+;  
  			padr(THIS.Domain+chr(0), 15+1)+" "  
  		nConnHandle = 0  
  		nResult = RasDial(NULL, NULL, @cParam, 0, NULL, @nConnHandle)  
  		WAIT '' TIMEOUT 1  
  		IF EMPTY(nResult)  
  			THIS.ConnHandle = nConnHandle  
  		ELSE  
  			RasHangUp(nConnHandle) && Нет соединения. Закрываем порт.  
  			THIS.ConnHandle = 0  
  		ENDIF  
  		RETURN nResult  
  	ENDFUNC  
    
  	  
  	FUNCTION DisConnect  
  		LOCAL nConnHandle, nResult  
  		nConnHandle = 0  
  		IF EMPTY(THIS.ConnHandle)  
  			nResult = 0  
  		ELSE  
  			nConnHandle = THIS.ConnHandle  
  			nResult = RasHangUp(nConnHandle)  
  			THIS.ConnHandle = 0  
  			WAIT '' TIMEOUT 1  
  		ENDIF  
  		RETURN nResult  
  	ENDFUNC  
  	  
  	FUNCTION RasGetError  
  		LPARAMETERS nResult  
  		LOCAL MessageBuffer  
  		MessageBuffer = SPACE(256) && Создание буфера для строки ошибки  
  		IF NOT EMPTY(RasGetErrorString(nResult, @MessageBuffer, LEN(MessageBuffer)))  
  			MessageBuffer = 'Неизвестная ошибка'  
  		ENDIF  
  		RETURN MessageBuffer  
  	ENDFUNC  
    
  	  
  	PROTECTED FUNCTION LoadRASAPI  
  		DECLARE INTEGER RasDial IN RASAPI32 ;  
  			STRING DialExtetions, ;  
  			STRING cPhoneboolfile, ;  
  			STRING @cParameters, ;  
  			INTEGER nCallBack, ;  
  			STRING cCallBack, ;  
  			INTEGER @nConnHandle  
  		DECLARE INTEGER RasGetErrorString IN RASAPI32 ;  
     			INTEGER nReturnValue, ;  
     			STRING @cMessageBuffer , ;  
    			INTEGER nLenMessageBuffer  
  		DECLARE INTEGER RasHangUp IN RASAPI32 ;  
      	    INTEGER nConnHandle  
      	RETURN .T.  
  	ENDFUNC  
  ENDDEFINE  
0

Автор публикации

не в сети 1 год

Joys

2
Комментарии: 5Публикации: 200Регистрация: 25-06-2000
Оставить комментарий
Авторизация
*
*
Генерация пароля