VB6


 главная
 обо мне
 языки
 веб-дизайн
 гитара
 блок-флейта
 ссылки
 фотоальбом
 литература
 разное
 анекдоты
 макраме
 общение
 обновления



http://www.uralweb.ru/

Раскрути свой сайт

поэтический сайт Веры Степановой




Консольное приложение на VBasic 6




На VBasic 6 писать консольные приложения по сути это извращение, так как язык для этого не приспособлен, 
и требуется использование функций WinAPI . Поэтому, у кого ностальгия по Дос программированию, 
то воспользуйтесь GW- Basic или Quick-Basic:).
Идеально консольные приложения писать на С++. 
Но в учебных целях объясню как писать консольное приложение и на VB.
Я напишу не банальное "Хеллё ворлд" ,а настоящее приложение, которое считывает строку с клавиатуры
и выводит на экран. То есть в этом приложении есть всё, что нужно для написания абсолютно любых
консольных приложений!!!
Для начала создаём main-проект, для этого добавляем к проекту пустой модуль, а в свойствах проекта устанавливаем,
что проект запускается не из формы, а именно из sub main, как видете напоминает Си :)
На картинке объвёл этот параметр красным!!!
Теперь в модуль надо поместить декларации нужных функций, их не много. 
Это функции для создания консоли, ввода-вывода в консоль WriteConsole  и ReadConsole
и функция задержки Sleep .


Option Explicit
    Declare Function AllocConsole Lib "kernel32" () As Long
    Declare Function FreeConsole Lib "kernel32" () As Long
    Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
    Declare Function GetStdHandle Lib "kernel32" (ByVal nStdHandle As Long) As Long
    Declare Function ReadConsole Lib "kernel32" Alias "ReadConsoleA" _
    (ByVal hConsoleInput As Long, ByVal lpBuffer As String, ByVal _
    nNumberOfCharsToRead As Long, lpNumberOfCharsRead As Long, lpReserved As Any) As Long
    Declare Function WriteConsole Lib "kernel32" Alias "WriteConsoleA" _
           (ByVal hConsoleOutput As Long, lpBuffer As Any, ByVal _
           nNumberOfCharsToWrite As Long, lpNumberOfCharsWritten As Long, _
           lpReserved As Any) As Long
    Declare Function Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) As Long

А теперь собственно код:

Private Sub Main()

Создаём консоль, объявляем и инициализируем нужные переменные!

    AllocConsole
    Dim hOut, hIn As Long
    hOut = GetStdHandle(-11&)
    hIn = GetStdHandle(-10&)

В переменной s2 будем хранить символьную строку.

    Dim s2 As String * 256

Вводим  значение с клавиатуры.

    ReadConsole hIn, s2, Len(s2), vbNull, vbNull

Формируем строчку для вывода ( убираем мусор ).

    s2 = Left$(s2, InStr(s2, Chr$(0)) - 1)

Выводим на экран.

    WriteConsole hOut, ByVal s2, Len(s2), vbNull, vbNull

Задержка.

    Sleep 4000

Закрываем консоль.

    CloseHandle hOut
    FreeConsole
End Sub

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




© ЯКВ-мистери 2000-2014     kestrens@mail.ru

Hosted by uCoz