Отправляет email-рассылки с помощью сервиса Sendsay

VB.NET-World

  Все выпуски  

VB.NET-World


Информационный Канал Subscribe.Ru


VB.NET - World
::Рассылка:.
  Архив
  Подписка

::Авторы:.
  Алексей

::Ссылки:.
  MoDesign
  VBNet.ru

::Подписка:.

VB.NET-World
Советы от MoDesign
Visual Basic: новости сайтов, советы, примеры кодов
Новости сайта 'Все о Паскале'
Все про Pascal

::Баннеры:.



VB.NET-World

SUPERTOP

Рейтинг@Mail.ru

Рейтинг ресурсов УралWeb
Приветствую! Вот читайте дополнения к вышедшей статье!

С наилучшими пожеланиями,
главный редактор VB.NET-World

Алексей Кувалин

Задать вопрос по рассылке можно отправив письмо в текстовом формате. Быстрый ответ по этому ящику гарантирован.


No 7 (от 16.06.2003)
Содержание выпуска:
Компакт-диск по Visual BASIC!
Прочь все сомнения! Наконец-то вышел в свет долгожданный сборник всех исходников, кодов, утилит, документаций по Visual Basic!

Выдержки из меню:
  • исходники (30МБ)

  • документация (200МБ)

  • компоненты (40МБ)

  • утилиты (150МБ)

  • VB6.0 RUS (100МБ)

  • полезности (180МБ)


  • Цена диска 50 рублей + пересылка 40 рублей! Итого 90 рублей за полный комплект для профессионалов!


    Заказать >>>

    Компакт-диск "VB.NET-World"
    Стоит ли покупать?

    Когда-то, еще когда я был участником конфы "Сообча ВБ" меня посетила мысль создания компакт-диска для ВБ-программера, диска, который бы удовлетворил требования и профи и начинающего. Но воплотить идею в реальность получилось только в данный момент. Думаю, что в какой-то мере мне удалось одухотворить ранние перспективы. На диске представлены коллекция документационных материалов, включающий сайт рассылки "Мир программирования на Visual BASIC и HTML" с очень удобной навигацией, огромное количество учебников и книг по VB, около 11 инсталляционных программ, от самых простых, до полностью профессиональных пакетов. Инсталляция русской VB6. Очень большое количество примеров и исходников, компонентов. А самое главное, что представлены скины для любых проектов! Не обошлось и без полезных утилит. В общем весь VB в одном флаконе!

    Новые дополнения и изменения

    После решения обновить содержимое диска новыми программными продуктами, было добавлено:
    • несколько десятков исходных кодов и архивов с проектами;
    • архивы выпусков рассылки "VB.NET-World";
    • около 200 иконок и графических файлов для ваших проектов;
    • новые программы для создания инсталляционных и справочных пакетов;
    • документация, ранее не присутствовавшая на диске;
    Заказать >>>

    Для покупки данного компакт-диска нужно ПОЛНОСТЬЮ заполнить нижеприведенную форму, после чего, вам придет уведомление о прочтении данного документа. Если же в течении 2-4 дней ответа не послупило, попробуйте отправить данные повторно. Если пришел ответ, то через 2-3 недели на ваш адрес придет почтовое уведомление и вы должны будете выкупить на почте бандероль стоимостью 80-90 рублей.


    Дизайн-студия "Mountain Design"
    Выгодное решение вашего интернет-бизнеса

    Сегодня уже не стоит вопрос : использовать Интернет в своем бизнесе или нет. Но немногие ясно представляют себе пути реализации проектов, возможные последствия. Наши специалисты на основе глубокого и всестороннего анализа деятельности Клиента, помогут разработать оптимальное решение поставленных задач, что обеспечит успех их интернет-реализаций.

    Давно известно, что использование в своей деятельности профессионально разработанного web-сайта не только продвигает Заказчика в безграничный мир информационных технологий, где он во всеуслышание сможет объявить о своей деятельности, но и расширяет круг его потенциальных клиентов, а значит, ускоряет рост его бизнеса. Также, дизайн сайта организации является отражением ее индивидуальности и деятельной направленности в удобной для посетителя форме. Но если сайт не выполняет своих основных функций (а это зависит главным образом от дизайнера), то данное предприятие потерпит невосполнимые убытки, так как большинство клиентов многие организации черпают'' через интернет.

    Мы занимаемся разработкой профессиональных сайтов любой сложности и способны удовлетворить самые независимые вкусы, а также наиболее полно и ярко отразить в каждой работе особенности вашего предприятия и создать для него собственный неповторимый стиль. Каждая работа, разработанная нашими дизайнерами, отличается высоким профессионализмом и яркой неповторимостью.

    Также, мы принимаем заказы на разработку программных продуктов, баннеров и RE-дизайн сайтов. Но главное, что цены на разработку web-сайтов и программ начинаются от 500 рублей, а на создание баннерной рекламы от 50 рублей, что очень привлекает, т.к. большинство дизайн-студий за подобные услуги запрашивают в несколько раз больше!

    Но отвлечемся от рекламы. На сайте дизайн-студии я выложил архивы выпусков рассылок "Мир программирования на Visual BASIC и HTML" и "VB.NET-World" в очень удобной и простой форме. Они находятся в разделе
    "Документация".

    Посетите наш сайт по адресу http://www.m74.by.ru или по ссылке указанной ниже:

    Дизайн-студия "Mountain-Design"


    Практикум на примерах
    Продвинутая форма аутенфикации пользователя.

    Автор:
    Алексей Кувалин

    Здравствуйте! Сегодня мы займемся разработкой формы для аутенфикации пользователей вашего проекта. Итак, вначале поставим задачи формы-аутенфикатора:
    • Выключение компьютера после некоторого числа неправильных аутенфикаций.
    • Посредством таймера ограничиваем время работы с формой. По окончанию выделенного промежутка - выключение системы.
    • Отключение рабочего стола на время заполнения, а также добавление программы в автозагрузку при закрытии формы.
    • Отдельный вход администратору.
    Итак. Создаем форму, ее назовем "frmAuth", на нее добавим фрэйм "Frame1". На фрэйме разместим сверху листбох "List1", в котором будет отображаться список польбователей, текстбокс "Text1", в который будет вводиться пароль, кнопка "Command1" для начала аутенфикации, 2 таймера: "Timer1" (для создания промежутка времени, ограничивающего работу формы) и "Timer2" (для обработки ошибок).
    Настройки формы frmAuth: Autoredraw = false; Borderstyle="0" Это для того, чтобы не могли закрыть форму. Теперь вводим код формы:
    ' Код формы frmAuth
    Dim Pass As String ' правильный пароль
    Dim schet As String ' число попыток ввода
    Dim patch As String ' полный путь к файлу настроек
    Dim sysdir As String  ' путь к системному каталогу
    Dim slength As Long  ' длина возвращаемой строки
    Dim checks As String ' переменная блокирующая учетную запись
    Dim sec As Long ' число оставшихся секунд
    Dim dux As Long ' число оставшихся попыток
    
    Private Sub Command1_Click()
    sysdir = Space(255)  ' отводим место для получения строки в буфере
    slength = GetSystemDirectory(sysdir, 255)
    sysdir = Left(sysdir, slength)  ' получаем имя из буфера
    patch = sysdir + "\" + "users.ini" ' создаем путь к файлу настроек
    
    ' ФОРМАТ ЧТЕНИЯ ФАЙЛА НАСТРОЕК:
    ' Переменная = GetINI(путь к файлу, "Пользователь", "Параметр", по умолчанию)
    
    ' Чтение из файла настроек пароля выбранного пользователя
    Pass = GetINI(patch, List1.Text, "Password", "")
    
    ' Проверяем в файле: блокирован ли выбранный пользователь
    checks = GetINI(patch, List1.Text, "Check1", "")
    
    ' Если выбран администратор, то он точно не блокирован
    If List1.Text = "Администратор" Then GoTo 1
    If checks <> 1 Then
    1: If schet < 3 Then
    
    ' Праверка правильности пароля
     If Text1.Text = Pass Then
    
    ' {!!!}
    ' Если правильно - открываем основную форму программы
    ' {!!!}
    
    Desktop True ' включаем рабочий стол
    
    schet = 0 ' обнуляем переменную
    Unload Me
    Else
    schet = schet + 1 ' увеличиваем счетчик на единицу
    dux = 3 - schet ' число оставшихся попыток
    MsgBox "Введен неверный пароль! Осталось попыток: " & dux, , "'ERROR'"
    Text1.Text = ""
    End If
    Else
    MsgBox "Неверный пароль введен уже 3 раза. Доступ к ПК закрыт!", , "'ERROR'"
    
    GoTo 2
    
    End If
    Else
    MsgBox "Доступ к этой учетной записи закрыт!", , "'ERROR'"
    
    2: ' {!!!}
    ' Выключить компьютер и снова добавить в автозагрузку
    ' {!!!}
    
    End If
    End Sub
    
    Private Sub Form_Load()
    sec = 61 ' начинаем обратный отсчет
    
    ' {!!!}
    ' Устанавливаем форму поверх всех окон
    ' {!!!}
    
    schet = 0 ' устанавливаем счетчик на ноль
    Call OpenItems(Me.List1) ' загружаем список юзеров в листбокс
    Desktop False ' отрубаем рабочий стол
    End Sub
    
    Private Sub List1_Click()
    Text1.SetFocus
    End Sub
    
    Private Sub List1_DblClick()
    Command1_Click
    End Sub
    
    Private Sub Timer1_Timer()
    sec = sec - 1 ' обратный отсчет
    Frame1.Caption = "Осталось " & sec & " сек."
    If sec = 0 Then ' время исчерпано
    
    ' {!!!}
    ' Выключить компьютер и снова добавить в автозагрузку
    ' {!!!}
    
    End If
    End Sub
    
    Private Sub Timer2_Timer()
    On Error GoTo handle
    List1.ListIndex = 0
    Timer2.Enabled = False
    handle: Exit Sub
    End Sub
    
    Далее добавляем в проект модуль "mdlAuth" и вставляем нижеследующий код:
    ' Код модуля mdlAuth
    Dim patch As String ' полный путь к файлу настроек
    Dim sysdir As String  ' путь к системному каталогу
    Dim slength As Long  ' длина возвращаемой строки
    
    ' ЧТЕНИЕ ФАЙЛА СО СПИСКОМ ПОЛЬЗОВАТЕЛЕЙ
    Public Sub OpenItems(lstin As ListBox)
    sysdir = Space(255)  ' отводим место для получения строки в буфере
    slength = GetSystemDirectory(sysdir, 255)
    sysdir = Left(sysdir, slength)  ' получаем имя из буфера
    patch = sysdir + "\" + "users.ini" ' создаем путь к файлу настроек
    
    Dim i As Integer
    Dim str As String
    ' Если есть файл "lists.ini в котором список пользователей то открываем его
    If Len(Dir(sysdir & "\" & "lists.ini")) Then
    Open sysdir & "\" & "lists.ini" For Input As #1
    Do While Not EOF(1)
    Line Input #1, str
    frmAuth.List1.AddItem str 'добавляем пользователя в листбокс для выбора
    Loop
    Close #1
    End If
    End Sub
    
    ' ЗАПИСЬ ФАЙЛА СО СПИСКОМ ПОЛЬЗОВАТЕЛЕЙ
    Public Sub Saveitems(lstin As ListBox)
    sysdir = Space(255)  ' отводим место для получения строки в буфере
    slength = GetSystemDirectory(sysdir, 255)
    sysdir = Left(sysdir, slength)  ' получаем имя из буфера
    patch = sysdir + "\" + "users.ini" ' создаем путь к файлу настроек
    
    Dim i As Integer
    Open sysdir & "\" & "lists.ini" For Output As #1
    For i = 0 To lstin.ListCount - 1
    Print #1, lstin.List(i)
    Next i
    Close #1
    End Sub
    
    Теперь как вы поняли, остается уметь программно добавлять пользователей. Но с этим вы уж сами постарайтесь разобраться. Хочу поставить лишь акцент на чтении и записи файла INI и отключении рабочего стола. Для этого создайте модуль "mdlOther" и добавьте код:
    ' Код модуля mdlOther
    
    ' ОТКЛЮЧЕНИЕ РАБОЧЕГО СТОЛА
    Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, _
    ByVal nCmdShow As Long) As Long
    Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
    (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Declare Function EnableWindow Lib "user32" (ByVal hWnd As Long, _
    ByVal fEnable As Long) As Long
    
    Const SW_HIDE = 0
    Const SW_SHOW = 5
    
    Public Sub Desktop(Visible As Boolean)
    Dim hWnd As Long
    hWnd = FindWindow("Progman", "Program Manager")
    If Visible Then
    ShowWindow hWnd, SW_SHOW
    Else
    ShowWindow hWnd, SW_HIDE
    End If
    EnableWindow hWnd, Visible
    End Sub
    
    ' ЧТЕНИЕ И ЗАПИСЬ В ФАЙЛ INI
    Declare Function GetPrivateProfileString& Lib _
    "kernel32" Alias "GetPrivateProfileStringA" (ByVal _
    lpszSection$, ByVal lpszKey$, ByVal lpszDefault$, _
    ByVal lpszReturnBuffer$, ByVal cchReturnBuffer&, _
    ByVal lpszFile$)
    Declare Function WritePrivateProfileString Lib _
    "kernel32" Alias "WritePrivateProfileStringA" (ByVal _
    lpApplicationName As String, ByVal lpKeyName As String, _
    ByVal lpString As String, ByVal lplFileName As String) As Long
    
    ' Чтение
    Public Function GetINI(INIfile As String, Section As String, _
    Key As String, Default As String)
    'Call Admin.DeCode
    Dim temp As String * 256
    Dim length As Integer
    temp = Space$(256)
    length = GetPrivateProfileString(Section, Key, _
    Default, temp, 255, INIfile)
    GetINI = Left$(temp, length)
    'Call Admin.Code
    End Function
    
    ' Запись
    Public Sub SetINI(INIfile As String, Section As String, _
    Key As String, Value As String)
    'Call Admin.DeCode
    Dim n As Integer
    Dim temp As String
    temp = Value
    For n = 1 To Len(Value)
    If Mid$(Value, n, 1) = vbCr Or Mid$(Value, n, 1) = vbLf _
    Then Mid$(Value, n) = ""
    Next n
    n = WritePrivateProfileString(Section, Key, temp, INIfile)
    'Call Admin.Code
    End Sub
    
    С помощью всех вышеперечисленных исходников вы научитесь и записывать настройки пользователей в файлы, читать их. Но помните: необходимо обрабатывать случаи, когда файл с настройками будет намеренно удален (кстати: его необходимо шифровать, но об этом уже шел разговор ранее), следовательно, нужно полностью блокировать программу и требовать административный пароль, который никогда нельзя изменить.

    Не буду приводить исходные коды функций размещения формы поверх всех окон, выключения компьютера и добавления программы в автозагрузку. Их существует много множество. Функций, которые не приведены здесь, ограничены символами {!!!}.

    Успехов в работе!
    Выпуск подготовили:
    Алексей: x-alexis@mail.ru
    © 2002-2003 Рассылка "VB.NET-World"
    © 2000-2002 экс "Мир программирования на VB и HTML"
    Главный редактор: Алексей

    http://subscribe.ru/
    E-mail: ask@subscribe.ru
    Отписаться
    Убрать рекламу

    В избранное