Ras по кроках
Крок 1 - Перевірка з'єднання
Необхідно створити проект Win32 і краще його назвати RAS. А взагалі як хочете. Функції по роботі з RAS знаходяться в динамічній бібліотеці rasapi32.dll і соотвественно в проект необхідно додати rasapi32.lib. Як це зробити? Дістатися до установки бібліотек можна з допомогу Project Setting - Link - Object library module. Обов'язково додайте в усі конфігурації, а не в Debug або Relase щоб не дуже дивуватися в будушем.
RAS - Remote Access Service. Дозволяє віддалено підключатися до мереж з використанням віддаленого з'єднання (модем). Саме так я потрапляю в Інтренет. Запускаю віддалений доступ. Він дзвонить і входить в мережу.
Отже ми оголосили підключення windows.h для того щоб користуватися типами змінних Windows наприклад DWORD там описана. Підключили ras.h для доступу до опису функцій. iostream.h просто написання ключових слів потоків для виведення на екран. Мені зручно хоча можна і по іншому наприклад stdio.h - printf. але мені так зручніше. Conio.h для функції getch () вона затримує виконання програми до натискання клавіші.
Отже насамперед ми повідомляємо масив типу RASCONN з 20 елементів. Чому 20. Мені так хочеться. Взагалі можна скільки завгодно. Але на комп'ютері зазвичай модем один і з'єднання одне. Так що більше 2 потрібно точно. Чому більше 2? В кінці при перевірки програми побачите. Ця структура містить інформацію про з'єднання. Ось так вона описанна.
Далі ми оголосили дві змінні. Вони нам знадобляться.
Потім в перший елемент структури в поле dwSize ми помістили розмір 1 записи з масиву структур, тобто розмір однієї структури. Навіщо. Подивіться опис структури, при різних версіях, розмір різний. sizeof якраз цей розмір і вирахувала.
І весь розмір масиву вирахували. Потрібен він далі.
RasEnumConnections перевіряє наявність з'єднання. Результат у ній якраз не кількість з'єднань, а успішність обрашения у динамічної бібліотеки. Адже її може не бути або вона може бути зіпсована. В цю функцію ми передаємо масив ras. покажчик на розмір масиву. І покажчик на число куди повернеться кількість з'єднань. Чому покажчик, тому що це буде використано для повернення результату. Як інакше, якщо функція возврашает успішність свого виклику?
Якщо функція виконана, то в dNumber буде кількість з'єднань. Якщо з'єднання є те в масив вернеться про них інформація. За допомогою for ми пробігали по масиву і виводимо інформацію.
А тепер зберіть і запустіть програму. Якщо у Вас немає з'єднання то на екрані з'явитися 0 і буде чекати натискання клавіші. А тепер запустіть з'єднання. У перевірці пароля для входу в систему можете запустити програму. Але покаже вам 1 і ім'я з'єднання яке описано в DialUp.
І останнє. Як перевірити два з'єднання з одним модемом. Зробіть з'єднання з альтернативним ім'ям, щоб їх було два. Запустіть з першим ім'ям. Після зв'язку. Запустіть з другим. Ось друге і не запуститься. Вам повідомлять про те, що модем используеться - помилка 6. В цей момент запустите вашу програму і вона покаже два з'єднання з іменами.
Підключіть звернення до динамічної бібліотека включивши asapi32.lib
Увімкніть опис функцій RAS Створюйте код.
RasEnumConnections говорить тільки про те виконалася вона чи ні.
Розмір структури RASCONN може вити різний.