|
Консольное приложение на 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
|