Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];

Вниз

RAS.ConnectionStatus   Найти похожие ветки 

 
yegor   (2004-07-18 13:21) [0]

Есть ли уже что-нибудь готовое для перевода статуса соединения в осмысленную строку? Что-нибудь наподобие RasGetErrorString. Порылся по MSDN-у и гуглу - пока не нашёл.


 
Ihor Osov'yak ©   (2004-07-18 14:52) [1]

хм. RAS.ConnectionStatus - это откуда, из каких парафий?

Ps. Если имелось ввиду структура RASCONNSTATUS, декларированная в Ras.h,
то такм всего два энумератора, имеющих по два значения, и два массива символов, говорящих об имени девайса и его типе.. Символы и так осмисленные, а для енумератов - case рулит. Или if. Учитывая всего три возможных состояния (подключено, отключено, или ошибка при получении инфо, тем более, что ошибок может быть всего две)


var
 status:RASCONNSTATUS;
 readMe: string;
...
readMe := "что-то не то.. ";
case  status.dwError of
  0: case status.RASCONNSTATE of
       RASCS_Connected: readMe := "соединились";
       RASCS_Disconnected: readMe := "увы, лето прошло-пролетело и осень настала..";    
     end;
  ERROR_NOT_ENOUGH_MEMORY: readMe := " что-то с памятью моею сталось..";
  ERROR_INVALID_HANDLE:  readMe := "Вы, это, не надо... всякую дребедень сунуть..  ";
end;

   


 
yegor   (2004-07-18 15:19) [2]

>имеющих по два значения
С dwError проблем нет. Есть RasGetErrorString. А вот со статусом есть. Там ещё куча промежуточных значений типа
 RASCS_OpenPort          = 0;
 RASCS_PortOpened        = 1;
 RASCS_ConnectDevice     = 2;
 RASCS_DeviceConnected   = 3;
 RASCS_AllDevicesConnected = 4;
 RASCS_Authenticate      = 5;
 RASCS_AuthNotify        = 6;
и т. д.
Мне не сложно написать вывод имени константы или даже самому нарисовать описания. Хочется чего-нибудь уже готового, стандартного. :-)


 
yegor   (2004-07-18 15:23) [3]

PS. Кстати dwError - не совсем то, что Вы пишете. Это не то же, что результат вызова WinAPI функции, а например, может быть сообщением о ненайденном устройстве или о провале авторизации, ещё там что...


 
Ihor Osov'yak ©   (2004-07-18 15:52) [4]

блин, так нужно же конкретно говорить, в каком контексте RASCONNSTATUS рассматривается.
Я привел пример в контексте RasGetConnectionStatus. если вам нужно в контексте callback-ов для ассинхроного RasDial - то так и нужно говорить. А есть еще и другие контексты. Там статусов допустимых немгого больше. Но тоже энумераторы.
Стандартного средства получения строки, кажется, нет.

В мсдн есть подробное описание энумераторвр, можно кейсы рисовать..

Несколько лет мне встречалось что-то подобное на нижеследующее (ссылку на оригинал не имею, c первого взгляда очень похоже на правду):

function GetRasCSString(State: integer): String;
var
S:string;
begin
   S:="";
   case State of
     RASCS_OpenPort:
       S:="Открытие порта";
     RASCS_PortOpened:
       S:="Порт открыт";
     RASCS_ConnectDevice:
       S:="Дозвон по текущему номеру";
     RASCS_DeviceConnected:
       S:="Устройство соединилось";
     RASCS_AllDevicesConnected:
       S:="Все устройства соединились";
     RASCS_Authenticate:
       S:="Начало опознания";
     RASCS_AuthNotify:
       S:="Установление подлинности";
     RASCS_AuthRetry:
       S:="Повторение установления подлинности";
     RASCS_AuthCallback:
       S:="Повторный вызов установления подлинности";
     RASCS_AuthChangePassword:
       S:="Изменение пароля установления подлинности";
     RASCS_AuthProject:
       S:="Проект установления подлинности";
     RASCS_AuthLinkSpeed:
       S:="Быстродействие связи установление подлинности";
     RASCS_AuthAck:
       S:="Подтвеждение установления подлинности";
     RASCS_ReAuthenticate:
       S:="Повторное опознание и установление подлинности";
     RASCS_Authenticated:
       S:="Опознанный пароль";
     RASCS_PrepareForCallback:
       S:="Подготовка к повторному вызову";
     RASCS_WaitForModemReset:
       S:="Ожидание сброса модема";
     RASCS_WaitForCallback:
       S:="Ожидание повторного вызова";
     RASCS_Projected:
       S:="Запроектированный";
     RASCS_StartAuthentication:
       S:="Начало установления подлинности";
     RASCS_CallbackComplete:
       S:=" Полный повторный вызов";
     RASCS_LogonNetwork:
       S:="Регистрация в сети";

     RASCS_Interactive:
       S:="Интерактивный";
     RASCS_RetryAuthentication:
       S:="Повтор установления подлинности";
     RASCS_CallbackSetByCaller:
       S:="Повторный вызов, установленный к вызывающему оператору";
     RASCS_PasswordExpired:
       S:="Пароль истек";

     RASCS_Connected:
       S:="Соединение";
     RASCS_Disconnected:
       S:="Разъединение";
   end;
   Result:=S;
end;


 
yegor   (2004-07-18 16:54) [5]

Ладно, спасибо за русские описания сообщений. Думаю, тема закрыта. :-)
P.S. Advanced Dialer выводит в своей консольке сообщения о статусе на английском, значит, сам придумывает. :-)


 
Ihor Osov'yak ©   (2004-07-18 17:39) [6]

> Advanced Dialer выводит в своей консольке сообщения о статусе на английском, значит, сам придумывает.

Может и так. А может и нет.  Проанализируйте, что он там импортирует, в частности из rasapi32.dll, может что интересное и обнаружите. Если  обнаружите - сюда сообщите. Также можете сделать поиск соотв. строк в бинарике Advanced Dialer, если они там будут присутствовать - тогда и импорта анализировать не нужно.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.036 c
10-1033544642
mmb
2002-10-02 11:44
2004.08.29
Неужели мой вопрос настолько сложный, что никто даже не пытается?


8-1086849701
X-Disa
2004-06-10 10:41
2004.08.29
TImage c масштабированием


1-1092142343
Ш-К
2004-08-10 16:52
2004.08.29
Connection points


1-1092645668
Bizon`s
2004-08-16 12:41
2004.08.29
Update Delphi6


3-1091561658
Alex_Bredin
2004-08-03 23:34
2004.08.29
Триггер не работает.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский