Visual Basic: новости сайтов, советы, примеры кодов.
Выпуск 51.

VBNet
  • Статьи
  • Библиотека кодов
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Скоро праздники!!!
    Читайте!

    Содержание выпуска
    • Книги

    • Различный вид формы
    • Где в реестре хранятся все интернет-соединения
    • Получить IP адрес
    • Как программно отсоединиться от Интернета
    • Напечатать Web-страницу
    • Вызвать окно "Установка связи с Интернетом"

    • Вопрос/Ответ

    Книги

    ADO и Visual Basic. Руководство разработчика

     В книге описано использование технологии доступа к данным (ADO) с помощью основного инструмента разработки приложений Microsoft - Visual Basic 6.0. Из книги вы узнаете, как можно исследовать источники данных при помощи окна Data View, как создавать формы для ввода и запроса данных, используя связанные элементы управления, и подсоединяться к источникам данных со сложной иерархической структурой средствами Data Environment. Далее вы изучите, как можно, используя Data Report, представлять информацию в форме, подходящей для печати, или как следует исполнять некоторые, наиболее широко распространенные задачи, связанные с обработкой данных, используя ADO внутри кода Visual Basic. В последних главах книги рассмотрены дополнительные операции, используемые в коде, в том числе формирование данных, для создания иерархических наборов записей, применение ADO в сети Internet и даже создание собственных источников данных. Чтобы более полно использовать средства ADO для извлечения информации из различных источников, в приложении к книге вы найдете справочник по языку SQL, в котором обсуждаются основы работы с оператором SQL SELECT.

    Автор: Гандерлой М.
    Издательсвто: Энтроп, Век
    Год издания: 2001
    Кол-во страниц: 336
    Стоимость: 177 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Excel, VBA, Internet в экономике и финансах

     Книга является руководством по использованию Microsoft Excel, разработке офисных бизнес-приложений средствами VBA и конструированию Web-страниц на базе DHTML и VBScript. Рассматриваются приемы создания отчетной финансовой и экономической документации средствами MS Excel, способы анализа и обработки собранной информации для принятия на ее основе оптимального решения; даются ответы на вопросы, которые возникают у программиста при разработке автоматизированных и интегрированных систем с помощью VBA; описываются особенности конструирования пользовательских элементов управления ActiveX, а также написания Windows-сценариев. Большое внимание уделено принципам создания интерактивных Web-страниц, виртуальных каталогов и магазинов. Книга содержит уникальную коллекцию типичных примеров. Почти каждая глава заканчивается списком упражнений, способствующих закреплению материала

    Автор: Гарнаев А
    Издательсвто: BHV - Санкт - Петербург
    Год издания: 2001
    Кол-во страниц: 816
    Стоимость: 230 р.
    Формат: 70х100/16
    Переплёт: мягкий

    MCSD. Сертификационный экзамен 70-175. Разработка распределенных приложений на Visual Basic 6.0. Учебный курс (+ CD-ROM)

     Настоящий учебный курс рекомендован корпорацией Microsoft как официальное пособие для подготовки к экзамену 70-175 «Designing and Implementing Distributed Applications with Microsoft Visual Basic 6.0» по программе сертификации разработчиков программных решений на основе продуктов Microsoft (Microsoft Certified Solutions Developer, MCSD). Эта книга познакомит Вас с основными понятиями, концепциями и методами, необходимыми для разработок распределенных программных решений на базе Visual Basic 6.0.

    Автор: MCSD Training Kit
    Издательсвто: Русская Редакция
    Год издания: 2000
    Кол-во страниц: 400
    Стоимость: 272 р.
    Формат: 70х100/1670х100/16
    Переплёт: мягкий

    Microsoft Visual Basic 5.0

     В книге рассматривается новая пятая версия Microsoft Visual Basic - языка программирования, являющегося фактическим стандартом визуального проектирования приложений. Описываются общие черты Visual Basic, реализованные в нем концепции объектно-ориентированного программирования, среда разработки (IDE). Далее рассматривается объектно-ориентированная модель Visual Basic и доступные разработчику объектные компоненты. Подробно описываются технологии программирования на языке Visual Basic и SQL, отладка и оптимизация кода приложения, вопросы компиляции исполняемых модулей. В последующих главах освещаются практические вопросы построения приложений - работа с текстом и графикой, механизмы доступа и управления данными, работа с внешними базами данных и создание приложений клиент/сервер. Книга предназначена для широкого круга программистов, работающих в области обработки данных и информационных систем.

    Автор: Шмидт В
    Издательсвто: ABF
    Год издания: 1997
    Кол-во страниц: 688
    Стоимость: 85 р.
    Формат: 84x108/16
    Переплёт: мягкий

    Microsoft Visual Basic 6.0

     Нет описания

    Автор: Лабор В, Макарчук Д
    Издательсвто: нет данных
    Год издания: 2001
    Кол-во страниц: 160
    Стоимость: 60 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Microsoft Visual Basic 6.0. Мастерская разработчика (+ CD-ROM)

     Книга состоит из 3 частей (34 главы) и предметного указателя. Написанная живо и доходчиво, она позволит освоить множество полезных приемов программирования, в том числе объектно-ориентированного, и научит, как создавать 32-разрядные приложения для Windows 95/98 и Windows NT — от экранных заставок до программ, ориентированных на Интернет. Кроме того, Вы узнаете, как расширить возможности языка за счет функций Win32 API и воспользоваться преимуществами технологии ActiveX.

    Автор: Джон Кларк Крейг, Джефф Уэбб
    Издательсвто: Русская Редакция
    Год издания: 2001
    Кол-во страниц: 720
    Стоимость: 272 р.
    Формат: 70х100/16
    Переплёт: твёрдый

    VB Script и ActiveX

     Книга предназначена для разработчиков Web - приложений на языке VBScript, желающих повысить свой профессиональный уровень и стать экспертами в этой области. В ней подробно рассказывается о новых возможностях VBScript, включая использование именованных констант, функций, переменных и коллекций, приводится вся необходимая информация о технологии ActiveX, принципах взаимодействия VBScript и Visual Basic при создании приложений, работающих на сервере. Прочитав эту книгу, вы научитесь использовать звуковые эффекты, создавать анимированную графику, строить формы для ввода данных, узнаете, как с помощью VBScript создать в Web электронный магазин и отслеживать число посетителей и деланные ими покупки. Вы даже сумеете написать увлекательную мультимедийную игру для Web.

    Автор: Скотт Палмер
    Издательсвто: Питер
    Год издания: 1999
    Кол-во страниц: 368
    Стоимость: 94 р.
    Формат: 70х100/16
    Переплёт: мягкий

    VBA 2000. Самоучитель

     В книге содержится краткий курс по использованию языка и системы VBA для Word и Excel 2000. Книга предназначена для начинающих программировать в среде Windows 95/98 с использованием в качестве базовых таких объектов Word и Excel, как документы, рабочие книги, листы и так далее. Материала книги достаточно для создания как простых макросов, помогающих автоматизировать рутинную повторяющуюся работу над документами и электронными таблицами, так и для разработки достаточно сложных приложений, обрабатывающих данные в диалоговых окнах, обеспечивающих пользователя самыми современными интерфейсными средствами.

    Автор: Кузьменко В
    Издательсвто: Бином
    Год издания: 2000
    Кол-во страниц: 416
    Стоимость: 116 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Visual Basic 6 Desktop. Экзамен 70-176

     Книги серии `Экзамен – экстерном` представляют собой удобные, сжатые, хорошо структурированные конспекты для подготовки к сдаче сертификационных экзаменов на звание Microsoft Certified Solution Developer. Книга `Visual Basic 6.0 Desktop. Экзамен 70-176` содержит только действительно необходимый материал, типовые вопросы с ответами и пример экзамена. Возможно, некоторые подходы, применяемые автором, покажутся вам не совсем привычными - не удивляйтесь: это не учебник по Visual Basic; организация материала в этой книге призвана максимально облегчить задачу экзаменуемого. Учтите, что в ряде случаев экзаменационные вопросы выходят за рамки тем, отраженных в документации по Visual Basic, а иной раз правильные ответы на них даже входят в противоречие с `официальной` информацией.

    Автор: Майкл Макдоналд
    Издательсвто: Питер
    Год издания: 2001
    Кол-во страниц: 608
    Стоимость: 123 р.
    Формат: 60x90/16
    Переплёт: мягкий

    Visual Basic 6. Руководство разработчика (+ CD-ROM)

     Эта книга, написанная известным специалистом и неутомимым пропагандистом Visual Basic, представляет собой прекрасный путеводитель по одному из наиболее популярных визуальных средств разработки Windows-приложений. Подробно освещаются такие ключевые темы программирования на Visual Basic, как проектирование и использование элементов ActiveX, программирование баз данных и разработка Web-приложений. Несомненный интерес представляют главы, посвященные работе с графикой. Большое количество тщательно продуманных примеров облегчает восприятие материала. Подбор материала и стиль изложения делают издание интересным и полезным для программистов разных уровней.

    Автор: Евангелос Петрусос
    Издательсвто: BHV, Ирина, SYBEX Inc
    Год издания: 2000
    Кол-во страниц: 1072
    Стоимость: 267 р.
    Формат: 70x100/32
    Переплёт: твёрдый

    Остальные книги о VB можно найти     здесь.

    наверх

    Различный вид формы

    Данный пример добавляет почти по границе формы небольшую кайму, определяющую внешний вид формы.

    Такой вид, как если бы на форме присутствовал элемент Frame, CommandButton или нажатый CommandButton.

    Private Const BDR_SUNKENOUTER = &H2
    Private Const BDR_RAISEDINNER = &H4
    Private Const BF_BOTTOM = &H8
    Private Const BF_LEFT = &H1
    Private Const BF_RIGHT = &H4
    Private Const BF_TOP = &H2
    Private Const EDGE_ETCHED = (BDR_SUNKENOUTER Or BDR_RAISEDINNER)
    Private Const BF_RECT = (BF_LEFT Or BF_TOP Or BF_RIGHT Or BF_BOTTOM)

    Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
    End Type

    Private Declare Function DrawEdge Lib "user32" (ByVal hdc As Long, qrc As RECT, ByVal edge As Long, ByVal grfFlags As Long) As Long
    Private Declare Function SetRect Lib "user32" (lpRect As RECT, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

    Private Sub Form_Paint()
    Dim TRect As RECT
    Me.ScaleMode = vbPixels
    SetRect TRect, 10, 10, Me.ScaleWidth - 10, Me.ScaleHeight - 10
    'вы можете использовать одну из трех строчек ниже
    'DrawEdge Me.hdc, TRect, EDGE_ETCHED, BF_RECT
    DrawEdge Me.hdc, TRect, BDR_SUNKENOUTER, BF_RECT
    'DrawEdge Me.hdc, TRect, BDR_RAISEDINNER, BF_RECT
    End Sub

    наверх

    Где в реестре хранятся все интернет-соединения

    ключ HKEY_CURRENT_USER\RemoteAccess\Addresses

    наверх

    Получить IP адрес

    Как вы знаете (или не знаете), при вашем подключении к Интернету, вашему компьютеру назначается адрес, по которому вас можно идентифицировать в сети: что-то типа 201.194.10.12. Так вот этот пример и покажет вам ваш текущий адрес.

    '1 ВАРИАНТ
    'Расположите на форме компонент Winsock(Winsock1) через меню Project|Components - Microsoft Winsock Control 6.0

    Private Sub Form_Load()
    MsgBox Winsock1.LocalIP
    End Sub

    '2 ВАРИАНТ

    'Вставьте следующий код в событие формы
    Private Sub Form_Load()
    MsgBox "IP Host Name: " & GetIPHostName()
    MsgBox "IP Address: " & GetIPAddress()
    End Sub

    'Добавьте модуль в проект. Вставьте следующий код в модуль
    Public Const MAX_WSADescription = 256
    Public Const MAX_WSASYSStatus = 128
    Public Const ERROR_SUCCESS As Long = 0
    Public Const WS_VERSION_REQD As Long = &H101
    Public Const WS_VERSION_MAJOR As Long = WS_VERSION_REQD \ &H100 And &HFF&
    Public Const WS_VERSION_MINOR As Long = WS_VERSION_REQD And &HFF&
    Public Const MIN_SOCKETS_REQD As Long = 1
    Public Const SOCKET_ERROR As Long = -1
    Public Type HOSTENT
    hName As Long
    hAliases As Long
    hAddrType As Integer
    hLen As Integer
    hAddrList As Long
    End Type
    Public Type WSADATA
    wVersion As Integer
    wHighVersion As Integer
    szDescription(0 To MAX_WSADescription) As Byte
    szSystemStatus(0 To MAX_WSASYSStatus) As Byte
    wMaxSockets As Integer
    wMaxUDPDG As Integer
    dwVendorInfo As Long
    End Type
    Public Declare Function WSAGetLastError Lib "WSOCK32.DLL" () As Long
    Public Declare Function WSAStartup Lib "WSOCK32.DLL" (ByVal wVersionRequired As Long, lpWSADATA As WSADATA) As Long
    Public Declare Function WSACleanup Lib "WSOCK32.DLL" () As Long
    Public Declare Function gethostname Lib "WSOCK32.DLL" (ByVal szHost As String, ByVal dwHostLen As Long) As Long
    Public Declare Function gethostbyname Lib "WSOCK32.DLL" (ByVal szHost As String) As Long
    Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long)
    Public Function GetIPAddress() As String
    Dim sHostName As String * 256
    Dim lpHost As Long
    Dim HOST As HOSTENT
    Dim dwIPAddr As Long
    Dim tmpIPAddr() As Byte
    Dim i As Integer
    Dim sIPAddr As String
    If Not SocketsInitialize() Then
    GetIPAddress = ""
    Exit Function
    End If
    If gethostname(sHostName, 256) = SOCKET_ERROR Then
    GetIPAddress = ""
    MsgBox "Windows Sockets error " & Str$(WSAGetLastError()) & " has occurred. Unable to successfully get Host Name."
    SocketsCleanup
    Exit Function
    End If
    sHostName = Trim$(sHostName)
    lpHost = gethostbyname(sHostName)
    If lpHost = 0 Then
    GetIPAddress = ""
    MsgBox "Windows Sockets are not responding. " & "Unable to successfully get Host Name."
    SocketsCleanup
    Exit Function
    End If
    CopyMemory HOST, lpHost, Len(HOST)
    CopyMemory dwIPAddr, HOST.hAddrList, 4
    ReDim tmpIPAddr(1 To HOST.hLen)
    CopyMemory tmpIPAddr(1), dwIPAddr, HOST.hLen
    For i = 1 To HOST.hLen
    sIPAddr = sIPAddr & tmpIPAddr(i) & "."
    Next
    GetIPAddress = Mid$(sIPAddr, 1, Len(sIPAddr) - 1)
    SocketsCleanup
    End Function
    Public Function GetIPHostName() As String
    Dim sHostName As String * 256
    If Not SocketsInitialize() Then
    GetIPHostName = ""
    Exit Function
    End If
    If gethostname(sHostName, 256) = SOCKET_ERROR Then
    GetIPHostName = ""
    MsgBox "Windows Sockets error " & Str$(WSAGetLastError()) & " has occurred. Unable to successfully get Host Name."
    SocketsCleanup
    Exit Function
    End If
    GetIPHostName = Left$(sHostName, InStr(sHostName, Chr(0)) - 1)
    SocketsCleanup
    End Function
    Public Function HiByte(ByVal wParam As Integer)
    HiByte = wParam \ &H100 And &HFF&
    End Function
    Public Function LoByte(ByVal wParam As Integer)
    LoByte = wParam And &HFF&
    End Function
    Public Sub SocketsCleanup()
    If WSACleanup() <> ERROR_SUCCESS Then
    MsgBox "Socket error occurred in Cleanup."
    End If
    End Sub
    Public Function SocketsInitialize() As Boolean
    Dim WSAD As WSADATA
    Dim sLoByte As String
    Dim sHiByte As String
    If WSAStartup(WS_VERSION_REQD, WSAD) <> ERROR_SUCCESS Then
    MsgBox "The 32-bit Windows Socket is not responding."
    SocketsInitialize = False
    Exit Function
    End If
    If WSAD.wMaxSockets < MIN_SOCKETS_REQD Then
    MsgBox "This application requires a minimum of " & CStr(MIN_SOCKETS_REQD) & " supported sockets."
    SocketsInitialize = False
    Exit Function
    End If
    If LoByte(WSAD.wVersion) < WS_VERSION_MAJOR Or (LoByte(WSAD.wVersion) = WS_VERSION_MAJOR And HiByte(WSAD.wVersion) < WS_VERSION_MINOR) Then
    sHiByte = CStr(HiByte(WSAD.wVersion))
    sLoByte = CStr(LoByte(WSAD.wVersion))
    MsgBox "Sockets version " & sLoByte & "." & sHiByte & " is not supported by 32-bit Windows Sockets."
    SocketsInitialize = False
    Exit Function
    End If
    SocketsInitialize = True
    End Function

    наверх

    Как программно отсоединиться от Интернета

    Добавьте на форму элемент CommandButton. При нажатии на кнопку происходит вызов функции HangUp, которая закрывает соединение с Интернетом.

    Const RAS_MAXENTRYNAME As Integer = 256
    Const RAS_MAXDEVICETYPE As Integer = 16
    Const RAS_MAXDEVICENAME As Integer = 128
    Const RAS_RASCONNSIZE As Integer = 412
    Const ERROR_SUCCESS = 0&
    Private Type RasEntryName
    dwSize As Long
    szEntryName(RAS_MAXENTRYNAME) As Byte
    End Type
    Private Type RasConn
    dwSize As Long
    hRasConn As Long
    szEntryName(RAS_MAXENTRYNAME) As Byte
    szDeviceType(RAS_MAXDEVICETYPE) As Byte
    szDeviceName(RAS_MAXDEVICENAME) As Byte
    End Type
    Private Declare Function RasEnumConnections Lib "rasapi32.dll" Alias "RasEnumConnectionsA" (lpRasConn As Any, lpcb As Long, lpcConnections As Long) As Long
    Private Declare Function RasHangUp Lib "rasapi32.dll" Alias "RasHangUpA" (ByVal hRasConn As Long) As Long
    Private gstrISPName As String
    Public ReturnCode As Long

    Public Sub HangUp()
    Dim i As Long
    Dim lpRasConn(255) As RasConn
    Dim lpcb As Long
    Dim lpcConnections As Long
    Dim hRasConn As Long
    lpRasConn(0).dwSize = RAS_RASCONNSIZE
    lpcb = RAS_MAXENTRYNAME * lpRasConn(0).dwSize
    lpcConnections = 0
    ReturnCode = RasEnumConnections(lpRasConn(0), lpcb, lpcConnections)
    If ReturnCode = ERROR_SUCCESS Then
    For i = 0 To lpcConnections - 1
    If Trim(ByteToString(lpRasConn(i).szEntryName)) = Trim(gstrISPName) Then
    hRasConn = lpRasConn(i).hRasConn
    ReturnCode = RasHangUp(ByVal hRasConn)
    End If
    Next i
    End If
    End Sub

    Public Function ByteToString(bytString() As Byte) As String
    Dim i As Integer
    ByteToString = ""
    i = 0
    While bytString(i) = 0&
    ByteToString = ByteToString & Chr(bytString(i))
    i = i + 1
    Wend
    End Function

    Private Sub Command1_Click()
    Call HangUp
    End Sub

    наверх

    Напечатать Web-страницу

    Требуется Интернет Эксплорер версии 4 и выше. Перед началом печати будет показан диалог печати.

    Добавьте элемент CommandButton.

    Private Const MAX_PATH = 255
    Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
    Public Function PrintWebPage(ByVal URL As String) As Boolean
    Dim sFile As String
    sFile = SystemDir & "\MSHTML.DLL"
    If Dir(sFile) = "" Then Exit Function
    On Error Resume Next
    Shell "rundll32.exe " & sFile & ",PrintHTML " & URL, vbNormalFocus
    PrintWebPage = Err.Number = 0
    End Function
    Private Function SystemDir() As String
    Dim sRet As String, lngRet As Long
    sRet = String$(MAX_PATH, 0)
    lngRet = GetSystemDirectory(sRet, MAX_PATH)
    SystemDir = Left(sRet, lngRet)
    End Function

    Private Sub Command1_Click()
    PrintWebPage "http://vbnet.ru"
    End Sub

    наверх

    Вызвать окно "Установка связи с Интернетом"

    Данный код вызывает окно "Установка связи" из "Удаленный доступ к сети". Естественно, вы должны знать имя текущего соединения с интернетом.

    Private Sub Form_Load()
    Result = Shell("rundll32.exe rnaui.DLL,RnaDial " & "connection_name", 1)
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     EUgene

    Ответ ожидается по этому адресу

    Скажите пожалуйста, могу ли я через VB - узнать: дату и время создания файла COMMAND.COM, если да- то как?

    Автор вопроса: Вано

    Ответ ожидается по этому адресу

    Даны два двумерных массива. После ввода первого массива, должен отображаться другой, но с условием что строки и столбцы этого массива будут перевернуты, т.е. первый элемент массива один должен стать последним элементом второго массива. И так со всеми элементами.

    Автор вопроса: CyRax

    Ответ ожидается по этому адресу

    Какие функции VB(встроенные или API) можно использовать для работы с памятью?

    Автор вопроса: Sensey

    Ответ ожидается по этому адресу

    У кого имеется туторы и справки по VB и 3D MAX можете закидать мой почтовый ящик

    Автор вопроса: alex

    Ответ ожидается по этому адресу

    Пример:
    Private Sub cmdSave_KeyPress(KeyAscii As Integer)
    If ((KeyAscii = vbKeyReturn) Or (KeyAscii = vbKeyTab)) Then
    Saving
    End If
    End Sub
    Вопрос: почему-то такой код нормально реагирует на , но никак не реагирует на . Может, кто янает?

    Автор вопроса: Alexandr

    Ответ ожидается по этому адресу

    Как программно перетащить ярлык файла в RichTextBox ? Обращаюсь к янатокам Visual Basic. Элементарная на первый вягляд яадача. Требуется программно сформировать в RichTextBox текст, содержащий таблицу в смысле MS Word.
    Делаю так.
    sFileRTF=App.Path & "\tmp.rtf"
    Set wrd = New Word.Application
    Set objDoc = New Word.Document
    With objDoc.ActiveWindow.Selection
    .TypeText rsI.Fields("titul")
    .TypeText rsI.Fields("adres")
    .TypeText ""
    ' и т.д.
    Set objTable = ActiveDocument.Tables.Add(Range:=Selection.Range, _
    NumRows:=1, NumColumns:=4)
    End With
    objDoc.SaveAs sFileRTF, FileFormat:=wdFormatRTF
    Me.RichTextBox1.LoadFile sFileRTF, rtfRTF

    А табличек на экране нету, только голый текст. Хотя, если открыть в MS Word файл tmp.rtf, то там все в порядке, таблички на месте.

    Теперь делаем такой фокус.
    Открываем Проводник. Хватаем "мышкой" ярлык файла "tmp.rtf" и тащим его на RichTextBox.
    Все садится прекрасно.
    Вопрос: как это перетаскивание сделать программно вместо LoadFile ?
    Скорее всего должна быть API-функция такая.
    Поиски методом тыка не увенчались успехом.
    Кто-нибудь сталкивался с этой яадачей ?

    Автор вопроса: Белоусов Артем

    Ответ ожидается по этому адресу

    Подскажите пожалуйста как в CommonDialog настроить фильтр на расширение tst.

    Автор вопроса: Николай

    Ответ ожидается по этому адресу

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

    Автор вопроса: Василий

    Ответ ожидается по этому адресу

    Подскажите как в VBA прописать winsock !

    Автор вопроса: Vladimir

    Ответ ожидается по этому адресу

    Как в Visual Basic открывается форма для выбора каталогов, можно ли при помощи Win_API?

    Автор вопроса: FAS

    Ответ ожидается по этому адресу

    Подскажите, пожалуйста, как можно узнать:
    1) Объем заданного диска;
    2) Сколько места свободно;
    3) Сколько места занято.

    Автор вопроса: sapient

    Ответ ожидается по этому адресу

    Народ, вы случаем не в курсе, нет ли в Excel-ном VB встроенной функции, для конвертания адреса ячйки из формата R1C1 (R26C27) в A1 (AA26)???

    Автор вопроса: Владимир Б.

    Ответ ожидается по этому адресу

    Необходимо подключить БД Paradox, стандартными способами не могу подключить,говорит что БД не того формата.Может кто-то подскажет как это сделать.

    Ответы:

    Вопрос:

    У меня у формы BorderStyle=0, как мне программно поменять его на 1 или 2, если написать просто form1.borderstyle=1, то ничего не происходит.

    Ответ:

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

    Этот небольшой пример показывает как можно на лету менять структуру окна (внешний вид и не только).

    Создайте форму (Form1), поместите на неё пять кнопок (Command1, Command2, Command3, Command4, Command5) и данный код.

    Вся информация взята из книги "Win32 и Visual BASIC. Для профессионалов(+CD)". Автор Dan Appleman's. Большая благодарность автору!!! Цена книге соответствует.

    В коде есть только одна проблема. После использования функции SetWindowLong окно меняет свои свойства, но не перерисовывается. Для этого я использовал изменения размеров окна. Наверное можно использовать что-нибудь попроще с использованием SendMessage или как нибудь еще.

    Option Explicit
    Dim tmplong As Long
    Dim tmplong1 As Long

    ' Основные параметры окна
    Const WS_OVERLAPPED& = &H0& ' при создании - окно с рамкой и заголовком, в работе - ошибка защиты Windows
    Const WS_MAXIMIZEBOX& = &H10000 ' для окна - наличие кнопки минимизировать
    Const WS_TABSTOP& = &H10000 ' для других элементов - закрепление позиции табуляции
    Const WS_MINIMIZEBOX& = &H20000 ' для окна - наличие кнопки свернуть
    Const WS_GROUP& = &H20000 ' для остального - является началом группы элементов
    Const WS_THICKFRAME& = &H40000 ' для окна - размеры окна меняются за толстую рамку
    Const WS_SYSMENU& = &H80000 ' в левой части окна есть кнопка системного меню
    Const WS_HSCROLL& = &H100000 ' в окне есть горизонтальная полоса прокрутки
    Const WS_VSCROLL& = &H200000 ' в окне есть вертикальная полоса прокрутки
    Const WS_DLGFRAME& = &H400000 ' окно с двойной рамкой но нет заголовка
    Const WS_BORDER& = &H800000 ' окно с рамкой
    Const WS_CAPTION& = &HC00000 ' окно с рамкой и заголовком
    Const WS_MAXIMIZE& = &H1000000 ' окно развернуто
    Const WS_CLIPCHILDREN& = &H2000000 ' в окне нельзя рисовать поверх других элементов (аналог свойства ClipControls)
    Const WS_CLIPSIBLINGS& = &H4000000 ' запрещает дочернему окну рисовать поверх другого дочернего окна
    Const WS_DISABLED& = &H8000000 ' окно заблокировано (аналог Enable = False)
    Const WS_VISIBLE& = &H10000000 ' окно является видимым (аналог Visible = True)
    Const WS_MINIMIZE& = &H20000000 ' окно свернуто
    Const WS_CHILD& = &H40000000 ' окно является дочерним (надо установить после SetPatent)
    Const WS_CHILDWINDOW& = (WS_CHILD) '
    Const WS_POPUP& = &H80000000 ' окно является всплывающим
    Const WS_OVERLAPPEDWINDOW& = (WS_OVERLAPPED Or WS_CAPTION Or WS_SYSMENU Or WS_THICKFRAME Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX)
    Const WS_POPUPWINDOW& = (WS_POPUP Or WS_BORDER Or WS_SYSMENU)
    Const WS_TILED& = WS_OVERLAPPED '
    Const WS_TILEDWINDOW& = WS_OVERLAPPEDWINDOW '

    ' Расширенные параметры окна
    Const WS_EX_LEFT& = &H0& ' значение по умолчанию
    Const WS_EX_LTRREADING& = &H0& ' значение по умолчанию
    Const WS_EX_RIGHTSCROLLBAR& = &H0& ' значение по умолчанию
    Const WS_EX_DLGMODALFRAME& = &H1& ' окно имеет двойную рамку
    Const WS_EX_NOPARENTNOTIFY& = &H4& ' Windows не будет уничтожать это окно
    Const WS_EX_TOPMOST& = &H8& ' окно находится поверх остальных у которых бит не установлен
    Const WS_EX_ACCEPTFILES& = &H10& ' окно принимает файлы при перетаскивании из диспетчера файлов (?)
    Const WS_EX_TRANSPARENT& = &H20& ' окно является прозрачным и не скрывает окна под собой
    Const WS_EX_MDICHILD& = &H40& ' окно имеет уменьшенный заголовок и не отображается в панели задач
    Const WS_EX_TOOLWINDOW& = &H80& ' окно представляет собой кнопку, содержащую растр вместо текста
    Const WS_EX_WINDOWEDGE& = &H100& ' окно имеет приподнятую рамку
    Const WS_EX_CLIENTEDGE& = &H200& ' окно имеет утопленную рамку
    Const WS_EX_CONTEXTHELP& = &H400& ' в заголовке есть кнопка с вопросом.
    Const WS_EX_RIGHT& = &H1000& ' если WS_EX_RTLREADING установлен текст выравнивается по правому краю
    Const WS_EX_RTLREADING& = &H2000& ' в иврите и арабском языке текст вывлдится справа налево
    Const WS_EX_LEFTSCROLLBAR& = &H4000& ' если WS_EX_RTLREADING установлен полоса прокрутки перемещается налево
    Const WS_EX_CONTROLPARENT& = &H10000 ' клавиша Tab вызывает переключение между дочерними окнами данного окна
    Const WS_EX_STATICEDGE& = &H20000 ' объемное оформление
    Const WS_EX_APPWINDOW& = &H40000 ' свернутое приложение помещается в панель задач

    ' Разновидность параметра
    Const GWL_WNDPROC& = (-4) ' адрес функции окна
    Const GWL_HINSTANCE& = (-6) ' манипулятор экземпляра, владеющего заданным окном
    Const GWL_HWNDPARENT& = (-8) ' манипулятор родителя для заданного окна (лучше только читать, для записи SetParent)
    Const GWL_ID& = (-12) ' идентификатор дочернего окна в диалоговой панели
    Const GWL_STYLE& = (-16) ' СТИЛЬ ОКНА
    Const GWL_EXSTYLE& = (-20) ' РАСШИРЕННЫЙ СТИЛЬ ОКНА
    Const GWL_USERDATA& = (-21) ' параметры определяются приложением (что то навроде Tag)

    ' функции для чтения и записи информации о структуре окна
    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    'Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

    ' приведение окна к нормальному виду (можно его нормально закрыть)
    Private Sub Command1_Click()
    SetWindowLong Me.hwnd, -16, tmplong 'GetWindowLong(Me.hwnd, -16) Or WS_CAPTION& Or WS_THICKFRAME&
    Me.Height = Me.Height - 10
    Me.Height = Me.Height + 10
    End Sub

    ' кнопка убирает заголовок окна режим BorderStyle=2
    Private Sub Command2_Click()
    SetWindowLong Me.hwnd, -16, tmplong And (Not WS_CAPTION&)
    Me.Height = Me.Height - 10
    Me.Height = Me.Height + 10
    End Sub

    ' кнопка убирает толстую рамку. режим BorderStyle=1
    Private Sub Command3_Click()
    SetWindowLong Me.hwnd, -16, tmplong And (Not WS_THICKFRAME&)
    Me.Height = Me.Height - 10
    Me.Height = Me.Height + 10

    End Sub

    ' кнопка убирает толстую рамку. режим BorderStyle=0
    Private Sub Command4_Click()
    SetWindowLong Me.hwnd, -16, tmplong And (Not (WS_THICKFRAME& Or WS_CAPTION&))
    Me.Height = Me.Height - 10
    Me.Height = Me.Height + 10
    End Sub

    'кнопка утопляет поверхность формы
    Private Sub Command5_Click()
    SetWindowLong Me.hwnd, -20, tmplong1 Or WS_EX_CLIENTEDGE&
    Me.Height = Me.Height - 10
    Me.Height = Me.Height + 10
    End Sub

    ' при загрузке формы желательно сохранить ее параметры в переменных
    ' и восстановить их при ее удалении,
    ' а то можно получить ошибку защиты
    Private Sub Form_Load()
    tmplong = GetWindowLong(Me.hwnd, -16) Or WS_VISIBLE&
    tmplong1 = GetWindowLong(Me.hwnd, -20)
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    SetWindowLong Me.hwnd, -16, tmplong And Not WS_VISIBLE&
    SetWindowLong Me.hwnd, -20, tmplong1
    End Sub

    ' Т.е. вид окна определяется набором флагов.
    ' Для установки SetWindowLong Me.hwnd, GWL_ ... , GetWindowLong(Me.hwnd, GWL_ ....) Or (сбрасываемое значение WS_ или WS_EX)
    ' Для сброса SetWindowLong Me.hwnd, GWL_ ... , GetWindowLong(Me.hwnd, GWL_ ....) And Not (сбрасываемое значение WS_ или WS_EX)

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:

             Сурменок Павел


Выпуск 52.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Очередной 52-ой выпуск рассылки!
    Читайте!

    Содержание выпуска
    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Visual Basic 6. Мастер. Руководство для профессионалов

     Язык программирования Visual Basic - мощный инструмент разработки приложений для 32-разрядных систем Windows 95 и Windows NT. В книге рассматриваются как фундаментальные понятия и темы: от установки продукта на компьютер пользователя и описания интегрированной среды разработки до изложения основ техники программирования на Visual Basic, так и сложные вопросы, адресованные профессиональным программистам: создание интерфейса пользователя, применение стандартных элементов управления, в том числе и для работы с базами данных, программирование компонентов ActiveX, описание технологии OLE drag-and-drop, объектная модель FSO, функции работы с файлами, отладка и оптимизация программ, локализация и распространение готовых приложений.

    Автор: нет даных
    Издательсвто: нет данных
    Год издания: 1998
    Кол-во страниц: 992
    Стоимость: 112,48 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Visual Basic 6. Специальный справочник

     Главная цель этого справочника - научить читателя использовать инструменты и средства Visual Basic, позволяющие значительно облегчить и ускорить процесс создания приложений. Здесь вы найдете описание элементов языка, библиотечных функций и SQL-операторов. Особое внимание уделено различным мастерам, предназначенным для решения стандартных задач. Весь справочный материал в книге разбит на главы, в каждой из которых вы найдете информацию по созданию приложения определенной направленности. Разделы в главе содержат пошаговое описание операций, которые нужно выполнить для решения поставленной задачи, синтаксис необходимых операторов, а также подробно разобранные примеры. Предлагаемый справочник будет полезен не только пользователям, активно работающим с Visual Basic 6, но и начинающим программистам, желающим перейти к профессиональной разработке приложений с наименьшими затратами времени на изучение новой среды программирования.

    Автор: Б. Карпов
    Издательсвто: Питер
    Год издания: 2000
    Кол-во страниц: 416
    Стоимость: 70,78 р.
    Формат: 84х108/32
    Переплёт: нет данных

    Visual Basic 6.0 for application

     Книга является систематизированным справочником по всем элементам языка программирования Visual Basic (VB), входящим, как в автономную версию VB, так и в основные реализации Visual Basic for Applications.
    Помимо тех официальных сведений, которые можно найти в документации и в справочной системе, книга содержит конкретные примеры, рекомендации и маленькие хитрости программиста, а также поправки к справочной системе, которая, увы, не без ошибок.
    Книга предназначена для всех специалистов, занимающихся разработкой приложений с применением Visual Basic и Visual Basic for Applications.

    Автор: Король В.И.
    Издательсвто: КУДИЦ-Образ
    Год издания: 2000
    Кол-во страниц: 448
    Стоимость: 113,87 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Win32 API и Visual Basic. / Для профессионалов /

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

    Автор: Д. Эпплман
    Издательсвто: Питер
    Год издания: 2001
    Кол-во страниц: 1120
    Стоимость: 489,08 р.
    Формат: нет данных
    Переплёт: нет данных

    Азбука программирования в Windows 32 API

     Изложены вопросы создания программных приложений для Window95 и Windows NT. Описаны основные типы переменных, макросов, функций. Материал книги иллюстрируется многочисленными примерами. 1 Настоящее издание (второе вышло в 2000 г.) дополнено описанием тех возможностей Windows, которые не были упомянуты в предыдущих изданиях.

    Автор: Румянцев П.В.
    Издательсвто: Радио и связь
    Год издания: 2001
    Кол-во страниц: 312
    Стоимость: 85 р.
    Формат: 60х88/16
    Переплёт: нет данных

    Использование Visual Basic 6. Специальное издание

     В книге описана новая версия популярной системы программирования Visual Basic 6. Изложение материала построено по принципу "от простого к сложному". Первые главы этой книги адресованы новичкам, из которых они смогут почерпнуть основы языка Visual Basic и описание его стандартных компонентов. Для подготовленных пользователей будет интересен раздел, посвященный специальным методам программирования с использованием стандартных компонентов Windows, элементов управления ActiveX, ADO. RDO и др. В отдельную часть вынесены вопросы, связанные с разработкой приложений баз данных на Visual Basic и работе в Internet. Автор не обошел также вниманием различные версии языка Visual Basic - VBA и VBScript. В приложениях приведен обзор интегрированной среды разработки Visual Basic, а также краткий справочник по SQL.
    Книга рассчитана на широкий круг читателей.

    Автор: Сайлер Б., Споттс Дж.
    Издательсвто: Вильямс
    Год издания: 1999
    Кол-во страниц: 832
    Стоимость: 244,02 р.
    Формат: 70х100/16
    Переплёт: твёрдый

    Обработка баз данных на Visual Basic 6 + CD

     Сердцем многих приложении, работающих в сфере бизнеса, являются базы данных. Своим широким распространением они обязаны возможности централизованного доступа к информации. который характеризуется последовательностью, эффективностью и относительной простотой создания и поддержки. В книге "Обработка баз данных на Visual Basic 6" описываются все технологии доступа к базам данных с помощью Visual Basic. Приведенные в этой книге примеры взяты из реальной жизни, поэтому, ознакомившись с ними, вы узнаете, как можно использовать базы данных для принятия решений в сфере бизнеса. Если вы еще не готовы перейти к версии Visual Basic 6, это вовсе не значит, что данная книга вам не подходит. Практически 95% материала этой книги удовлетворит в равной степени пользователей как пятой, так и шестой версий Visual Basic.
    Книга рассчитана на программистов средней и высокой квалификации.

    Автор: Мак-Манус Дж.П.
    Издательсвто: Вильямс
    Год издания: 1999
    Кол-во страниц: 672
    Стоимость: 294,66 р.
    Формат: 70х100/16
    Переплёт: твёрдый

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 28.04.2002 10:12 | Раздел: Примеры кода | Автор: Беляев Данила

    Call - Вызов функций по адресу, например вызов любой функции из DLL без предварительного объявления в VB. Смысл примера в том, что он позволяет делать вызов на определённый адрес, например адрес функции из загруженой DLL. Т.е. оператор Call языка Visual Basic представляет собой инструкцию вызывающую функции и процедуры текущей программы и не может работать с иными адресами, поэтому пришлось написать небольшую библиотеку.

    Дата: 27.04.2002 06:20 | Раздел: Примеры кода | Автор: Игорь Малиновский

    GetWindowRect - Пример показывает как определять местоположение окна на экране. Это дело определяется с помощью функции GetWindowRect. Функция возвращает кординаты позиции формы на экране. Полученные данные можно использовать например как в данном случае, чтобы форма не потерялась за пределами экрана. А заменив hwnd она на другой можно узнавать позицию и других окон в проекте, а также и элементов управления на любой форме проекта. Запустив пример, можно попробовать закинуть форму за приделы экрана.

    Дата: 26.04.2002 06:10 | Раздел: Примеры кода | Автор: Беляев Данила

    Speaker - Хотите поиграть с системным динамиком компьютера? Вот пример и DLL к нему! Можно выключать. включать динамик, ну и конечно же изменять частоту звука.

    Последние 20 тем форума на VBNet.Ru:

    23:41 / 27 апр. Новое сообщение без темы | Ответов: 0
    21:28 / 27 апр. Инсталл VIsual Studio 7(NET) | Ответов: 0
    21:06 / 27 апр. Кто знает Quick Basic | Ответов: 1
    20:57 / 27 апр. Как средствами VB закинуть пару файлов на сервак? | Ответов: 0
    20:52 / 27 апр. ШО ТАКОЕ VB.NET??? | Ответов: 1
    20:40 / 27 апр. VB.NET | Ответов: 0
    16:28 / 27 апр. Снова сетевое | Ответов: 1
    13:28 / 27 апр. параметры между формами | Ответов: 1
    09:01 / 27 апр. проигрователь | Ответов: 1
    01:58 / 27 апр. Хочу чтобы страница обновлялась каждые... | Ответов: 0
    18:18 / 26 апр. 2 вопроса | Ответов: 1
    18:14 / 26 апр. Activ-X | Ответов: 0
    16:17 / 26 апр. Как записать CD-RW диск средствами VB | Ответов: 2
    15:02 / 26 апр. Новое сообщение без темы | Ответов: 0
    14:59 / 26 апр. TrackPopupMenu | Ответов: 1
    13:35 / 26 апр. Эмитация нажатия Tab и Shift+Tab | Ответов: 0
    12:22 / 26 апр. Для тех кто работал с Visual Studio 7(NET) | Ответов: 0
    09:38 / 26 апр. Работа с FTP/HTTP | Ответов: 0
    00:58 / 26 апр. Есть такая проблемка .... | Ответов: 2
    00:47 / 26 апр. Как запустить *.doc файл из VB? | Ответов: 1

    Последние поступления в Библиотеку кодов:

    Нет новых кодов.

    наверх

    Новости сайта VBMania

    • 15.04 - В связи с резким увеличением числа вопросов, поступающих на e-mail администрации сайта, было решено не дожидаться открытия форума, и начать отвечать на вопросы прямо на главной странице. Обсуждению последней новости ответы на вопросы не помешают. Вашего совета ждут, на ваш вопрос ответят.
    • 25.01 - Сегодня открылся новый раздел, в котором вы можете найти ссылки на целую кучу книг по тематике VB и около него.
    • 22.01 - 22 января вышел второй номер он-лайн журнала о Visual Basic 'VB Мания'. В нем можно почитать авторские статьи в уже устоявшихся разделах: Технологии, Система, Графика, Профессия, Человечество и Юмор. Так же не обошлось без новшеств: появился новый раздел dotNET и особенно рецензии ActiveX-компонентов. Обязательно заходите.
    • 17.12 - В связи с тем что форум не горел желаением вести себя так, как должен обычный, порядочный форум, мы его прикрыли для проведения разъяснительных мероприятий. Надеемся, что они не затянутся и форум образумится.
    • 06.12 - С сегодняшнего дня все желающие могут добавлять свои новости и статьи в наши архивы.
      Да здраствует открытость!
    • 27.11 - Наконец-то, после долгих дней и бессонных ночей это свершилось! Сайт объявляется открытым! Непременно прочитайте первый номер нашего журнала. Оцените наши дополнительные проекты. И конечно мы ждем ваших откликов в гостевой книге и по почте.
    • 01.12 - Произошло несколько косметических улучшений, касающихся исключительно удобства работы с сайтом. Во-первых, можно видеть количество записей обсуждения новостей на главной странице; а во-вторых чуточку подправились директории.
      Оценяйте!

    наверх

    Новости сайта Азбука VB

    • 10 апреля 2001 года
      Создание простого аналога к ListView на примере Mp3 проводника!. Пример создания листа + слайдера + применение как браузера.
      Создание прогрессбара. Еще один оригинальный вариан создания своего прогрессбара.
      Сохранения данных с рабочего листа Excel в Dbase таблицу. В связи с тем, что dbase формат до сих пор очень сильно распространен, очень часто возникает необходимость сохранения данных с рабочего листа Excel в Dbase таблицу.
      Разборка форматированного текста состояшего из шести значений разделённых символом ";". Пример разборки форматированного текста состояшего из шести значений разделённых символом ";" с последуюшеё записью каждого значения в свою ячейку. Макрос также обрабатывает все непустые ячеки столбца.
      Плагины! Создание и работа с ними. На примерах показано, как создавать плагины и как с ними можно работать.
      Проверка на слэш (способ 2). Как избежать ошибки при обращении к файлу? Иногда нужно обратиться к файлу, используя три объекта: Drive (Диск), Dir (Каталоги) и File (Файлы). Drive.Drive возвращает значение равное "?:\", где ? - буква диска. Dir.Path возвращает значение равное "?:\?", где в первом случае ? - буква диска, а во втором - каталог. File.Filename же возвращает имя файла. Если нужно открыть файл на корневом каталоге (?:\), то делается это следующим образом:
      'Справочники Советов' - Пять справочников !!!. Здесь собраны и скомпилированы в Help-файлы - "Советы тем, кто программирует на VB" А. Колесова и О. Павловой. Советы разбиты на 5 файлов (по 100 штук в каждом). Советы начинаются с № 1 (еще по VB3 - 1996 г.) по 2001 год включительно, в связи с переходом на работу в другой журнал, у последних советов появился новый соавтор Малинин. В 5-й файл добавлена статья Колесова (с советами) по работе с API-функциями.

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Kurt Haeldar

    Ответ ожидается по этому адресу

    У меня вопрос к янатокам в области API-функций. Есть такая строка:
    call MCIExecute("play c:\fun\music\age 1.wav")
    Описание проблемы - судя по всему, функция не хочет принимать имя файла, в котором содержатся пробелы. Вопрос - можно ли эту функцию "научить" понимать пробелы в имени файла и если да, то каким методом?

    Автор вопроса: DDT

    Ответ ожидается по этому адресу

    Подскажите плз, как можно программно настроить реестр вин 98. В частности мне надо исправить значения переменных в разделе

    HKEY_USERS\.DEFAULT\AppEvents\EventLabels

    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

    Здратвуйте в чём причина когда я перехожу в "коде" на русский то печатает непонятными символами раньше всё было нармально а сёйчас стало так может какие нибудь настройки сбились или что?

    Автор вопроса: Victir

    Ответ ожидается по этому адресу

    У меня 2 вопроса по VB.
    1. Как правильно органияовать яапись в файл проиявольного доступа подобный тип переменной, и вояможно ли вообще ее испольяование в таком виде:

    Public Type WorkMach
    DataTek as Date
    TypeMach() as String
    KmNach() as Single
    KmKon() as Single
    ...
    Napravl as String
    End Type
    Public Narabotka() as WorkMach

    Если вояможно, то - как правильно?

    2. Как правильно объединять ячейки в элементе управления MSHFlexGrid, какие свойства ему небходимо яадать? И как ия него органияовать вывод на принтер?

    Ответы:

    Вопрос:

    Скажите пожалуйста, могу ли я через VB - узнать: дату и время создания файла COMMAND.COM, если да- то как?

    Ответ:

    Автор ответа: Шаронов Игорь Александрович

    http://vbnet.ru/faq/showtopic.asp?id=32

    Вопрос:

    Даны два двумерных массива. После ввода первого массива, должен отображаться другой, но с условием что строки и столбцы этого массива будут перевернуты, т.е. первый элемент массива один должен стать последним элементом второго массива. И так со всеми элементами.

    Ответ:

    Автор ответа: Eva

    Private Sub sbGetArray()
    Dim arrIn(10) As Integer
    Dim arrOut(10) As Integer
    Dim lX As Integer

    ' Set your first array
    For lX = 0 To UBound(arrIn)
    arrIn(lX) = lX * 2
    Next
    'set second array as opposit to the first
    For lX = 0 To UBound(arrIn)
    arrOut(lX) = arrIn(UBound(arrIn) - lX)
    Next
    end sub

    Вопрос:

    Даны два двумерных массива. После ввода первого массива, должен отображаться другой, но с условием что строки и столбцы этого массива будут перевернуты, т.е. первый элемент массива один должен стать последним элементом второго массива. И так со всеми элементами.

    Ответ:

    Автор ответа: Ревягин_Алексей

    Если у массивов одинаковые размерности, к примеру :

    A(10,3) и B(10,3), то код такой

    for i=0 to 10
    for z=0 to 3
    B(10-i,3-z)=A(i,z)
    next z
    next i

    Вопрос:

    Пример:
    Private Sub cmdSave_KeyPress(KeyAscii As Integer)
    If ((KeyAscii = vbKeyReturn) Or (KeyAscii = vbKeyTab)) Then
    Saving
    End If
    End Sub
    Вопрос: почему-то такой код нормально реагирует на , но никак не реагирует на . Может, кто янает?

    Ответ:

    Автор ответа: Roman 'Devil' Yuakovlev

    Используй KeyDown

    Вопрос:

    Подскажите пожалуйста как в CommonDialog настроить фильтр на расширение tst.

    Ответ:

    Автор ответа: SHatrykin Ivan

    .Filter = "Все файлы DOS(*.*)|*.*|Все файлы WIN(*.*)|*.*|Текстовые файлы DOS(*.TXT)|*.TXT|Текстовые файлы WIN(*.TXT)|*.TXT|RTF формат (*.RTF)|*.RTF"
    'определяем фильтры
    .FilterIndex = 5 'предлагаем фильтр

    Иными словами вначале идет имя фильтра, затем разделитель | потом маска, и так до бесконечности... хотя может быть разумный предел есть ;-)

    Вопрос:

    Подскажите пожалуйста как в CommonDialog настроить фильтр на расширение tst.

    Ответ:

    Автор ответа: Ted

    Все очень просто:

    With CommonDialog1
    .Filter = "Файлы типа tst|*.tst|Все файлы|*.*"
    .ShowOpen
    End With

    Вопрос:

    Подскажите пожалуйста как в CommonDialog настроить фильтр на расширение tst.

    Ответ:

    Автор ответа: Ревягин_Алексей

    CommonDialog1.Filter = "My files(*.tst)|*.tst|"

    Вопрос:

    Подскажите пожалуйста как в CommonDialog настроить фильтр на расширение tst.

    Ответ:

    Автор ответа: Шаронов Игорь Александрович

    Смотрите соответствующий раздел на сайте http://vbnet.ru - Библиотека Кодов - Работа с CommonDialog

    Вопрос:

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

    Ответ:

    Автор ответа: Ted

    У каждой формы есть свойство .Icon

    Me.Icon = LoadPicture("C:\Program Files\" _
    & "Microsoft Visual Studio\Common\" _
    & "Graphics\Icons\Mail\mail01a.ico")

    Вопрос:

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

    Ответ:

    Автор ответа: Evgeniy

    У формы меняешь свойство Icon указываешь любой файл .ico, затем при компиляции проекта указываешь иконку какой формы будем отображать exe файл.

    Вопрос:

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

    Ответ:

    Автор ответа: Иван

    На форме в свойстве Icon устанавливаешь нужную иконку. Далее при компиляции нажимаешь "Опции". Во вкладке "Создание" есть надпись: "Иконка" и рядом список всех форм. Выбираешь ту форму, на которой ты установил иконку. Теперь компилируй свой проект.

    Вопрос:

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

    Ответ:

    Автор ответа: Ревягин_Алексей

    В Properties у любой формы устанавливаешь

    Properties->Icon=ПУТЬ_ДО_ЛЮБОЙ_ИКОНКИ

    а потом в

    Project->Properties->Make->Icon=ФОРМА_НА_КОТОРОЙ_У_ТЕБЯ_ИКОНКА

    Вопрос:

    Как в Visual Basic открывается форма для выбора каталогов, можно ли при помощи Win_API?

    Ответ:

    Автор ответа: Шаронов Игорь Александрович

    http://vbnet.ru/faq/showtopic.asp?id=5

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 53.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.
Новости сайта IgorykSoft и советы по программированию

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Все с субботников вернулись? :-)))
    Читайте!

    Содержание выпуска
    • Книги

    • Интернет: онлайн или офлайн
    • Получение списка всех интернет-соединений
    • Имя текущего соединения с инетом
    • Запуск почты и web-узла
    • Является ли строковая переменная e-mail-адресом
    • Получение сведений из web-страницы

    • Вопрос/Ответ

    Книги

    ADO и Visual Basic. Руководство разработчика

     В книге описано использование технологии доступа к данным (ADO) с помощью основного инструмента разработки приложений Microsoft - Visual Basic 6.0. Из книги вы узнаете, как можно исследовать источники данных при помощи окна Data View, как создавать формы для ввода и запроса данных, используя связанные элементы управления, и подсоединяться к источникам данных со сложной иерархической структурой средствами Data Environment. Далее вы изучите, как можно, используя Data Report, представлять информацию в форме, подходящей для печати, или как следует исполнять некоторые, наиболее широко распространенные задачи, связанные с обработкой данных, используя ADO внутри кода Visual Basic. В последних главах книги рассмотрены дополнительные операции, используемые в коде, в том числе формирование данных, для создания иерархических наборов записей, применение ADO в сети Internet и даже создание собственных источников данных. Чтобы более полно использовать средства ADO для извлечения информации из различных источников, в приложении к книге вы найдете справочник по языку SQL, в котором обсуждаются основы работы с оператором SQL SELECT.

    Автор: Гандерлой М.
    Издательсвто: Энтроп, Век
    Год издания: 2001
    Кол-во страниц: 336
    Стоимость: 177 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Excel, VBA, Internet в экономике и финансах

     Книга является руководством по использованию Microsoft Excel, разработке офисных бизнес-приложений средствами VBA и конструированию Web-страниц на базе DHTML и VBScript. Рассматриваются приемы создания отчетной финансовой и экономической документации средствами MS Excel, способы анализа и обработки собранной информации для принятия на ее основе оптимального решения; даются ответы на вопросы, которые возникают у программиста при разработке автоматизированных и интегрированных систем с помощью VBA; описываются особенности конструирования пользовательских элементов управления ActiveX, а также написания Windows-сценариев. Большое внимание уделено принципам создания интерактивных Web-страниц, виртуальных каталогов и магазинов. Книга содержит уникальную коллекцию типичных примеров. Почти каждая глава заканчивается списком упражнений, способствующих закреплению материала

    Автор: Гарнаев А
    Издательсвто: BHV - Санкт - Петербург
    Год издания: 2001
    Кол-во страниц: 816
    Стоимость: 230 р.
    Формат: 70х100/16
    Переплёт: мягкий

    MCSD. Сертификационный экзамен 70-175. Разработка распределенных приложений на Visual Basic 6.0. Учебный курс (+ CD-ROM)

     Настоящий учебный курс рекомендован корпорацией Microsoft как официальное пособие для подготовки к экзамену 70-175 «Designing and Implementing Distributed Applications with Microsoft Visual Basic 6.0» по программе сертификации разработчиков программных решений на основе продуктов Microsoft (Microsoft Certified Solutions Developer, MCSD). Эта книга познакомит Вас с основными понятиями, концепциями и методами, необходимыми для разработок распределенных программных решений на базе Visual Basic 6.0.

    Автор: MCSD Training Kit
    Издательсвто: Русская Редакция
    Год издания: 2000
    Кол-во страниц: 400
    Стоимость: 272 р.
    Формат: 70х100/1670х100/16
    Переплёт: мягкий

    Microsoft Visual Basic 5.0

     В книге рассматривается новая пятая версия Microsoft Visual Basic - языка программирования, являющегося фактическим стандартом визуального проектирования приложений. Описываются общие черты Visual Basic, реализованные в нем концепции объектно-ориентированного программирования, среда разработки (IDE). Далее рассматривается объектно-ориентированная модель Visual Basic и доступные разработчику объектные компоненты. Подробно описываются технологии программирования на языке Visual Basic и SQL, отладка и оптимизация кода приложения, вопросы компиляции исполняемых модулей. В последующих главах освещаются практические вопросы построения приложений - работа с текстом и графикой, механизмы доступа и управления данными, работа с внешними базами данных и создание приложений клиент/сервер. Книга предназначена для широкого круга программистов, работающих в области обработки данных и информационных систем.

    Автор: Шмидт В
    Издательсвто: ABF
    Год издания: 1997
    Кол-во страниц: 688
    Стоимость: 85 р.
    Формат: 84x108/16
    Переплёт: мягкий

    Microsoft Visual Basic 6.0

     Нет описания

    Автор: Лабор В, Макарчук Д
    Издательсвто: нет данных
    Год издания: 2001
    Кол-во страниц: 160
    Стоимость: 60 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Microsoft Visual Basic 6.0. Мастерская разработчика (+ CD-ROM)

     Книга состоит из 3 частей (34 главы) и предметного указателя. Написанная живо и доходчиво, она позволит освоить множество полезных приемов программирования, в том числе объектно-ориентированного, и научит, как создавать 32-разрядные приложения для Windows 95/98 и Windows NT — от экранных заставок до программ, ориентированных на Интернет. Кроме того, Вы узнаете, как расширить возможности языка за счет функций Win32 API и воспользоваться преимуществами технологии ActiveX.

    Автор: Джон Кларк Крейг, Джефф Уэбб
    Издательсвто: Русская Редакция
    Год издания: 2001
    Кол-во страниц: 720
    Стоимость: 272 р.
    Формат: 70х100/16
    Переплёт: твёрдый

    VB Script и ActiveX

     Книга предназначена для разработчиков Web - приложений на языке VBScript, желающих повысить свой профессиональный уровень и стать экспертами в этой области. В ней подробно рассказывается о новых возможностях VBScript, включая использование именованных констант, функций, переменных и коллекций, приводится вся необходимая информация о технологии ActiveX, принципах взаимодействия VBScript и Visual Basic при создании приложений, работающих на сервере. Прочитав эту книгу, вы научитесь использовать звуковые эффекты, создавать анимированную графику, строить формы для ввода данных, узнаете, как с помощью VBScript создать в Web электронный магазин и отслеживать число посетителей и деланные ими покупки. Вы даже сумеете написать увлекательную мультимедийную игру для Web.

    Автор: Скотт Палмер
    Издательсвто: Питер
    Год издания: 1999
    Кол-во страниц: 368
    Стоимость: 94 р.
    Формат: 70х100/16
    Переплёт: мягкий

    VBA 2000. Самоучитель

     В книге содержится краткий курс по использованию языка и системы VBA для Word и Excel 2000. Книга предназначена для начинающих программировать в среде Windows 95/98 с использованием в качестве базовых таких объектов Word и Excel, как документы, рабочие книги, листы и так далее. Материала книги достаточно для создания как простых макросов, помогающих автоматизировать рутинную повторяющуюся работу над документами и электронными таблицами, так и для разработки достаточно сложных приложений, обрабатывающих данные в диалоговых окнах, обеспечивающих пользователя самыми современными интерфейсными средствами.

    Автор: Кузьменко В
    Издательсвто: Бином
    Год издания: 2000
    Кол-во страниц: 416
    Стоимость: 116 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Visual Basic 6 Desktop. Экзамен 70-176

     Книги серии `Экзамен – экстерном` представляют собой удобные, сжатые, хорошо структурированные конспекты для подготовки к сдаче сертификационных экзаменов на звание Microsoft Certified Solution Developer. Книга `Visual Basic 6.0 Desktop. Экзамен 70-176` содержит только действительно необходимый материал, типовые вопросы с ответами и пример экзамена. Возможно, некоторые подходы, применяемые автором, покажутся вам не совсем привычными - не удивляйтесь: это не учебник по Visual Basic; организация материала в этой книге призвана максимально облегчить задачу экзаменуемого. Учтите, что в ряде случаев экзаменационные вопросы выходят за рамки тем, отраженных в документации по Visual Basic, а иной раз правильные ответы на них даже входят в противоречие с `официальной` информацией.

    Автор: Майкл Макдоналд
    Издательсвто: Питер
    Год издания: 2001
    Кол-во страниц: 608
    Стоимость: 123 р.
    Формат: 60x90/16
    Переплёт: мягкий

    Visual Basic 6. Руководство разработчика (+ CD-ROM)

     Эта книга, написанная известным специалистом и неутомимым пропагандистом Visual Basic, представляет собой прекрасный путеводитель по одному из наиболее популярных визуальных средств разработки Windows-приложений. Подробно освещаются такие ключевые темы программирования на Visual Basic, как проектирование и использование элементов ActiveX, программирование баз данных и разработка Web-приложений. Несомненный интерес представляют главы, посвященные работе с графикой. Большое количество тщательно продуманных примеров облегчает восприятие материала. Подбор материала и стиль изложения делают издание интересным и полезным для программистов разных уровней.

    Автор: Евангелос Петрусос
    Издательсвто: BHV, Ирина, SYBEX Inc
    Год издания: 2000
    Кол-во страниц: 1072
    Стоимость: 267 р.
    Формат: 70x100/32
    Переплёт: твёрдый

    Остальные книги о VB можно найти     здесь.

    наверх

    Интернет: онлайн или офлайн

    Данный пример покажет, есть ли в данное время активное соединение с Интернетом

    Private Declare Function RasEnumConnections Lib "RasApi32.dll" Alias "RasEnumConnectionsA" (lpRasCon As Any, lpcb As Long, lpcConnections As Long) As Long
    Private Declare Function RasGetConnectStatus Lib "RasApi32.dll" Alias "RasGetConnectStatusA" (ByVal hRasCon As Long, lpStatus As Any) As Long
    Private Const RAS95_MaxEntryName = 256
    Private Const RAS95_MaxDeviceType = 16
    Private Const RAS95_MaxDeviceName = 32
    Private Type RASCONN95
    dwSize As Long
    hRasCon As Long
    szEntryName(RAS95_MaxEntryName) As Byte
    szDeviceType(RAS95_MaxDeviceType) As Byte
    szDeviceName(RAS95_MaxDeviceName) As Byte
    End Type
    Private Type RASCONNSTATUS95
    dwSize As Long
    RasConnState As Long
    dwError As Long
    szDeviceType(RAS95_MaxDeviceType) As Byte
    szDeviceName(RAS95_MaxDeviceName) As Byte
    End Type

    Public Function IsConnected() As Boolean
    Dim TRasCon(255) As RASCONN95
    Dim lg As Long
    Dim lpcon As Long
    Dim RetVal As Long
    Dim Tstatus As RASCONNSTATUS95
    TRasCon(0).dwSize = 412
    lg = 256 * TRasCon(0).dwSize
    RetVal = RasEnumConnections(TRasCon(0), lg, lpcon)
    Tstatus.dwSize = 160
    RetVal = RasGetConnectStatus(TRasCon(0).hRasCon, Tstatus)
    If Tstatus.RasConnState = &H2000 Then
    IsConnected = True
    Else
    IsConnected = False
    End If
    End Function

    Private Sub Form_Load()
    'если есть соединение, то IsConnected() = True, иначе False
    MsgBox IsConnected()
    End Sub

    наверх

    Получение списка всех интернет-соединений

    Добавьте на форму CommandButton и ListBox. Вставьте следующий код, запустите программу на выполнение. В ListBox'е вы получите имена всех интернет-соединений. При нажатии на CommandButton на форме будет напечатано имя интернет-соединения по умолчанию.

    Const REG_NONE = 0&
    Const REG_SZ = 1&
    Const REG_EXPAND_SZ = 2&
    Const REG_BINARY = 3&
    Const REG_DWORD = 4&
    Const REG_DWORD_LITTLE_ENDIAN = 4&
    Const REG_DWORD_BIG_ENDIAN = 5&
    Const REG_LINK = 6&
    Const REG_MULTI_SZ = 7&
    Const REG_RESOURCE_LIST = 8&
    Const REG_FULL_RESOURCE_DESCRIPTOR = 9&
    Const REG_RESOURCE_REQUIREMENTS_LIST = 10&

    Public rgeEntry$
    Public rgeDataType&
    Public rgeValue$
    Public rgeMainKey&
    Public rgeSubKey$

    Const KEY_QUERY_VALUE = &H1&
    Const KEY_SET_VALUE = &H2&
    Const KEY_CREATE_SUB_KEY = &H4&
    Const KEY_ENUMERATE_SUB_KEYS = &H8&
    Const KEY_NOTIFY = &H10&
    Const KEY_CREATE_LINK = &H20&
    Const READ_CONTROL = &H20000
    Const WRITE_DAC = &H40000
    Const WRITE_OWNER = &H80000
    Const SYNCHRONIZE = &H100000
    Const STANDARD_RIGHTS_REQUIRED = &HF0000
    Const STANDARD_RIGHTS_READ = READ_CONTROL
    Const STANDARD_RIGHTS_WRITE = READ_CONTROL
    Const STANDARD_RIGHTS_EXECUTE = READ_CONTROL
    Const KEY_READ = STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY
    Const KEY_WRITE = STANDARD_RIGHTS_WRITE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY
    Const KEY_EXECUTE = KEY_READ
    Private Type FILETIME
    lLowDateTime As Long
    lHighDateTime As Long
    End Type
    Const HKEY_CLASSES_ROOT = &H80000000
    Const HKEY_CURRENT_USER = &H80000001
    Const HKEY_LOCAL_MACHINE = &H80000002
    Const HKEY_USERS = &H80000003
    Const HKEY_PERFORMANCE_DATA = &H80000004
    Const HKEY_CURRENT_CONFIG = &H80000005
    Const HKEY_DYN_DATA = &H80000006

    Private Declare Function RegOpenKeyEx& Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey&, ByVal lpszSubKey$, dwOptions&, ByVal samDesired&, lpHKey&)
    Private Declare Function RegCloseKey& Lib "advapi32.dll" (ByVal hKey&)
    Private Declare Function RegQueryValueEx& Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey&, ByVal lpszValueName$, ByVal lpdwRes&, lpdwType&, ByVal lpDataBuff$, nSize&)
    Private Declare Function RegEnumKeyEx& Lib "advapi32.dll" Alias "RegEnumKeyExA" (ByVal hKey&, ByVal dwIndex&, ByVal lpname$, lpcbName&, ByVal lpReserved&, ByVal lpClass$, lpcbClass&, lpftLastWriteTime As FILETIME)
    Private Declare Function RegQueryInfoKey& Lib "advapi32.dll" Alias "RegQueryInfoKeyA" (ByVal hKey&, ByVal lpClass$, lpcbClass&, ByVal lpReserved&, lpcSubKeys&, lpcbMaxSubKeyLen&, lpcbMaxClassLen&, lpcValues&, lpcbMaxValueNameLen&, lpcbMaxValueLen&, lpcbSecurityDescriptor&, lpftLastWriteTime As FILETIME)

    Public Function GetRegValue(keyroot As Variant, subkey As Variant, valname As String)
    Const KEY_ALL_ACCESS As Long = &HF0063
    Const ERROR_SUCCESS As Long = 0
    Const REG_SZ As Long = 1
    Dim hsubkey As Long, dwType As Long, sz As Long
    Dim R As Long
    R = RegOpenKeyEx(keyroot, subkey, 0, KEY_ALL_ACCESS, hsubkey)
    sz = 256
    v$ = String$(sz, 0)
    R = RegQueryValueEx(hsubkey, valname, 0, dwType, ByVal v$, sz)
    If R = ERROR_SUCCESS And dwType = REG_SZ Then
    retval = Left$(v$, sz)
    GetRegValue = retval
    Else
    retval = "--Not String--"
    End If
    R = RegCloseKey(hsubkey)
    End Function
    Public Sub rgeClear()
    rgeMainKey = 0
    rgeSubKey = ""
    rgeValue = ""
    rgeDataType = 0
    rgeEntry = ""
    End Sub
    Function RegEnumKeys&(bFullEnumeration As Boolean)
    Dim sRoot$, sRoot2$
    Dim lRtn&
    Dim hKey&
    Dim strucLastWriteTime As FILETIME
    Dim sSubKeyName$
    Dim sClassString$
    Dim lLenSubKey&
    Dim lLenClass&
    Dim lKeyIndx&
    Dim lRet&
    Dim hKey2&
    Dim sSubKey2$
    Dim sNewKey$
    Dim sClassName$
    Dim lClassLen&
    Dim lSubKeys&
    Dim lMaxSubKey&
    Dim sMaxSubKey$
    Dim lMaxClass&
    Dim sMaxClass$
    Dim lValues&
    Dim lMaxValueName&
    Dim lMaxValueData&
    Dim lSecurityDesc&
    lRtn = RegOpenKeyEx(rgeMainKey, rgeSubKey, 0&, KEY_READ, hKey)
    sClassName = Space$(255)
    lClassLen = CLng(Len(sClassName))
    lRet = RegQueryInfoKey(hKey, sClassName, lClassLen, 0&, lSubKeys, lMaxSubKey, _
    lMaxClass, lValues, lMaxValueName, lMaxValueData, lSecurityDesc, strucLastWriteTime)
    sMaxSubKey = Space$(lMaxSubKey + 1)
    sMaxClass = Space$(lMaxClass + 1)
    lKeyIndx = 0&
    Do While lRtn = ERROR_SUCCESS
    ReTryKeyEnumeration:
    sSubKeyName = sMaxSubKey
    lLenSubKey = lMaxSubKey
    sClassString = sMaxClass
    lLenClass = lMaxClass
    lRtn = RegEnumKeyEx(hKey, lKeyIndx, sSubKeyName, lLenSubKey, 0&, sClassString, _
    lLenClass, strucLastWriteTime)
    If InStr(sSubKeyName, Chr$(0)) > 1 Then
    sSubKeyName = Left$(sSubKeyName, InStr(sSubKeyName, Chr$(0)) - 1)
    End If
    If lRtn = ERROR_SUCCESS Then
    Form1.List1.AddItem sSubKeyName
    lNewKey = lNewKey + 1
    sNewKey = "A" & Format$(lNewKey, "000000")
    If bFullEnumeration = True Then
    sSubKey2 = sSubKeyName
    If rgeSubKey <> "" Then
    sSubKey2 = Trim(rgeSubKey) & "\" & sSubKeyName
    End If
    lRet = RegOpenKeyEx(rgeMainKey, sSubKey2, 0&, KEY_READ, hKey2)
    Else
    Exit Do
    End If
    lKeyIndx = lKeyIndx + 1
    ElseIf lRtn = ERROR_MORE_DATA Then
    lMaxSubKey = lMaxSubKey + 5
    lMaxClass = lMaxClass + 5
    sMaxSubKey = Space$(lMaxSubKey + 1)
    sMaxClass = Space$(lMaxClass + 1)
    GoTo ReTryKeyEnumeration
    ElseIf lRtn = ERROR_NO_MORE_ITEMS Then
    lRtn = ERROR_SUCCESS
    Exit Do
    Exit Do
    End If
    Loop
    RegEnumKeys = lRtn
    lRtn = RegCloseKey(hKey)
    End Function

    Private Sub Form_Load()
    rgeMainKey = HKEY_CURRENT_USER
    rgeSubKey$ = "RemoteAccess\Profile"
    RegEnumKeys True
    End Sub
    Private Sub Command1_Click()
    Print GetRegValue(HKEY_CURRENT_USER, "RemoteAccess", "Default")
    End Sub

    наверх

    Имя текущего соединения с инетом

    Расположите на форме элемент CommandButton.

    Private Const RAS_MAXENTRYNAME As Integer = 256
    Private Const RAS_MAXDEVICETYPE As Integer = 16
    Private Const RAS_MAXDEVICENAME As Integer = 128
    Private Const RAS_RASCONNSIZE As Integer = 412
    Private Type RASCONN
    dwSize As Long
    hRasConn As Long
    szEntryName(RAS_MAXENTRYNAME) As Byte
    szDeviceType(RAS_MAXDEVICETYPE) As Byte
    szDeviceName(RAS_MAXDEVICENAME) As Byte
    End Type
    Private Declare Function RasEnumConnections Lib "rasapi32.dll" Alias "RasEnumConnectionsA" (udtRasConn As Any, lpcb As Long, lpcConnections As Long) As Long

    Private Sub Command1_Click()
    Dim udtRasConn(255) As RASCONN, countConn As Long
    Dim Ret As Long, b As Long
    udtRasConn(0).dwSize = RAS_RASCONNSIZE
    Ret = RasEnumConnections(udtRasConn(0), RAS_MAXENTRYNAME * udtRasConn(0).dwSize, countConn)
    If Ret = 0 Then
    For b = 0 To countConn - 1
    MsgBox "Текущее соединение: " & StrConv(udtRasConn(b).szEntryName(), vbUnicode)
    Next b
    End If
    End Sub

    наверх

    Запуск почты и web-узла

    Данный пример покажет, как можно создать стандартное окно письма и запустить броузер для просмотра определенной страницы в Интернете.

    'Вариант 1
    'Добавьте на форму 2 элемента Label, скопируйте и вставьте на форму следующий код:
    Private Declare Function ShellExecute& Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long)
    Private Sub Form_Load()
    Label1.Caption = "http://www.vbnet.ru"
    Label2.Caption = "bigsharig@mtu-net.ru"
    End Sub
    Private Sub Label1_Click()
    Call ShellExecute(0, "Open", Label1.Caption, "", "c:\", 1)
    End Sub
    Private Sub Label2_Click()
    Call ShellExecute(0, "Open", "mailto:" + Label2.Caption + "?Subject=" + "Письмо для Гарика", "", "", 1)
    End Sub

    'Вариант 2
    Call Shell("Start.exe " & "http://www.vbnet.ru", 0)
    Call Shell("Start.exe " & "mailto:bigsharig@mtu-net.ru", 0)

    'Вариант 3
    'Добавьте на форму 2 элемента Label, скопируйте и вставьте на форму следующий код:
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    Private Sub ExecuteLink(ByVal sLinkTo As String)
    On Error Resume Next
    Dim lRet As Long
    Dim lOldCursor As Long
    lOldCursor = Screen.MousePointer
    Screen.MousePointer = vbHourglass
    lRet = ShellExecute(0, "open", sLinkTo, "", vbNull, SW_SHOWNORMAL)
    If lRet >= 0 And lRet <= 0 Then
    Screen.MousePointer = vbDefault
    MsgBox "Error Opening Link to " & sLinkTo & vbCrLf & vbCrLf & Err.LastDllError, , "frmAbout::ExecuteLink"
    End If
    Screen.MousePointer = vbDefault
    End Sub
    Private Sub Label1_Click()
    ExecuteLink "mailto:bigsharig@mtu-net.ru"
    End Sub
    Private Sub Label2_Click()
    ExecuteLink "http://www.vbnet.ru"
    End Sub

    наверх

    Является ли строковая переменная e-mail-адресом

    Этот код использует VBScript.dll
    Вы можете загрузить его с     www.microsoft.com/msdownload/vbscript/scripting.asp

    Добавьте Microsoft VBScript Regular Expressions reference в ваш проект (выберите Project->References, поставьте галочку на Microsoft VBScript Regular Expressions CheckBox и нажмите OK).

    RegExp - тип переменной, которую вы хотите
        проверить: Email-адрес, телефонный номер, любой
        другой формат.

Private Sub Form_Load()
Dim myReg As RegExp
Dim email As String
Set myReg = New RegExp
myReg.IgnoreCase = True
myReg.Pattern = "^[\w-\.]+@\w+\.\w+$"
'replace "myName@domain.ru" любым адресом
email = "myName@domain.ru"
MsgBox "Результат проверки: " & myReg.Test(email)
Unload Me
End Sub

наверх

    Получение сведений из web-страницы

    Данная функция возвращает различные компоненты web-страницы. Включая "host", "port", "user", "pass", "path" и "query"

    Private Type typURL 'http://sit:sitter@proxy.spiderit.net:881/prox/proxycfg.php3?openpage
    Protocol As String 'какой протокол (http://, ftp:// или другой)
    ServerName As String 'имя сервера (proxy.spiderit.net)
    Filename As String 'имя страницы (proxycfg.php3)
    Dir As String 'директория (/prox/)
    Filepath As String 'путь файла (/prox/proxycfg.php3)
    Username As String 'имя пользователя (sit)
    Password As String 'пароль (sitter)
    Query As String 'строка запроса (openpage)
    ServerPort As Integer 'порт сервера (881)
    End Type
    Const strNOCONTENT As String = "NOCONTENT"
    Const intDEFAULTPORT As Integer = 80
    Private Function ParseURL(URL As String) As typURL
    Dim strTemp As String
    Dim strServerAuth As String
    Dim strServerNPort As String
    Dim strAuth As String
    strTemp = URL
    'Parse protocol
    If (InStr(1, strTemp, "://") > 0) Then
    'URL contains protocol
    ParseURL.Protocol = Left(strTemp, InStr(1, strTemp, "://") - 1)
    strTemp = Right(strTemp, Len(strTemp) - (Len(ParseURL.Protocol) + 3)) 'delete protocol + ://
    Else
    'URL do not contains the protocol
    ParseURL.Protocol = strNOCONTENT
    End If
    '- Parse authenticate information
    If (InStr(1, strTemp, "/") > 0) Then
    'extract servername and user and password if there are directory infos
    strServerAuth = Left(strTemp, InStr(1, strTemp, "/") - 1)
    strTemp = Right(strTemp, Len(strTemp) - (Len(strServerAuth) + 1))
    Else
    'extract servername and user and password if there are no directory infos
    strServerAuth = strTemp
    strTemp = "/"
    End If

    If (InStr(1, strServerAuth, "@") > 0) Then
    'there are user and password informations
    strAuth = Left(strServerAuth, InStr(1, strServerAuth, "@") - 1)
    strServerNPort = Right(strServerAuth, Len(strServerAuth) - (Len(strAuth) + 1))
    Else
    'there are no user and password informations
    strAuth = ""
    strServerNPort = strServerAuth
    End If

    If (InStr(1, strAuth, ":") > 0) And (Len(strAuth) > 0) Then
    'split username and password on ":" splitter
    ParseURL.Username = Left(strAuth, InStr(1, strAuth, ":") - 1)
    ParseURL.Password = Right(strAuth, Len(strAuth) - InStr(1, strAuth, ":"))
    ElseIf (InStr(1, strAuth, ":") <> 0) Then
    'only username was submitted
    ParseURL.Username = strAuth
    ParseURL.Password = strNOCONTENT
    Else
    'no authenticate information was submitted
    ParseURL.Username = strNOCONTENT
    ParseURL.Password = strNOCONTENT
    End If

    If (InStr(1, strServerNPort, ":") > 0) Then
    'Servername contains port
    ParseURL.ServerPort = Int(Right(strServerNPort, Len(strServerNPort) - InStr(1, strServerNPort, ":")))
    ParseURL.ServerName = Left(strServerNPort, InStr(1, strServerNPort, ":") - 1)
    Else
    ParseURL.ServerPort = intDEFAULTPORT
    ParseURL.ServerName = strServerNPort
    End If

    If (InStr(1, strTemp, "?") > 0) Then
    ParseURL.Query = Right(strTemp, Len(strTemp) - InStr(1, strTemp, "?"))
    strTemp = Left(strTemp, InStr(1, strTemp, "?") - 1)
    Else
    ParseURL.Query = strNOCONTENT
    End If

    For i = Len(strTemp) To 1 Step -1
    If (Mid(strTemp, i, 1) = "/") Then
    ParseURL.Filename = Right(strTemp, Len(strTemp) - i)
    ParseURL.Dir = Left(strTemp, i)
    If Not (Left(ParseURL.Dir, 1) = "/") Then
    ParseURL.Dir = "/" & ParseURL.Dir
    End If
    Exit For
    End If
    Next

    ParseURL.Filepath = "/" & strTemp
    If Not (Left(ParseURL.Filepath, 1) = "/") Then
    ParseURL.Filepath = "/" & ParseURL.Filepath
    End If

    End Function

    Private Sub Form_Load()
    'Const strURL As String = "http://sharig.webzone.ru/IndexMainTopic.htm"
    Const strURL As String = "http://sit:sitter@proxy.spiderit.net:881/prox/proxycfg.php3?openpage"
    msgtext = ParseURL(strURL).Protocol & vbCrLf
    msgtext = msgtext & ParseURL(strURL).Username & vbCrLf
    msgtext = msgtext & ParseURL(strURL).Password & vbCrLf
    msgtext = msgtext & ParseURL(strURL).ServerName & vbCrLf
    msgtext = msgtext & ParseURL(strURL).ServerPort & vbCrLf
    msgtext = msgtext & ParseURL(strURL).Filepath & vbCrLf
    msgtext = msgtext & ParseURL(strURL).Dir & vbCrLf
    msgtext = msgtext & ParseURL(strURL).Filename & vbCrLf
    msgtext = msgtext & ParseURL(strURL).Query & vbCrLf
    MsgBox msgtext, vbInformation
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     darknez@mail.kz

    Ответ ожидается по этому адресу

    Может кто-нибудь знает, как спрятать значки на рабочем столе? (в смысле так, как это делает Windows при определённых настройках)

    Автор вопроса: Nimnul

    Ответ ожидается по этому адресу

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

    Автор вопроса: Nimnul

    Ответ ожидается по этому адресу

    Как использовать Assembler В VB?

    Автор вопроса: Kesh

    Ответ ожидается по этому адресу

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

    Автор вопроса: Андрей Щёкин

    Ответ ожидается по этому адресу

    Скажите пожалуйста, где можно найти информацию по VB.Net (не общую, а рассылки, форумы или сайты по этой теме). В частности, как использовать RAS и WinInet.

    Автор вопроса: Антон

    Ответ ожидается по этому адресу

    Скажите, пожалуйста, можно ли при движении мышью (без клика) по пунктам меню считывать их содержимое?

    Автор вопроса: Александр

    Ответ ожидается по этому адресу

    Подскажите пожалуйсто как передать параметры в отчет Cristal Reports Используя crpe32.dll (если есть у кого описание API функций этой DLL пришлите пож. буду рад любой информации)

    Автор вопроса: sky

    Ответ ожидается по этому адресу

    Можно ли работать в VB с БД MySql так же как с Access. Если да то что для этого надо?

    Автор вопроса: Umidjon B. Rahmonberdiev

    Ответ ожидается по этому адресу

    Как мне создавать/менять/удалять пользователей, групп и т.д. используя ВБ 6.0 на:

    а) В Вин2к/НТ компьютере, в рабочей группе (без домена)
    б) В Вин2л/НТ домене.

    Любые ссылки на е-доки, советы

    Автор вопроса: Dark

    Ответ ожидается по этому адресу

    Кто нибудь янает как отправить(или получить) файл(zip,exe,htm и тд) испольяуя Winsock Control.

    Ответы:

    Вопрос:

    У меня вопрос к янатокам в области API-функций. Есть такая строка:
    call MCIExecute("play c:\fun\music\age 1.wav")
    Описание проблемы - судя по всему, функция не хочет принимать имя файла, в котором содержатся пробелы. Вопрос - можно ли эту функцию "научить" понимать пробелы в имени файла и если да, то каким методом?

    Ответ:

    Автор ответа: CaHeK

    Попробуй вместо пробела ставить % …должно помочь…

    Вопрос:

    У меня вопрос к янатокам в области API-функций. Есть такая строка:
    call MCIExecute("play c:\fun\music\age 1.wav")
    Описание проблемы - судя по всему, функция не хочет принимать имя файла, в котором содержатся пробелы. Вопрос - можно ли эту функцию "научить" понимать пробелы в имени файла и если да, то каким методом?

    Ответ:

    Автор ответа: Duke

    Вообще можно воспользоватся другой API командой например SNDPLAYSOUND

    Public Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
    'создай кнопку и напиши
    Private Sub Command1_Click()
    sndPlaySound "C:\1.wav", 3 'C:\1.wav - вмето этого путь к любому файлу WAV
    End Sub

    Вопрос:

    Здратвуйте в чём причина когда я перехожу в "коде" на русский то печатает непонятными символами раньше всё было нармально а сёйчас стало так может какие нибудь настройки сбились или что?

    Ответ:

    Автор ответа: Дмитрий

    Tools/Options/Editor Format/Font выбери с поддержкой кириллицы

    Вопрос:

    Здратвуйте в чём причина когда я перехожу в "коде" на русский то печатает непонятными символами раньше всё было нармально а сёйчас стало так может какие нибудь настройки сбились или что?

    Ответ:

    Автор ответа: OlegK

    Шрифт кириллический поставь

    Вопрос:

    У меня 2 вопроса по VB.
    1. Как правильно органияовать яапись в файл проиявольного доступа подобный тип переменной, и вояможно ли вообще ее испольяование в таком виде:

    Public Type WorkMach
    DataTek as Date
    TypeMach() as String
    KmNach() as Single
    KmKon() as Single
    ...
    Napravl as String
    End Type
    Public Narabotka() as WorkMach

    Если вояможно, то - как правильно?

    2. Как правильно объединять ячейки в элементе управления MSHFlexGrid, какие свойства ему небходимо яадать? И как ия него органияовать вывод на принтер?

    Ответ:

    Автор ответа: Дмитрий

    По поводу записи в файл, для random access нельзя использовать string, надо использовать строки фиксированной длины например

    Pivate str1 as string * 7

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

    Вопрос:

    Скажите пожалуйста, могу ли я через VB - узнать: дату и время создания файла COMMAND.COM, если да- то как?

    Ответ:

    Автор ответа: Igoryk

    Да, конечно. Следующий код сделает это:
    MsgBox FileDateTime("C:\command.com")

    Вопрос:

    Даны два двумерных массива. После ввода первого массива, должен отображаться другой, но с условием что строки и столбцы этого массива будут перевернуты, т.е. первый элемент массива один должен стать последним элементом второго массива. И так со всеми элементами.

    Ответ:

    Автор ответа: Dark

    Это не так уж и трудно делается, просто присваеваешь первый элемент первого массива последнему элементу второго массива и тд. Вот пример, как это сделать:

    Dim a(5, 5) As Integer, b(5, 5) As Integer ' задаём 2 двумерных массива
    For i = 1 To 5
    For j = 1 To 5
    n = n + 1
    a(i, j) = n ' присваиваем значения элементам массива
    Next j, i
    For i = 5 To 1 Step -1 ' начинаем перебирать 1 массив
    For j = 5 To 1 Step -1 'с самого последнего элемента
    b(6 - i, 6 - j) = a(i, j) ' а 2 массив наоборот с первого элемента
    Next j, i
    For i = 1 To 5
    For j = 1 To 5
    Print a(i, j); b(i, j) ' распечатываем массивы
    Next j, i

    Вопрос:

    Подскажите пожалуйста как в CommonDialog настроить фильтр на расширение tst.

    Ответ:

    Автор ответа: Dark

    У CommonDialog есть свойство Filter, с помощью него и ставится.
    Вот прмер:
    CommonDialog. Filter="Файл с расширением tst(*.tst)|*.tst|"

    Вопрос:

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

    Ответ:

    Автор ответа: Dark

    У формы есть такое свойство под названием ICON

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 54.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Кончились празднички...
    Читайте!

    Содержание выпуска
    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Visual Basic 6. Мастер. Руководство для профессионалов

     Язык программирования Visual Basic - мощный инструмент разработки приложений для 32-разрядных систем Windows 95 и Windows NT. В книге рассматриваются как фундаментальные понятия и темы: от установки продукта на компьютер пользователя и описания интегрированной среды разработки до изложения основ техники программирования на Visual Basic, так и сложные вопросы, адресованные профессиональным программистам: создание интерфейса пользователя, применение стандартных элементов управления, в том числе и для работы с базами данных, программирование компонентов ActiveX, описание технологии OLE drag-and-drop, объектная модель FSO, функции работы с файлами, отладка и оптимизация программ, локализация и распространение готовых приложений.

    Автор: нет даных
    Издательсвто: нет данных
    Год издания: 1998
    Кол-во страниц: 992
    Стоимость: 112,48 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Visual Basic 6. Специальный справочник

     Главная цель этого справочника - научить читателя использовать инструменты и средства Visual Basic, позволяющие значительно облегчить и ускорить процесс создания приложений. Здесь вы найдете описание элементов языка, библиотечных функций и SQL-операторов. Особое внимание уделено различным мастерам, предназначенным для решения стандартных задач. Весь справочный материал в книге разбит на главы, в каждой из которых вы найдете информацию по созданию приложения определенной направленности. Разделы в главе содержат пошаговое описание операций, которые нужно выполнить для решения поставленной задачи, синтаксис необходимых операторов, а также подробно разобранные примеры. Предлагаемый справочник будет полезен не только пользователям, активно работающим с Visual Basic 6, но и начинающим программистам, желающим перейти к профессиональной разработке приложений с наименьшими затратами времени на изучение новой среды программирования.

    Автор: Б. Карпов
    Издательсвто: Питер
    Год издания: 2000
    Кол-во страниц: 416
    Стоимость: 70,78 р.
    Формат: 84х108/32
    Переплёт: нет данных

    Visual Basic 6.0 for application

     Книга является систематизированным справочником по всем элементам языка программирования Visual Basic (VB), входящим, как в автономную версию VB, так и в основные реализации Visual Basic for Applications.
    Помимо тех официальных сведений, которые можно найти в документации и в справочной системе, книга содержит конкретные примеры, рекомендации и маленькие хитрости программиста, а также поправки к справочной системе, которая, увы, не без ошибок.
    Книга предназначена для всех специалистов, занимающихся разработкой приложений с применением Visual Basic и Visual Basic for Applications.

    Автор: Король В.И.
    Издательсвто: КУДИЦ-Образ
    Год издания: 2000
    Кол-во страниц: 448
    Стоимость: 113,87 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Win32 API и Visual Basic. / Для профессионалов /

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

    Автор: Д. Эпплман
    Издательсвто: Питер
    Год издания: 2001
    Кол-во страниц: 1120
    Стоимость: 489,08 р.
    Формат: нет данных
    Переплёт: нет данных

    Азбука программирования в Windows 32 API

     Изложены вопросы создания программных приложений для Window95 и Windows NT. Описаны основные типы переменных, макросов, функций. Материал книги иллюстрируется многочисленными примерами. 1 Настоящее издание (второе вышло в 2000 г.) дополнено описанием тех возможностей Windows, которые не были упомянуты в предыдущих изданиях.

    Автор: Румянцев П.В.
    Издательсвто: Радио и связь
    Год издания: 2001
    Кол-во страниц: 312
    Стоимость: 85 р.
    Формат: 60х88/16
    Переплёт: нет данных

    Использование Visual Basic 6. Специальное издание

     В книге описана новая версия популярной системы программирования Visual Basic 6. Изложение материала построено по принципу "от простого к сложному". Первые главы этой книги адресованы новичкам, из которых они смогут почерпнуть основы языка Visual Basic и описание его стандартных компонентов. Для подготовленных пользователей будет интересен раздел, посвященный специальным методам программирования с использованием стандартных компонентов Windows, элементов управления ActiveX, ADO. RDO и др. В отдельную часть вынесены вопросы, связанные с разработкой приложений баз данных на Visual Basic и работе в Internet. Автор не обошел также вниманием различные версии языка Visual Basic - VBA и VBScript. В приложениях приведен обзор интегрированной среды разработки Visual Basic, а также краткий справочник по SQL.
    Книга рассчитана на широкий круг читателей.

    Автор: Сайлер Б., Споттс Дж.
    Издательсвто: Вильямс
    Год издания: 1999
    Кол-во страниц: 832
    Стоимость: 244,02 р.
    Формат: 70х100/16
    Переплёт: твёрдый

    Обработка баз данных на Visual Basic 6 + CD

     Сердцем многих приложении, работающих в сфере бизнеса, являются базы данных. Своим широким распространением они обязаны возможности централизованного доступа к информации. который характеризуется последовательностью, эффективностью и относительной простотой создания и поддержки. В книге "Обработка баз данных на Visual Basic 6" описываются все технологии доступа к базам данных с помощью Visual Basic. Приведенные в этой книге примеры взяты из реальной жизни, поэтому, ознакомившись с ними, вы узнаете, как можно использовать базы данных для принятия решений в сфере бизнеса. Если вы еще не готовы перейти к версии Visual Basic 6, это вовсе не значит, что данная книга вам не подходит. Практически 95% материала этой книги удовлетворит в равной степени пользователей как пятой, так и шестой версий Visual Basic.
    Книга рассчитана на программистов средней и высокой квалификации.

    Автор: Мак-Манус Дж.П.
    Издательсвто: Вильямс
    Год издания: 1999
    Кол-во страниц: 672
    Стоимость: 294,66 р.
    Формат: 70х100/16
    Переплёт: твёрдый

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 02.05.2002 16:16 | Раздел: Статьи по VB | Автор: Рудой Борис

    Работаем с обьектами секъюрити Windows Domain - Еще вчера работа из VB c объектами секъюрити Window NT Domain была сильно затруднена. Нет, естественно, находились смельчаки, и с использованием Network API оно все работало. Могу даже примерчик дать. В настоящий момент ситуация изменилась. Не могу сказать, что ситуация изменилась в корне. Но обнозначно стало лучше. Некоторый пессимизм этой фразы вызван одной банальной причиной. Микрософт выпустил в свет вместе с Windows 2000 набор объектов и утилит названный Active Dirrectory.

    Дата: 30.04.2002 06:14 | Раздел: Примеры кода | Автор: Беляев Данила

    Flop - Как заставить светодиод дисковода включиться? То-то же... А вот Данила Беляев сделал это реальным! Теперь Ваш компьютер может "мигать лампочками" хоть в такт музыки ;-). Все элементарно, но пришлось написать маленькую DLL-ку на асемблере.

    Дата: 28.04.2002 10:12 | Раздел: Примеры кода | Автор: Беляев Данила

    Call - Вызов функций по адресу, например вызов любой функции из DLL без предварительного объявления в VB. Смысл примера в том, что он позволяет делать вызов на определённый адрес, например адрес функции из загруженой DLL. Т.е. оператор Call языка Visual Basic представляет собой инструкцию вызывающую функции и процедуры текущей программы и не может работать с иными адресами, поэтому пришлось написать небольшую библиотеку.

    Последние 20 тем форума на VBNet.Ru:

    02:46 / 5 май. глюк с меню в System Tray | Ответов: 0
    23:59 / 4 май. Загрузка файлов (реестр) | Ответов: 0
    13:00 / 4 май. Кто подскажет как реализовать Plug-Ins на VB6? | Ответов: 1
    12:06 / 4 май. Про Pwl'ы(как их ломать) через api | Ответов: 0
    11:25 / 4 май. Вопрос Веб Мастеру | Ответов: 1
    09:08 / 4 май. File system | Ответов: 0
    08:47 / 4 май. Text Box | Ответов: 0
    22:24 / 3 май. Colwidth в DataGrid | Ответов: 0
    20:23 / 3 май. VB и база данных FoxPro 2.6 | Ответов: 1
    17:19 / 3 май. Вопрос по CTreeCtrl? | Ответов: 0
    13:08 / 3 май. Как победить IMAP | Ответов: 0
    10:07 / 3 май. VB и TextBox | Ответов: 1
    00:48 / 3 май. USB и сеть | Ответов: 1
    23:36 / 2 май. Почтовая программа | Ответов: 2
    20:32 / 2 май. сумма прописью | Ответов: 2
    19:36 / 2 май. WinSock | Ответов: 2
    11:57 / 2 май. Матрица | Ответов: 2
    11:31 / 2 май. Новое сообщение без темы | Ответов: 0
    11:25 / 2 май. Новое сообщение без темы | Ответов: 0
    11:19 / 2 май. Вопрос реально для суперменов | Ответов: 0

    Последние поступления в Библиотеку кодов:

    Функция для изменения расширения файла (72)
    Создание директории любой степени вложе... (57)
    Определение раскладки клавиатуры любого... (62)
    Имена компьютеров в сети (80)
    Автозагрузка вашей программы со стартом... (81)
    Сохранение/загрузка массива данных в ... (113)
    Сортировка массива данных по порядку (117)
    Drag&Drop в элементе ListBox (107)
    API-переброс данных из массива в элемен... (112)
    API-переброс данных из массива в элемен... (122)

    наверх

    Новости сайта VBMania

    • 15.04 - В связи с резким увеличением числа вопросов, поступающих на e-mail администрации сайта, было решено не дожидаться открытия форума, и начать отвечать на вопросы прямо на главной странице. Обсуждению последней новости ответы на вопросы не помешают. Вашего совета ждут, на ваш вопрос ответят.
    • 25.01 - Сегодня открылся новый раздел, в котором вы можете найти ссылки на целую кучу книг по тематике VB и около него.
    • 22.01 - 22 января вышел второй номер он-лайн журнала о Visual Basic 'VB Мания'. В нем можно почитать авторские статьи в уже устоявшихся разделах: Технологии, Система, Графика, Профессия, Человечество и Юмор. Так же не обошлось без новшеств: появился новый раздел dotNET и особенно рецензии ActiveX-компонентов. Обязательно заходите.
    • 17.12 - В связи с тем что форум не горел желаением вести себя так, как должен обычный, порядочный форум, мы его прикрыли для проведения разъяснительных мероприятий. Надеемся, что они не затянутся и форум образумится.
    • 06.12 - С сегодняшнего дня все желающие могут добавлять свои новости и статьи в наши архивы.
      Да здраствует открытость!
    • 27.11 - Наконец-то, после долгих дней и бессонных ночей это свершилось! Сайт объявляется открытым! Непременно прочитайте первый номер нашего журнала. Оцените наши дополнительные проекты. И конечно мы ждем ваших откликов в гостевой книге и по почте.
    • 01.12 - Произошло несколько косметических улучшений, касающихся исключительно удобства работы с сайтом. Во-первых, можно видеть количество записей обсуждения новостей на главной странице; а во-вторых чуточку подправились директории.
      Оценяйте!

    наверх

    Новости сайта Азбука VB

    • 10 апреля 2001 года
      Создание простого аналога к ListView на примере Mp3 проводника!. Пример создания листа + слайдера + применение как браузера.
      Создание прогрессбара. Еще один оригинальный вариан создания своего прогрессбара.
      Сохранения данных с рабочего листа Excel в Dbase таблицу. В связи с тем, что dbase формат до сих пор очень сильно распространен, очень часто возникает необходимость сохранения данных с рабочего листа Excel в Dbase таблицу.
      Разборка форматированного текста состояшего из шести значений разделённых символом ";". Пример разборки форматированного текста состояшего из шести значений разделённых символом ";" с последуюшеё записью каждого значения в свою ячейку. Макрос также обрабатывает все непустые ячеки столбца.
      Плагины! Создание и работа с ними. На примерах показано, как создавать плагины и как с ними можно работать.
      Проверка на слэш (способ 2). Как избежать ошибки при обращении к файлу? Иногда нужно обратиться к файлу, используя три объекта: Drive (Диск), Dir (Каталоги) и File (Файлы). Drive.Drive возвращает значение равное "?:\", где ? - буква диска. Dir.Path возвращает значение равное "?:\?", где в первом случае ? - буква диска, а во втором - каталог. File.Filename же возвращает имя файла. Если нужно открыть файл на корневом каталоге (?:\), то делается это следующим образом:
      'Справочники Советов' - Пять справочников !!!. Здесь собраны и скомпилированы в Help-файлы - "Советы тем, кто программирует на VB" А. Колесова и О. Павловой. Советы разбиты на 5 файлов (по 100 штук в каждом). Советы начинаются с № 1 (еще по VB3 - 1996 г.) по 2001 год включительно, в связи с переходом на работу в другой журнал, у последних советов появился новый соавтор Малинин. В 5-й файл добавлена статья Колесова (с советами) по работе с API-функциями.

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Нет вопросов.

    Ответы:

    Нет ответов.
    Можете заполнить эту форму, либо отослать вопрос     СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 55.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.
Новости сайта IgorykSoft и советы по программированию

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Всех поздравляю с прошедшим праздником!
    Читайте!

    Содержание выпуска
    • Книги

    • Определить дату изменения web-страницы
    • Создать ссылку на страницу в Интернете
    • Как сохранить содержимое web-страницы на диск
    • Как вытащить все ссылки из htm-страницы
    • Практические советы по использованию компонента WebBrowser
    • Добавить сайт в список "Избранное"

    • Вопрос/Ответ

    Книги

    ADO и Visual Basic. Руководство разработчика

     В книге описано использование технологии доступа к данным (ADO) с помощью основного инструмента разработки приложений Microsoft - Visual Basic 6.0. Из книги вы узнаете, как можно исследовать источники данных при помощи окна Data View, как создавать формы для ввода и запроса данных, используя связанные элементы управления, и подсоединяться к источникам данных со сложной иерархической структурой средствами Data Environment. Далее вы изучите, как можно, используя Data Report, представлять информацию в форме, подходящей для печати, или как следует исполнять некоторые, наиболее широко распространенные задачи, связанные с обработкой данных, используя ADO внутри кода Visual Basic. В последних главах книги рассмотрены дополнительные операции, используемые в коде, в том числе формирование данных, для создания иерархических наборов записей, применение ADO в сети Internet и даже создание собственных источников данных. Чтобы более полно использовать средства ADO для извлечения информации из различных источников, в приложении к книге вы найдете справочник по языку SQL, в котором обсуждаются основы работы с оператором SQL SELECT.

    Автор: Гандерлой М.
    Издательсвто: Энтроп, Век
    Год издания: 2001
    Кол-во страниц: 336
    Стоимость: 177 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Excel, VBA, Internet в экономике и финансах

     Книга является руководством по использованию Microsoft Excel, разработке офисных бизнес-приложений средствами VBA и конструированию Web-страниц на базе DHTML и VBScript. Рассматриваются приемы создания отчетной финансовой и экономической документации средствами MS Excel, способы анализа и обработки собранной информации для принятия на ее основе оптимального решения; даются ответы на вопросы, которые возникают у программиста при разработке автоматизированных и интегрированных систем с помощью VBA; описываются особенности конструирования пользовательских элементов управления ActiveX, а также написания Windows-сценариев. Большое внимание уделено принципам создания интерактивных Web-страниц, виртуальных каталогов и магазинов. Книга содержит уникальную коллекцию типичных примеров. Почти каждая глава заканчивается списком упражнений, способствующих закреплению материала

    Автор: Гарнаев А
    Издательсвто: BHV - Санкт - Петербург
    Год издания: 2001
    Кол-во страниц: 816
    Стоимость: 230 р.
    Формат: 70х100/16
    Переплёт: мягкий

    MCSD. Сертификационный экзамен 70-175. Разработка распределенных приложений на Visual Basic 6.0. Учебный курс (+ CD-ROM)

     Настоящий учебный курс рекомендован корпорацией Microsoft как официальное пособие для подготовки к экзамену 70-175 «Designing and Implementing Distributed Applications with Microsoft Visual Basic 6.0» по программе сертификации разработчиков программных решений на основе продуктов Microsoft (Microsoft Certified Solutions Developer, MCSD). Эта книга познакомит Вас с основными понятиями, концепциями и методами, необходимыми для разработок распределенных программных решений на базе Visual Basic 6.0.

    Автор: MCSD Training Kit
    Издательсвто: Русская Редакция
    Год издания: 2000
    Кол-во страниц: 400
    Стоимость: 272 р.
    Формат: 70х100/1670х100/16
    Переплёт: мягкий

    Microsoft Visual Basic 5.0

     В книге рассматривается новая пятая версия Microsoft Visual Basic - языка программирования, являющегося фактическим стандартом визуального проектирования приложений. Описываются общие черты Visual Basic, реализованные в нем концепции объектно-ориентированного программирования, среда разработки (IDE). Далее рассматривается объектно-ориентированная модель Visual Basic и доступные разработчику объектные компоненты. Подробно описываются технологии программирования на языке Visual Basic и SQL, отладка и оптимизация кода приложения, вопросы компиляции исполняемых модулей. В последующих главах освещаются практические вопросы построения приложений - работа с текстом и графикой, механизмы доступа и управления данными, работа с внешними базами данных и создание приложений клиент/сервер. Книга предназначена для широкого круга программистов, работающих в области обработки данных и информационных систем.

    Автор: Шмидт В
    Издательсвто: ABF
    Год издания: 1997
    Кол-во страниц: 688
    Стоимость: 85 р.
    Формат: 84x108/16
    Переплёт: мягкий

    Microsoft Visual Basic 6.0

     Нет описания

    Автор: Лабор В, Макарчук Д
    Издательсвто: нет данных
    Год издания: 2001
    Кол-во страниц: 160
    Стоимость: 60 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Microsoft Visual Basic 6.0. Мастерская разработчика (+ CD-ROM)

     Книга состоит из 3 частей (34 главы) и предметного указателя. Написанная живо и доходчиво, она позволит освоить множество полезных приемов программирования, в том числе объектно-ориентированного, и научит, как создавать 32-разрядные приложения для Windows 95/98 и Windows NT — от экранных заставок до программ, ориентированных на Интернет. Кроме того, Вы узнаете, как расширить возможности языка за счет функций Win32 API и воспользоваться преимуществами технологии ActiveX.

    Автор: Джон Кларк Крейг, Джефф Уэбб
    Издательсвто: Русская Редакция
    Год издания: 2001
    Кол-во страниц: 720
    Стоимость: 272 р.
    Формат: 70х100/16
    Переплёт: твёрдый

    VB Script и ActiveX

     Книга предназначена для разработчиков Web - приложений на языке VBScript, желающих повысить свой профессиональный уровень и стать экспертами в этой области. В ней подробно рассказывается о новых возможностях VBScript, включая использование именованных констант, функций, переменных и коллекций, приводится вся необходимая информация о технологии ActiveX, принципах взаимодействия VBScript и Visual Basic при создании приложений, работающих на сервере. Прочитав эту книгу, вы научитесь использовать звуковые эффекты, создавать анимированную графику, строить формы для ввода данных, узнаете, как с помощью VBScript создать в Web электронный магазин и отслеживать число посетителей и деланные ими покупки. Вы даже сумеете написать увлекательную мультимедийную игру для Web.

    Автор: Скотт Палмер
    Издательсвто: Питер
    Год издания: 1999
    Кол-во страниц: 368
    Стоимость: 94 р.
    Формат: 70х100/16
    Переплёт: мягкий

    VBA 2000. Самоучитель

     В книге содержится краткий курс по использованию языка и системы VBA для Word и Excel 2000. Книга предназначена для начинающих программировать в среде Windows 95/98 с использованием в качестве базовых таких объектов Word и Excel, как документы, рабочие книги, листы и так далее. Материала книги достаточно для создания как простых макросов, помогающих автоматизировать рутинную повторяющуюся работу над документами и электронными таблицами, так и для разработки достаточно сложных приложений, обрабатывающих данные в диалоговых окнах, обеспечивающих пользователя самыми современными интерфейсными средствами.

    Автор: Кузьменко В
    Издательсвто: Бином
    Год издания: 2000
    Кол-во страниц: 416
    Стоимость: 116 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Visual Basic 6 Desktop. Экзамен 70-176

     Книги серии `Экзамен – экстерном` представляют собой удобные, сжатые, хорошо структурированные конспекты для подготовки к сдаче сертификационных экзаменов на звание Microsoft Certified Solution Developer. Книга `Visual Basic 6.0 Desktop. Экзамен 70-176` содержит только действительно необходимый материал, типовые вопросы с ответами и пример экзамена. Возможно, некоторые подходы, применяемые автором, покажутся вам не совсем привычными - не удивляйтесь: это не учебник по Visual Basic; организация материала в этой книге призвана максимально облегчить задачу экзаменуемого. Учтите, что в ряде случаев экзаменационные вопросы выходят за рамки тем, отраженных в документации по Visual Basic, а иной раз правильные ответы на них даже входят в противоречие с `официальной` информацией.

    Автор: Майкл Макдоналд
    Издательсвто: Питер
    Год издания: 2001
    Кол-во страниц: 608
    Стоимость: 123 р.
    Формат: 60x90/16
    Переплёт: мягкий

    Visual Basic 6. Руководство разработчика (+ CD-ROM)

     Эта книга, написанная известным специалистом и неутомимым пропагандистом Visual Basic, представляет собой прекрасный путеводитель по одному из наиболее популярных визуальных средств разработки Windows-приложений. Подробно освещаются такие ключевые темы программирования на Visual Basic, как проектирование и использование элементов ActiveX, программирование баз данных и разработка Web-приложений. Несомненный интерес представляют главы, посвященные работе с графикой. Большое количество тщательно продуманных примеров облегчает восприятие материала. Подбор материала и стиль изложения делают издание интересным и полезным для программистов разных уровней.

    Автор: Евангелос Петрусос
    Издательсвто: BHV, Ирина, SYBEX Inc
    Год издания: 2000
    Кол-во страниц: 1072
    Стоимость: 267 р.
    Формат: 70x100/32
    Переплёт: твёрдый

    Остальные книги о VB можно найти     здесь.

    наверх

    Определить дату изменения web-страницы

    Разместите на форме компонент Inet и элемент CommandButton.

    Public Function PageLastModified(URL As String) As String
    Dim strHeader As String
    Inet1.Protocol = icHTTP
    On Error Resume Next
    Inet1.OpenURL (URL)
    If Err.Number > 0 Then Exit Function
    strHeader = Inet1.GetHeader("Last-modified")
    PageLastModified = strHeader
    End Function

    Private Sub Command1_Click()
    MsgBox PageLastModified("http://sharig.webzone.ru/IndexMainTopic.htm")
    End Sub

    наверх

    Создать ссылку на страницу в Интернете

    Данный пример разместит на рабочем столе ярлык на сайт     VBnet.RU
    (при условии, что ваш путь к рабочему столу = "C:\WIN\Рабочий стол").

    Sub CreateInternetShortCut(URLFile As String, URLTarget As String)
    Dim intFreeFile As Integer
    intFreeFile = FreeFile
    Open URLFile For Output As intFreeFile
    Print #intFreeFile, "[InternetShortcut]"
    Print #intFreeFile, "URL=" & URLTarget
    Close intFreeFile
    End Sub

    Private Sub Form_Load()
    CreateInternetShortCut "C:\WIN\Рабочий стол\test.url", "http://vbnet.ru"
    End Sub

    наверх

    Как сохранить содержимое web-страницы на диск

    Расположите на форме элемент Inet (меню Project|Components - Microsoft Internet Transfer Control 6.0).

    'Вариант 1
    'Расположите на форме элемент Inet (меню Project|Components - Microsoft Internet Transfer Control 6.0).
    Private Sub Form_Load()
    Dim b() As Byte
    'установить протокол HTTP
    Inet1.Protocol = icHTTP
    'установить скачиваемый адрес
    Inet1.URL = "http://www.microsoft.com"
    'загрузить данные HTML-страницы в массив
    b() = Inet1.OpenURL(Inet1.URL, icByteArray)
    'создать файл на диске и записать в него информацию
    Open "c:\test.htm" For Binary Access Write As #1
    Put #1, , b()
    Close #1
    End Sub

    'Вариант 2
    'Расположите на форме элемент CommandButton.
    Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
    Public Function DownloadFile(URL As String, LocalFilename As String) As Boolean
    Dim lngRetVal As Long
    lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
    If lngRetVal = 0 Then DownloadFile = True
    End Function
    Private Sub Command1_Click()
    DownloadFile "http://sharig.webzone.ru", "c:\sharig_webzone_ru.htm"
    End Sub

    'Вариант 3
    'Расположите на форме элемент CommandButton. Данный пример только загрузить данные со страницы в элемент TextBox. А здесь вы можете узнать, как сохранить содержимое TextBox'а в файл.
    Private Sub Command1_Click()
    On Error GoTo handle
    Text1.Text = Inet1.OpenURL(Text2.Text, icString)
    Exit Sub
    handle: MsgBox "Error " & Err.Description
    End Sub

    наверх

    Как вытащить все ссылки из htm-страницы

    В одном из многочисленных примеров по работе с компонентом WebBrowser я натолкнулся на пример, как можно вытащить все ссылки из любого *.htm файла, находящегося как в интернете, так и локально на жестком диске. Честно говоря, моя жизнь после нахождения данного примера очень облегчилась, поскольку я часто работаю с инетом, со ссылками.

    Нажатие на первую кнопку покажет, как можно вытащить все ссылки из файла, а нажатие на вторую кнопку - как можно вытащить ссылки только определенного типа.

    Но для начала вам надо установить через меню Project | References ссылку на Microsoft Internet Control.

    ПРИМЕР 1

    Также вам необходимо расположить на форме 2 элемента CommandButton и элемент ListBox.

    Private IEBroj1 As SHDocVw.InternetExplorer
    Private Sub Form_Load()
    Set IEBroj1 = New SHDocVw.InternetExplorer
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    IEBroj1.Quit
    Set IEBroj1 = Nothing
    End
    End Sub

    Function Delay(Pause As Single)
    Dim Start As Single
    Start = Timer
    Do While Timer < Start + Pause
    DoEvents
    Loop
    End Function

    Private Sub Command1_Click()
    List1.Clear
    Dim x
    IEBroj1.Navigate "C:\1\index.htm"
    Delay 3 'задержа необходима для загрузки страницы
    'иногда требуется увеличить время загрузки до 30 секунд.
    For i = 1 To IEBroj1.Document.links.length - 1
    List1.AddItem IEBroj1.Document.links(i).href
    Next
    End Sub

    Private Sub Command2_Click()
    List1.Clear
    Dim x
    IEBroj1.Navigate "C:\1\index.htm"
    Delay 3
    For i = 1 To IEBroj1.Document.links.length - 1
    If InStr(1, IEBroj1.Document.links(i).href, ".asp") <> 0 Or InStr(1, IEBroj1.Document.links(i).href, ".htm") <> 0 Then
    List1.AddItem IEBroj1.Document.links(i).href
    End If
    Next
    End Sub

    ПРИМЕР 2: Расположите на форме элемент CommandButton и элемент ListBox.

    Dim X, Y, St1, St2, tmpY As Integer

    Private Sub Command1_Click()
    StripEmail ("D:\vbcode\index.htm")
    List1.AddItem "=============="
    StripURL ("D:\vbcode\index.htm")
    End Sub

    Public Sub StripEmail(FilePath As String)
    Dim tmpEmail1, tmpEmail2 As String
    Open FilePath For Input As #1
    Do Until EOF(1)
    Input #1, tmpEmail1
    For X = 1 To Len(tmpEmail1)
    tmpEmail2 = Mid(tmpEmail1, X, 7)
    If tmpEmail2 = "mailto:" Then
    St1 = X
    tmpY = X + 1
    For Y = 1 To Len(tmpEmail1)
    tmpEmail2 = Mid(tmpEmail1, tmpY, 1)
    If tmpEmail2 = Chr(34) Then
    St2 = tmpY
    tmpEmail2 = Mid(tmpEmail1, St1 + 7, ((St2 - St1) - 7))
    If (Left(tmpEmail2, 2) <> "//") And (Left(tmpEmail2, 1) <> " ") Then
    List1.AddItem tmpEmail2
    Exit For
    End If
    End If
    tmpY = tmpY + 1
    Next Y
    End If
    Next X
    Loop
    Close #1
    End Sub

    Public Sub StripURL(FilePath As String)
    Dim tmpURL1, tmpURL2 As String
    Open FilePath For Input As #1
    Do Until EOF(1)
    Input #1, tmpURL1
    For X = 1 To Len(tmpURL1)
    tmpURL2 = Mid(tmpURL1, X, 7)
    If tmpURL2 = "http://" Then
    St1 = X
    tmpY = X
    For Y = 1 To Len(tmpURL1)
    tmpURL2 = Mid(tmpURL1, tmpY, 1)
    If tmpURL2 = Chr(34) Then
    St2 = tmpY
    List1.AddItem Mid(tmpURL1, St1, ((St2 - St1)))
    Exit For
    Else
    tmpY = tmpY + 1
    End If
    Next Y
    End If
    Next X
    Loop
    Close #1
    End Sub

    наверх

    Практические советы по использованию компонента WebBrowser

    Прежде всего, вы можете создать проект с использованием компонента WebBrowser, используя для этой цели VB Application Wizard. Для этого войдите в меню File | New Project и выберите VB Application Wizard. Нажмите несколько раз Next, и когда программа спросит вас "Do you want your user to be able to access the Internet from your application" смело нажимайте Yes. Можно сразу нажать кнопку Finish. В ваше приложение будет добавлена возможность навигации по Интернету, используя созданный вами проект.

    Расположите на основной форме CommandButton и впишите в него следующий код:

    frmBrowser.Show

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

    Процесс, показывающий процесс загрузки веб-страницы

    Private Sub WebBrowser1_ProgressChange(ByVal Progress As Long, ByVal ProgressMax As Long)
    On Error Resume Next
    PBar.Max = ProgressMax
    If Progress = -1 Then
    Exit Sub
    Else
    If Progress <> ProgressMax Then
    PBar.Value = Progress
    progresslbl.Caption = Str(Round((Progress / ProgressMax) * 100)) & pert
    Else
    PBar.Value = ProgressMax
    progresslbl.Caption = Str(Round((Progress / ProgressMax) * 100)) & pert
    Exit Sub
    End If
    End If
    End Sub

    или такой вариант.

    Private Sub WebBrowser1_ProgressChange(ByVal Progress As Long, ByVal ProgressMax As Long)
    On Error Resume Next
    If Progress = -1 Then ProgressBar1.Value = 100
    If Progress > 0 And ProgressMax > 0 Then
    ProgressBar1.Value = Progress * 100 / ProgressMax
    End If
    Exit Sub
    End Sub

    или такой вариант.

    Private Sub WebBrowser1_ProgressChange(ByVal Progress As Long, ByVal ProgressMax As Long)
    On Error Resume Next
    ProgressBar1.Max = ProgressMax
    ProgressBar1.Value = Progress
    ProgressBar1.Refresh
    End Sub

    Просмотр содержимого веб-страницы "В виде HTML"

    2 варианта. Загрузите оба варианта, и посмотрите, что каждый код загружает...

    Text1 = WebBrowser1.Document.documentelement.innerhtml
    Text2 = WebBrowser1.Document.Body.innerhtml

    Вызвать окно "Печать"

    On Error Resume Next
    WebBrowser1.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DODEFAULT

    Добавить в ComboBox URL после загрузки

    Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    Combo1.Text = URL
    End Sub

    Навигация на узел в сети

    WebBrowser1.Navigate "about:blank" 'пустая страница

    WebBrowser1.Navigate "http://sharig.webzone.ru"

    Запрет на посещение определенных узлов в Инете

    Private Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)
    If InStr(1, URL, "playboy.com") Then
    Cancel = True
    MsgBox "Sorry, that site is restricted!"
    End If
    End Sub

    Ожидание загрузки страницы

    Do Until WebBrowser1.ReadyState = READYSTATE_COMPLETE
    DoEvents
    Loop

    Получить данные о загруженной странице

    MsgBox WebBrowser1.LocationName 'узнать имя загруженного файла (что-то типа "inet18_webbrowser.htm")

    MsgBox WebBrowser1.LocationURL 'получить URL загруженной страницы

    Вызвать окно "Сохранить как..."

    WebBrowser1.ExecWB OLECMDID_SAVEAS, OLECMDEXECOPT_DODEFAULT

    Что-то непонятное...

    Private Sub WebBrowser1_SetSecureLockIcon(ByVal SecureLockIcon As Long)
    If SecureLockIcon <> 0 Then
    imgSecure.Picture = "D:\garbage\ICON\2\face00.ico" 'path to secure icon
    Else
    imgSecure.Picture = "D:\garbage\ICON\2\face01.ico" 'path to unsecure icon
    End If
    End Sub

    Private Sub WebBrowser1_WindowClosing(ByVal IsChildWindow As Boolean, Cancel As Boolean)
    If MsgBox("This webpage is trying to close your browser window." & vbCrLf & vbCrLf & "Are you sure you want to close it?", vbYesNo, "BAPNet") = vbYes Then
    Unload Me
    Cancel = True
    ElseIf vbNo Then
    Cancel = True
    End If
    End Sub

    наверх

    Добавить сайт в список "Избранное"

    Данный код проверялся в Internet Explorer версии 5.0

    Option Explicit
    Public Enum SpecialShellFolderIDs
    CSIDL_DESKTOP = &H0
    CSIDL_INTERNET = &H1
    CSIDL_PROGRAMS = &H2
    CSIDL_CONTROLS = &H3
    CSIDL_PRINTERS = &H4
    CSIDL_PERSONAL = &H5
    CSIDL_FAVORITES = &H6
    CSIDL_STARTUP = &H7
    CSIDL_RECENT = &H8
    CSIDL_SENDTO = &H9
    CSIDL_BITBUCKET = &HA
    CSIDL_STARTMENU = &HB
    CSIDL_DESKTOPDIRECTORY = &H10
    CSIDL_DRIVES = &H11
    CSIDL_NETWORK = &H12
    CSIDL_NETHOOD = &H13
    CSIDL_FONTS = &H14
    CSIDL_TEMPLATES = &H15
    CSIDL_COMMON_STARTMENU = &H16
    CSIDL_COMMON_PROGRAMS = &H17
    CSIDL_COMMON_STARTUP = &H18
    CSIDL_COMMON_DESKTOPDIRECTORY = &H19
    CSIDL_APPDATA = &H1A
    CSIDL_PRINTHOOD = &H1B
    CSIDL_ALTSTARTUP = &H1D
    CSIDL_COMMON_ALTSTARTUP = &H1E
    CSIDL_COMMON_FAVORITES = &H1F
    CSIDL_INTERNET_CACHE = &H20
    CSIDL_COOKIES = &H21
    CSIDL_HISTORY = &H22
    End Enum
    Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
    Private Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" (ByVal hwndOwner As Long, ByVal nFolder As SpecialShellFolderIDs, pidl As Long) As Long
    Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal pv As Long)
    Public Function AddFavorite(SiteName As String, URL As String) As Boolean
    'SiteName - название сайта, URL - адрес сайта в Инете
    Dim pidl As Long
    Dim psFullPath As String
    Dim iFile As Integer
    On Error GoTo ErrorHandler
    iFile = FreeFile
    psFullPath = Space(255)
    If SHGetSpecialFolderLocation(0, CSIDL_FAVORITES, pidl) = 0 Then
    If pidl Then
    If SHGetPathFromIDList(pidl, psFullPath) Then
    psFullPath = TrimWithoutPrejudice(psFullPath)
    If Right(psFullPath, 1) <> "\" Then psFullPath = psFullPath & "\"
    psFullPath = psFullPath & SiteName & ".URL"
    Open psFullPath For Output As #iFile
    Print #iFile, "[InternetShortcut]"
    Print #iFile, "URL=" & URL
    Close #iFile
    End If
    CoTaskMemFree pidl
    AddFavorite = True
    End If
    End If
    ErrorHandler:
    End Function
    Public Function TrimWithoutPrejudice(ByVal InputString As String) As String
    Dim sAns As String
    Dim sWkg As String
    Dim sChar As String
    Dim lLen As Long
    Dim lCtr As Long
    sAns = InputString
    lLen = Len(InputString)
    If lLen > 0 Then
    For lCtr = 1 To lLen
    sChar = Mid(sAns, lCtr, 1)
    If Asc(sChar) > 32 Then Exit For
    Next
    sAns = Mid(sAns, lCtr)
    lLen = Len(sAns)
    If lLen > 0 Then
    For lCtr = lLen To 1 Step -1
    sChar = Mid(sAns, lCtr, 1)
    If Asc(sChar) > 32 Then Exit For
    Next
    End If
    sAns = Left$(sAns, lCtr)
    End If
    TrimWithoutPrejudice = sAns
    End Function

    Private Sub Form_Load()
    AddFavorite "Сайт VBnet.RU", "http://vbnet.ru"
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Nikolay

    Ответ ожидается по этому адресу

    Возможно ли с помощью VB ускорить системный таймер?
    Если да, то как?
    Если не трудно напишите по подробней...

    Автор вопроса: Дима

    Ответ ожидается по этому адресу

    Как сохранить выделенный текс вне формы в буфер или в переменную

    Автор вопроса: Alecsei

    Ответ ожидается по этому адресу

    Как можно добавить имя Data Base в DSN через VB6?

    Автор вопроса: alek

    Ответ ожидается по этому адресу

    По поиску в базе на форуме был такой код.
    Но почему то он не ищет. т.е на искомое слово базу не двигает. И за чем в этом коде нужен Form2.Visible = True? Помогите пожалуйста разобратся или дайте ссылку на небольшой пример по поиску в базе(например Access или Excel) В книгах Реселмана,Писли,Пручняка,Ананьева и Федорова по поиску вообще ничего нет,а нужно очень срочно.

    Private Sub Command1_Click()
    Data1.Recordset.FindFirst "Author" = Text1.Text _
    & Trim(InputBox("Введите фамилию:")) & Text1.Text
    If Data1.Recordset.NoMatch Then Form2.Visible = True
    End Sub

    Автор вопроса: КинГМинЮ

    Ответ ожидается по этому адресу

    Помогите, пожалуйста, кто может! Как контролировать подключение и отключение к интернету средствами VBA?

    Автор вопроса: Duke

    Ответ ожидается по этому адресу

    Как можно в ресурсы засунуть WAV,AVI а потом их воспроизвести.

    Ответы:

    Вопрос:

    Может кто-нибудь знает, как спрятать значки на рабочем столе? (в смысле так, как это делает Windows при определённых настройках)

    Ответ:

    Автор ответа: SLTK

    'Код в модуль
    Declare Function ShowWindow& Lib "user32" (ByVal hwnd&, ByVal nCmdShow&)
    Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

    'Код в программу
    Dim hHandle As Long
    hHandle = FindWindow("progman", vbNullString)
    Call ShowWindow(hHandle, SW_NORMAL) 'Показать

    hHandle = FindWindow("progman", vbNullString)
    Call ShowWindow(hHandle, SW_HIDE) 'Скрыть

    Вопрос:

    Может кто-нибудь знает, как спрятать значки на рабочем столе? (в смысле так, как это делает Windows при определённых настройках)

    Ответ:

    Автор ответа: Valera

    Пропеши в реестре по этому пути
    (HREY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer) и создай параметр DWORD NoDesktop=1 (если 0 - все значки видны.)

    Вопрос:

    Как использовать Assembler В VB?

    Ответ:

    Автор ответа: Valera

    Ни как, если очень надо то пиши DLL библиотеку на C++ и делай Assembler'ную вставку туда.

    Вопрос:

    Скажите, пожалуйста, можно ли при движении мышью (без клика) по пунктам меню считывать их содержимое?

    Ответ:

    Автор ответа: CaHeK

    Есть такое событие MouseMove, оно как раз и отвечает за наведение мыши…

    Вопрос:

    Подскажите пожалуйсто как передать параметры в отчет Cristal Reports Используя crpe32.dll (если есть у кого описание API функций этой DLL пришлите пож. буду рад любой информации)

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Тема весьма интересная. Вообще-то я предпочитаю использовать SelectionFormula, мне так больше нравится. Но если говорить о параметрах, то это будет выглядеть приблизительно так:

    CR.ParameterFields(0) = "StartDate;DateTime(2001,08,20,0,0,0);TRUE"
    CR.ParameterFields(1) = "EndDate;DateTime(2001,08,27,23,59,59);TRUE"

    В данном примере CR - имя контрола Создается семейство параметров, каждому из которых присваивается СТРОКОВОЕ выражение, состоящее из трех частей: Имя параметра, значение и флаг обновления (ставим всегда в TRUE).В примере оба параметра являются датами, поэтому для их формирования применена функция DateTime (это функция кристала, а не бэйсика). В качестве второй части передаваемой строки может быть использовано всё, что написано на языке самого кристала.

    Если нужна более подробная информация - пиши лично, обязательно расскажу, так как в свое время сам с этим много маялся.

    Вопрос:

    Можно ли работать в VB с БД MySql так же как с Access. Если да то что для этого надо?

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Однозначно можно. Через ODBC.
    Для этого понадобится библиотечка MyODBC. Найти её можно на www.mysql.com Там есть инструкция по установке и использованию. Всё что потребуется - это создать источник и использовать его как и любой другой. Под ADO проблем у меня не возникало.
    Если тебе хочется иметь какую-то среду для разработки табличек и выполнения запросов, то на том же сайте можно найти GUI для MySQL. Называется она MyControlCenter (вроде бы так). Естественно, это всё бесплатно. Мне больше нравится другая программка: http://www.anse.de/mysqlfront/
    У неё и функций побольше, и удобство повыше.

    Вопрос:

    Как мне создавать/менять/удалять пользователей, групп и т.д. используя ВБ 6.0 на:

    а) В Вин2к/НТ компьютере, в рабочей группе (без домена)
    б) В Вин2л/НТ домене.

    Любые ссылки на е-доки, советы

    Ответ:

    Автор ответа: Anvar Hudshamkulov

    Ispoljsuj ADSI (Active Directory Service Interface)
    Dlja WinNT: installirue6j ADSI, dlja 4ego ide6j na
    www.microsoft.com/ntserver/nts/downloads/other/adsi25/default.asp

    Dlja Win2000: ADSI u#e vstroen.

    Help: www.microsoft.com/ntserver/downloads/bin/nts/adsi25.chm

    Primeri po ispoljsovaniju ADSI na VB:
    www.williamspublishing.com
    Ishi tam ishodniki primerov dlja knigi
    Szenarii ADSI dlja sistemnogo administrirovanija Windows NT/2000 Avtor Thomas Eck

    Krome togo, MSDN, rasumeetsja.

    Вопрос:

    У меня вопрос к янатокам в области API-функций. Есть такая строка:
    call MCIExecute("play c:\fun\music\age 1.wav")
    Описание проблемы - судя по всему, функция не хочет принимать имя файла, в котором содержатся пробелы. Вопрос - можно ли эту функцию "научить" понимать пробелы в имени файла и если да, то каким методом?

    Ответ:

    Автор ответа: Андрей Щёкин

    Скорее всего достаточно заключить имя файла и путь в кавычки:
    MCIExecute "play ""c:\fun\music\age 1.wav"""

    Вопрос:

    У меня вопрос к янатокам в области API-функций. Есть такая строка:
    call MCIExecute("play c:\fun\music\age 1.wav")
    Описание проблемы - судя по всему, функция не хочет принимать имя файла, в котором содержатся пробелы. Вопрос - можно ли эту функцию "научить" понимать пробелы в имени файла и если да, то каким методом?

    Ответ:

    Автор ответа: P@Ssword

    Попробуй написать call MCIExecute("play ""c:\fun\music\age 1.wav""")

    Вопрос:

    У меня вопрос к янатокам в области API-функций. Есть такая строка:
    call MCIExecute("play c:\fun\music\age 1.wav")
    Описание проблемы - судя по всему, функция не хочет принимать имя файла, в котором содержатся пробелы. Вопрос - можно ли эту функцию "научить" понимать пробелы в имени файла и если да, то каким методом?

    Ответ:

    Автор ответа: Igoryk

    К сожалению нет, потому что в данной функции " " - это разделитель команд, но можно импользовать другой код, который понимает файлы с пробелами:

    Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long

    Private Sub Form_Load() 'Код можешь перенести в любое другое событие
    Call PlaySound("c:\fun\music\age 1.wav", 0, 0)
    End Sub

    Вопрос:

    Подскажите плз, как можно программно настроить реестр вин 98. В частности мне надо исправить значения переменных в разделе

    HKEY_USERS\.DEFAULT\AppEvents\EventLabels

    Ответ:

    Автор ответа: SHatrykin Ivan

    Есть замечательная статья Михаила Эскина на эту тему. Там все написано. Прочитать ее можно здесь:
    "Грамотно работаем с реестром"
    [www.vbnet.ru/articles/showarticle.asp?id=24]

    Вопрос:

    Здратвуйте в чём причина когда я перехожу в "коде" на русский то печатает непонятными символами раньше всё было нармально а сёйчас стало так может какие нибудь настройки сбились или что?

    Ответ:

    Автор ответа: Иван

    В настройках VB измени шрифт и всё нормально пойдёт
    Меню "Tools"("Инструменты") пункт "Options"("Опции"), вкладка "Editor Format"(Формат Редактора).

    Вопрос:

    Здратвуйте в чём причина когда я перехожу в "коде" на русский то печатает непонятными символами раньше всё было нармально а сёйчас стало так может какие нибудь настройки сбились или что?

    Ответ:

    Автор ответа: SHatrykin Ivan

    Действительно, сбились настройки. Точнее говоря у Вас проблема со шрифтом Couriner New, именно его использует редактор по-умолчанию. Сделайте так: зайдите в меню Tools-Options, на вкладке Editor Format выберите другой шрифт для редактора. Иногда также бывает, что окна диалогов редактора "ломаются" - точнее, шрифт в них становиться непонятно большого размера и некоторые опции не удается прочитать. Это дело можно пофиксить заменой шрифта Tahoma в Windows на такой же шрифт из дистрибутива VB.

    Вопрос:

    Здратвуйте в чём причина когда я перехожу в "коде" на русский то печатает непонятными символами раньше всё было нармально а сёйчас стало так может какие нибудь настройки сбились или что?

    Ответ:

    Автор ответа: Igoryk

    Чтобы это все исправить зайди в Tools>>Options. И выбери вкладку Editor Format. Теперь выбери Normal Text (если надо выберешь и другой), и измени значение шрифта, чтобы его название заканчивалось на Cyr.

    Вопрос:

    Здратвуйте в чём причина когда я перехожу в "коде" на русский то печатает непонятными символами раньше всё было нармально а сёйчас стало так может какие нибудь настройки сбились или что?

    Ответ:

    Автор ответа: Алексей

    Попробуй изменить шрифт. Это можно сделать через Tools/Options/Editor Format
    Выбери например Courier New CYR

    Вопрос:

    Здратвуйте в чём причина когда я перехожу в "коде" на русский то печатает непонятными символами раньше всё было нармально а сёйчас стало так может какие нибудь настройки сбились или что?

    Ответ:

    Автор ответа: P@Ssword

    Tools => Options... => Editor Format
    Font: Courier New CYR

    Вопрос:

    Здратвуйте в чём причина когда я перехожу в "коде" на русский то печатает непонятными символами раньше всё было нармально а сёйчас стало так может какие нибудь настройки сбились или что?

    Ответ:

    Автор ответа: Артем Меняйленко

    Tools/Options/Editor format сменить Courier New на Courier New Cyr

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 56.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Кончились празднички...
    Читайте!

    Содержание выпуска
    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Visual Basic 6. Мастер. Руководство для профессионалов

     Язык программирования Visual Basic - мощный инструмент разработки приложений для 32-разрядных систем Windows 95 и Windows NT. В книге рассматриваются как фундаментальные понятия и темы: от установки продукта на компьютер пользователя и описания интегрированной среды разработки до изложения основ техники программирования на Visual Basic, так и сложные вопросы, адресованные профессиональным программистам: создание интерфейса пользователя, применение стандартных элементов управления, в том числе и для работы с базами данных, программирование компонентов ActiveX, описание технологии OLE drag-and-drop, объектная модель FSO, функции работы с файлами, отладка и оптимизация программ, локализация и распространение готовых приложений.

    Автор: нет даных
    Издательсвто: нет данных
    Год издания: 1998
    Кол-во страниц: 992
    Стоимость: 112,48 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Visual Basic 6. Специальный справочник

     Главная цель этого справочника - научить читателя использовать инструменты и средства Visual Basic, позволяющие значительно облегчить и ускорить процесс создания приложений. Здесь вы найдете описание элементов языка, библиотечных функций и SQL-операторов. Особое внимание уделено различным мастерам, предназначенным для решения стандартных задач. Весь справочный материал в книге разбит на главы, в каждой из которых вы найдете информацию по созданию приложения определенной направленности. Разделы в главе содержат пошаговое описание операций, которые нужно выполнить для решения поставленной задачи, синтаксис необходимых операторов, а также подробно разобранные примеры. Предлагаемый справочник будет полезен не только пользователям, активно работающим с Visual Basic 6, но и начинающим программистам, желающим перейти к профессиональной разработке приложений с наименьшими затратами времени на изучение новой среды программирования.

    Автор: Б. Карпов
    Издательсвто: Питер
    Год издания: 2000
    Кол-во страниц: 416
    Стоимость: 70,78 р.
    Формат: 84х108/32
    Переплёт: нет данных

    Visual Basic 6.0 for application

     Книга является систематизированным справочником по всем элементам языка программирования Visual Basic (VB), входящим, как в автономную версию VB, так и в основные реализации Visual Basic for Applications.
    Помимо тех официальных сведений, которые можно найти в документации и в справочной системе, книга содержит конкретные примеры, рекомендации и маленькие хитрости программиста, а также поправки к справочной системе, которая, увы, не без ошибок.
    Книга предназначена для всех специалистов, занимающихся разработкой приложений с применением Visual Basic и Visual Basic for Applications.

    Автор: Король В.И.
    Издательсвто: КУДИЦ-Образ
    Год издания: 2000
    Кол-во страниц: 448
    Стоимость: 113,87 р.
    Формат: 70х100/16
    Переплёт: мягкий

    Win32 API и Visual Basic. / Для профессионалов /

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

    Автор: Д. Эпплман
    Издательсвто: Питер
    Год издания: 2001
    Кол-во страниц: 1120
    Стоимость: 489,08 р.
    Формат: нет данных
    Переплёт: нет данных

    Азбука программирования в Windows 32 API

     Изложены вопросы создания программных приложений для Window95 и Windows NT. Описаны основные типы переменных, макросов, функций. Материал книги иллюстрируется многочисленными примерами. 1 Настоящее издание (второе вышло в 2000 г.) дополнено описанием тех возможностей Windows, которые не были упомянуты в предыдущих изданиях.

    Автор: Румянцев П.В.
    Издательсвто: Радио и связь
    Год издания: 2001
    Кол-во страниц: 312
    Стоимость: 85 р.
    Формат: 60х88/16
    Переплёт: нет данных

    Использование Visual Basic 6. Специальное издание

     В книге описана новая версия популярной системы программирования Visual Basic 6. Изложение материала построено по принципу "от простого к сложному". Первые главы этой книги адресованы новичкам, из которых они смогут почерпнуть основы языка Visual Basic и описание его стандартных компонентов. Для подготовленных пользователей будет интересен раздел, посвященный специальным методам программирования с использованием стандартных компонентов Windows, элементов управления ActiveX, ADO. RDO и др. В отдельную часть вынесены вопросы, связанные с разработкой приложений баз данных на Visual Basic и работе в Internet. Автор не обошел также вниманием различные версии языка Visual Basic - VBA и VBScript. В приложениях приведен обзор интегрированной среды разработки Visual Basic, а также краткий справочник по SQL.
    Книга рассчитана на широкий круг читателей.

    Автор: Сайлер Б., Споттс Дж.
    Издательсвто: Вильямс
    Год издания: 1999
    Кол-во страниц: 832
    Стоимость: 244,02 р.
    Формат: 70х100/16
    Переплёт: твёрдый

    Обработка баз данных на Visual Basic 6 + CD

     Сердцем многих приложении, работающих в сфере бизнеса, являются базы данных. Своим широким распространением они обязаны возможности централизованного доступа к информации. который характеризуется последовательностью, эффективностью и относительной простотой создания и поддержки. В книге "Обработка баз данных на Visual Basic 6" описываются все технологии доступа к базам данных с помощью Visual Basic. Приведенные в этой книге примеры взяты из реальной жизни, поэтому, ознакомившись с ними, вы узнаете, как можно использовать базы данных для принятия решений в сфере бизнеса. Если вы еще не готовы перейти к версии Visual Basic 6, это вовсе не значит, что данная книга вам не подходит. Практически 95% материала этой книги удовлетворит в равной степени пользователей как пятой, так и шестой версий Visual Basic.
    Книга рассчитана на программистов средней и высокой квалификации.

    Автор: Мак-Манус Дж.П.
    Издательсвто: Вильямс
    Год издания: 1999
    Кол-во страниц: 672
    Стоимость: 294,66 р.
    Формат: 70х100/16
    Переплёт: твёрдый

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Последние 20 тем форума на VBNet.Ru:

    20:28 / 11 май. API для mpr.dll | Ответов: 1
    15:59 / 11 май. perl for win98 | Ответов: 1
    12:10 / 11 май. Новое сообщение без темы | Ответов: 1
    11:54 / 11 май. Для админов... | Ответов: 1
    23:51 / 10 май. Так что, нет идей ??? | Ответов: 1
    21:24 / 10 май. Советую Прочитать !!!! | Ответов: 3
    18:41 / 10 май. вопроос про трэй | Ответов: 2
    17:14 / 10 май. Люди приколитесь!!!! | Ответов: 1
    16:22 / 10 май. Админ, тут слегонца подглючивает | Ответов: 2
    11:39 / 10 май. Визуализация на форме матрицы данных. | Ответов: 2
    11:06 / 10 май. Значки и VB3 | Ответов: 0
    20:54 / 9 май. Только для Вас! | Ответов: 1
    18:35 / 9 май. !!! Всех С Праздничком 9 мая!!!! УРА!!!! | Ответов: 1
    17:58 / 9 май. Звук и эквалайзер | Ответов: 1
    17:42 / 9 май. Internet | Ответов: 1
    06:29 / 9 май. Посоветуйте плз инструментарий | Ответов: 1
    02:41 / 9 май. Как изменить Scroll в DirListBox? | Ответов: 0
    23:50 / 8 май. Как зделать скриншот? | Ответов: 1
    17:56 / 8 май. Можно ли ускорить системный таймер с помощью VB? | Ответов: 0
    17:39 / 8 май. Народ помогите !!! | Ответов: 2

    Последние поступления в Библиотеку кодов:

    Нету.

    наверх

    Новости сайта VBMania

    • 15.04 - В связи с резким увеличением числа вопросов, поступающих на e-mail администрации сайта, было решено не дожидаться открытия форума, и начать отвечать на вопросы прямо на главной странице. Обсуждению последней новости ответы на вопросы не помешают. Вашего совета ждут, на ваш вопрос ответят.
    • 25.01 - Сегодня открылся новый раздел, в котором вы можете найти ссылки на целую кучу книг по тематике VB и около него.
    • 22.01 - 22 января вышел второй номер он-лайн журнала о Visual Basic 'VB Мания'. В нем можно почитать авторские статьи в уже устоявшихся разделах: Технологии, Система, Графика, Профессия, Человечество и Юмор. Так же не обошлось без новшеств: появился новый раздел dotNET и особенно рецензии ActiveX-компонентов. Обязательно заходите.
    • 17.12 - В связи с тем что форум не горел желаением вести себя так, как должен обычный, порядочный форум, мы его прикрыли для проведения разъяснительных мероприятий. Надеемся, что они не затянутся и форум образумится.
    • 06.12 - С сегодняшнего дня все желающие могут добавлять свои новости и статьи в наши архивы.
      Да здраствует открытость!
    • 27.11 - Наконец-то, после долгих дней и бессонных ночей это свершилось! Сайт объявляется открытым! Непременно прочитайте первый номер нашего журнала. Оцените наши дополнительные проекты. И конечно мы ждем ваших откликов в гостевой книге и по почте.
    • 01.12 - Произошло несколько косметических улучшений, касающихся исключительно удобства работы с сайтом. Во-первых, можно видеть количество записей обсуждения новостей на главной странице; а во-вторых чуточку подправились директории.
      Оценяйте!

    наверх

    Новости сайта Азбука VB

    • 10 апреля 2001 года
      Создание простого аналога к ListView на примере Mp3 проводника!. Пример создания листа + слайдера + применение как браузера.
      Создание прогрессбара. Еще один оригинальный вариан создания своего прогрессбара.
      Сохранения данных с рабочего листа Excel в Dbase таблицу. В связи с тем, что dbase формат до сих пор очень сильно распространен, очень часто возникает необходимость сохранения данных с рабочего листа Excel в Dbase таблицу.
      Разборка форматированного текста состояшего из шести значений разделённых символом ";". Пример разборки форматированного текста состояшего из шести значений разделённых символом ";" с последуюшеё записью каждого значения в свою ячейку. Макрос также обрабатывает все непустые ячеки столбца.
      Плагины! Создание и работа с ними. На примерах показано, как создавать плагины и как с ними можно работать.
      Проверка на слэш (способ 2). Как избежать ошибки при обращении к файлу? Иногда нужно обратиться к файлу, используя три объекта: Drive (Диск), Dir (Каталоги) и File (Файлы). Drive.Drive возвращает значение равное "?:\", где ? - буква диска. Dir.Path возвращает значение равное "?:\?", где в первом случае ? - буква диска, а во втором - каталог. File.Filename же возвращает имя файла. Если нужно открыть файл на корневом каталоге (?:\), то делается это следующим образом:
      'Справочники Советов' - Пять справочников !!!. Здесь собраны и скомпилированы в Help-файлы - "Советы тем, кто программирует на VB" А. Колесова и О. Павловой. Советы разбиты на 5 файлов (по 100 штук в каждом). Советы начинаются с № 1 (еще по VB3 - 1996 г.) по 2001 год включительно, в связи с переходом на работу в другой журнал, у последних советов появился новый соавтор Малинин. В 5-й файл добавлена статья Колесова (с советами) по работе с API-функциями.

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Тоша

    Ответ ожидается по этому адресу

    Как в VB6.0 сделать форму fsStayOnTop??

    Автор вопроса: Andrey

    Ответ ожидается по этому адресу

    У меня вопрос по Web Browser'у. Подскажите как в VB менять раямер текста в Web Browser как это делает Internet Explorer.

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    Как посмотреть не доконца-яагруженную страницу web-сайта. т.е. Страница яагружается, а моя программа ищет определенный код и ияменяет его.

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    Как свою программу прописать в меню которая открывается нажатием правой клавешей мыши вне моей формы.

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    Зачем нужно обьявлять Option Explicit ?
    Что бы не яабыть обьявить переменную ???

    Автор вопроса: Вячеслав Ленчевский

    Ответ ожидается по этому адресу

    Как послать строку в текстовое поле чужого окна?

    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

    Здравствуйте. Как получить позицию курсора в RichTextBox я знаю: как получить свойства шрифта под курсором? Другими словами, нужно что-то вроде Windows хелпа, чтобы при подводе курсора на подчеркнутый текст менялся MousePointer.

    Автор вопроса: Serzhant

    Ответ ожидается по этому адресу

    Может кто знает как вытянуть данные из таблицы ворд в таблицу экселя, подскажите плиз.

    Автор вопроса: Sk0rp

    Ответ ожидается по этому адресу

    Кто знает как в VB
    1)запустить какой-нибудь файл?
    2)получить список всех файлов и папок в какой-нибудь определенной папке?

    Автор вопроса: Dmitry

    Ответ ожидается по этому адресу

    У меня проблема с Linked Tables /FoxPro/ в Access DB. Некоторъе таблици откръваются другие нет. Я думаю что проблема в том что в одной из таблиц есть поле с типом DOUBLE
    Код которъй изпользую:

    cnn.Open "Driver={Microsoft Visual FoxPro Driver};" & _
    "SourceType=DBF;" & _
    "SourceDB=C:\Retime\Data\Retime;" & _
    "Exclusive=No;"
    Set rst = New ADODB.Recordset
    strSQL = "rescomp"
    rst.Open strSQL, cnn, adUseClient, adLockOptimistic, adCmdTable

    Если кто знает в чем проблема помогите.

    Автор вопроса: Mic

    Ответ ожидается по этому адресу

    Как в VBA сояданному програмно объекту наяначить реакцию на событие OnClick.

    Автор вопроса: Иван

    Ответ ожидается по этому адресу

    Как гарантированно опознать компьютер? То есть: сер.номер мамы, сер.номер винта или что-нибудь в этом духе, без компонентов, желательно через API.

    Ответы:

    Вопрос:

    По поиску в базе на форуме был такой код.
    Но почему то он не ищет. т.е на искомое слово базу не двигает. И за чем в этом коде нужен Form2.Visible = True? Помогите пожалуйста разобратся или дайте ссылку на небольшой пример по поиску в базе(например Access или Excel) В книгах Реселмана,Писли,Пручняка,Ананьева и Федорова по поиску вообще ничего нет,а нужно очень срочно.

    Private Sub Command1_Click()
    Data1.Recordset.FindFirst "Author" = Text1.Text _
    & Trim(InputBox("Введите фамилию:")) & Text1.Text
    If Data1.Recordset.NoMatch Then Form2.Visible = True
    End Sub

    Ответ:

    Автор ответа: Ревягин_Алексей

    dim str as string

    str = "Name = 'QWERTY'"
    Data.Recordset.FindNext str

    где Name-имя поля в БД
    QWERTY-искомое слово

    Вопрос:

    Может кто-нибудь знает, как спрятать значки на рабочем столе? (в смысле так, как это делает Windows при определённых настройках)

    Ответ:

    Автор ответа: XAlex

    Если знаешь как работать с реестром то думаю дальше обьяснять не надо

    ;[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
    ;скрывает все элементы и программы на Рабочем столе Windows:
    ;"NoDesktop"=dword:00000001

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 57.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.
Новости сайта IgorykSoft и советы по программированию

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Опять пятница!
    Читайте!

    Содержание выпуска
    • Книги

    • Получение URL из адресной строки Microsoft Internet Explorer
    • Автозавершение набора URL
    • Запрещение запуска дополнительных окон IE
    • Определение имени текущего домена и имени пользователя
    • Подключение/отключение сетевого диска
    • Определение имени или IP-адреса удаленного компьютера в сети

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Получение URL из адресной строки Microsoft Internet Explorer

    Примечание: не всегда у меня данный код срабатывал. Закройте все окна Internet Explorer, запустите программу, откройте любую htm-страницу, нажмите на кнопку в вашей программе.

    Private Declare Function shellexecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
    Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
    Private Declare Function SendMessageLong& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long)
    Private Declare Function SendMessageByString Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
    Const WM_USER = &H400

    Const EM_LIMITTEXT = WM_USER + 21
    Private Const WM_GETTEXT = &HD
    Private Const WM_GETTEXTLENGTH = &HE
    Private Const EM_GETLINECOUNT = &HBA
    Private Const EM_LINEINDEX = &HBB
    Private Const EM_LINELENGTH = &HC1

    Private Sub Command1_Click()
    On Error GoTo CallErrorA
    Dim iPos As Integer
    Dim sClassName As String
    Dim GetAddressText As String
    Dim lhwnd As Long
    Dim WindowHandle As Long
    lhwnd = 0
    sClassName = ("IEFrame")
    lhwnd = FindWindowEx(lhwnd, 0, sClassName, vbNullString)
    sClassName = ("WorkerA")
    lhwnd = FindWindowEx(lhwnd, 0, sClassName, vbNullString)
    sClassName = ("ReBarWindow32")
    lhwnd = FindWindowEx(lhwnd, 0, sClassName, vbNullString)
    sClassName = ("ComboBoxEx32")
    lhwnd = FindWindowEx(lhwnd, 0, sClassName, vbNullString)
    sClassName = ("ComboBox")
    lhwnd = FindWindowEx(lhwnd, 0, sClassName, vbNullString)
    sClassName = ("Edit")
    lhwnd = FindWindowEx(lhwnd, 0, sClassName, vbNullString)
    WindowHandle& = lhwnd
    Dim buffer As String, TextLength As Long
    TextLength& = SendMessage(WindowHandle&, WM_GETTEXTLENGTH, 0&, 0&)
    buffer$ = String(TextLength&, 0&)
    Call SendMessageByString(WindowHandle&, WM_GETTEXT, TextLength& + 1, buffer$)
    MsgBox buffer$
    Exit Sub
    CallErrorA:
    MsgBox Err.Description
    Err.Clear
    End Sub

    наверх

    Автозавершение набора URL

    Этот пример для счастливых обладателей броузера ИнтернетЭксплорер версии от 5.0 и выше.
    Помните про возможность автозавершения набора адреса? Нет? Не беда! Установите на форме компонент Label, компонент TextBox и CommandButton. И вы сразу почувствуете прелесть этого примера. Идеальный пример для работы с компонентом WebBrowser

    Option Explicit
    Private Const SHACF_AUTOSUGGEST_FORCE_ON As Long = &H10000000
    Private Const SHACF_AUTOSUGGEST_FORCE_OFF As Long = &H20000000
    Private Const SHACF_AUTOAPPEND_FORCE_ON As Long = &H40000000
    Private Const SHACF_AUTOAPPEND_FORCE_OFF As Long = &H80000000
    Private Const SHACF_DEFAULT As Long = &H0
    Private Const SHACF_FILESYSTEM As Long = &H1
    Private Const SHACF_URLHISTORY As Long = &H2
    Private Const SHACF_URLMRU As Long = &H4
    Private Const SHACF_URLALL As Long = (SHACF_URLHISTORY Or SHACF_URLMRU)

    Private Const DLLVER_PLATFORM_WINDOWS As Long = &H1 'Windows 95
    Private Const DLLVER_PLATFORM_NT As Long = &H2 'Windows NT

    Private Type DllVersionInfo
    cbSize As Long
    dwMajorVersion As Long
    dwMinorVersion As Long
    dwBuildNumber As Long
    dwPlatformID As Long
    End Type

    Private Declare Function SHAutoComplete Lib "Shlwapi.dll" (ByVal hwndEdit As Long, ByVal dwFlags As Long) As Long
    Private Declare Function DllGetVersion Lib "Shlwapi.dll" (dwVersion As DllVersionInfo) As Long

    Private Function GetIEVersion(DVI As DllVersionInfo) As Long
    DVI.cbSize = Len(DVI)
    Call DllGetVersion(DVI)
    GetIEVersion = DVI.dwMajorVersion
    End Function

    Private Function GetIEVersionString() As String
    Dim DVI As DllVersionInfo
    DVI.cbSize = Len(DVI)
    Call DllGetVersion(DVI)
    GetIEVersionString = "Internet Explorer " & DVI.dwMajorVersion & "." & DVI.dwMinorVersion & "." & DVI.dwBuildNumber
    End Function

    Private Sub Command1_Click()
    Dim DVI As DllVersionInfo
    If GetIEVersion(DVI) >= 5 Then
    Call SHAutoComplete(Text1.hWnd, SHACF_DEFAULT)
    Command1.Caption = "Автозавершение включено"
    Command1.Enabled = False
    Text1.SetFocus
    Text1.SelStart = Len(Text1.Text)
    Else
    MsgBox "Простите, но у вас не установлен IE5", vbExclamation
    End If
    End Sub

    Private Sub Form_Load()
    Dim DVI As DllVersionInfo
    Label1 = "Использование Shlwapi.dll для " & GetIEVersionString
    Command1.Enabled = GetIEVersion(DVI) >= 5
    Command1.Caption = "Автозавершение выключено"
    End Sub

    наверх

    Запрещение запуска дополнительных окон IE

    Данный пример запретит запуск дополнительных окон броузера ИнтернетЭксплорер. Этот пример хорош для борьбы с рекламными окошками, запускаемыми автоматически на тех или иных сайтах.

    Что делает пример: 1) программа при запуске определяет количество запущенных окон InternetExplorer'а. 2) во время работы программа проводит мониторинг запущенных процессов, 3) и если запущено очередное окно Internet Explorer'а программа его закроет.

    Ну а кнопка вам понадобится, если вы захотите отключить/снова включить процесс мониторинга.

    Пример подробно описан, но... на английском языке.

    Установите на форме компонент Label, компонент Timer и CommandButton. Также в этом примере вам понадобится дополнительный модуль.

    'КОД МОДУЛЯ:
    Public Type WI
    TitleBarText As String
    TitleBarLen As Integer
    hWnd As Long
    End Type
    Public Declare Function GetWindowTextLength Lib "user32.dll" Alias "GetWindowTextLengthA" (ByVal hWnd As Long) As Long
    Public Declare Function EnumWindows Lib "user32.dll" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
    Public Declare Function GetWindowText Lib "user32.dll" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal nMaxCount As Long) As Long
    Public WinNum As Integer 'holds the number of windows examined
    Public CurrentWindows(299) As WI 'holds information about all of the currently open windows

    Public Function EnumWindowsProc(ByVal hWnd As Long, ByVal lParam As Long) As Long
    Dim WinInfo As WI 'holds information about the window currently being examined
    Dim retval As Long 'holds the return value
    Dim X As Integer

    WinInfo.TitleBarLen = GetWindowTextLength(hWnd) + 1 'find the length of the title bar text of the window currently being examined
    If WinInfo.TitleBarLen > 0 And Len(hWnd) > 1 Then 'if the title bar text of the window currently being examined is at least one character long AND the window's handle is > 1
    WinInfo.TitleBarText = Space(WinInfo.TitleBarLen) 'initialize the variable that will hold the title bar text
    retval = GetWindowText(hWnd, WinInfo.TitleBarText, WinInfo.TitleBarLen) 'retreive the title bar text of the window currently being examined
    WinInfo.hWnd = hWnd 'holds the value of this window's handle
    CurrentWindows(WinNum).hWnd = WinInfo.hWnd 'store this window's handle in the current windows array
    CurrentWindows(WinNum).TitleBarText = WinInfo.TitleBarText 'store this window's title bar text in the current windows array
    WinNum = WinNum + 1 'increment the window counter
    End If
    EnumWindowsProc = 1 'continue enumeration of windows
    End Function

    'КОД ФОРМЫ
    Option Explicit
    Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Private Const WM_CLOSE = &H10
    Dim ExistingIEWindows(49) As Long 'holds the handles of all of the currently existing IE windows (50 max)
    Dim Flash As Integer 'holds the value that determines if the status text should flash

    Private Sub Command1_Click()
    If Command1.Caption = "Отключить мониторинг" Then
    Timer1.Enabled = False
    Command1.Caption = "Включить мониторинг"
    Else
    Timer1.Enabled = True
    End If
    End Sub

    Private Sub Form_Load()
    Timer1.Interval = 100
    Command1.Caption = "Отключить мониторинг"
    Dim X As Integer 'loop variable
    Label1.Caption = "Initializing..."
    Flash = 0
    For X = 0 To 49 'reset/initialize the existing IE windows array
    ExistingIEWindows(X) = 0
    Next
    Call GetExistingIEWindows
    End Sub

    Private Sub GetExistingIEWindows() 'this sub checks to see if any IE windows are currently open, and "remembers" them if so.
    Dim retval As Long 'holds the return value
    Dim X As Integer, Y As Integer 'loop variables
    Label1.Caption = "Examining currently active system windows..."
    WinNum = 0 'initialize number of windows to zero
    For X = 0 To 199 'reset/initialize the current windows array
    CurrentWindows(X).hWnd = 0
    CurrentWindows(X).TitleBarLen = 0
    CurrentWindows(X).TitleBarText = ""
    Next
    retval = EnumWindows(AddressOf EnumWindowsProc, 0) 'enumerate all open windows
    Y = 0
    For X = 0 To WinNum - 1 'for each window that is currently open
    If InStr(1, CurrentWindows(X).TitleBarText, "Microsoft Internet Explorer", vbTextCompare) > 0 Then 'if this window is an IE window...
    Label1.Caption = "Storing IE window handle..."
    ExistingIEWindows(Y) = CurrentWindows(X).hWnd 'add this window to the list of existing IE windows
    Y = Y + 1
    End If
    Next
    If Y > 0 Then 'if any of the existing system windows are IE windows
    Label1.Caption = "Enabling popup monitoring..."
    Timer1.Enabled = True 'enable the timer that checks for any new IE windows
    Label1.Caption = "Monitoring for new IE windows..."
    Else 'if none of the existing system windows are IE windows
    Label1.Caption = "No IE windows found!"
    MsgBox "There are currently no IE windows open!" & vbLf & vbLf & "Please start Internet Explorer before running this program.", vbExclamation + vbOKOnly, "Error" 'if no IE windows are found, display an error message
    End 'exit this program
    End If
    End Sub

    Private Sub Timer1_Timer()
    Dim retval As Long 'holds the return value
    Dim X As Integer, Y As Integer 'loop variables
    Dim KillCount As Integer 'holds the value that determines if the current window should be killed
    WinNum = 0 'initialize number of windows to zero
    For X = 0 To 199 'reset/initialize the current windows array
    CurrentWindows(X).hWnd = 0
    CurrentWindows(X).TitleBarLen = 0
    CurrentWindows(X).TitleBarText = ""
    Next
    retval = EnumWindows(AddressOf EnumWindowsProc, 0) 'enumerate all open windows
    For X = 0 To WinNum - 1 'for each window that is currently open
    If InStr(1, CurrentWindows(X).TitleBarText, "Microsoft Internet Explorer", vbTextCompare) > 0 Then 'if this window is an IE window...
    KillCount = 0
    For Y = 0 To 49
    If ExistingIEWindows(Y) <> 0 Then 'if array value holds a valid handle
    If ExistingIEWindows(Y) = CurrentWindows(X).hWnd Then 'if the window currently being examined matches any of the existing IE windows
    KillCount = KillCount + 1 'increment
    End If
    End If
    Next
    If KillCount = 0 Then 'if an IE window that did not previously exist was found
    retval = PostMessage(CurrentWindows(X).hWnd, WM_CLOSE, ByVal CLng(0), ByVal CLng(0)) 'post the window close message to the newly created IE window's message queue
    End If
    End If
    Next
    Flash = Flash + 1 'increment the flash value
    If Flash = 5 Then 'make the status label flash every 0.5 seconds
    Flash = 0
    If Label1.Visible = True Then
    Label1.Visible = False
    Else
    Label1.Visible = True
    End If
    End If
    End Sub

    наверх

    Определение имени текущего домена и имени пользователя

    Вам понадобится элемент CommandButton

    Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
    Private Declare Function LookupAccountName Lib "advapi32.dll" Alias "LookupAccountNameA" (lpSystemName As String, ByVal lpAccountName As String, sid As Any, cbSid As Long, ByVal ReferencedDomainName As String, cbReferencedDomainName As Long, peUse As Long) As Long
    Public Function GetLogonDomainuser() As String
    Dim lResult As Long
    Dim I As Integer
    Dim bUserSid(255) As Byte
    Dim sUserName As String
    Dim sDomainName As String * 255
    Dim lDomainNameLength As Long
    Dim lSIDType As Long
    sUserName = GetLogonUser
    lResult = LookupAccountName(vbNullString, sUserName, bUserSid(0), 255, sDomainName, lDomainNameLength, lSIDType)
    sDomainName = Space(lDomainNameLength)
    lResult = LookupAccountName(vbNullString, sUserName, bUserSid(0), 255, sDomainName, lDomainNameLength, lSIDType)
    If (lResult = 0) Then
    MsgBox "Ошибка: невозможно найти имя домена для юзера: " & sUserName
    Exit Function
    End If
    sDomainName = Left$(sDomainName, InStr(sDomainName, Chr$(0)) - 1)
    GetLogonDomainuser = Trim(sDomainName)
    End Function
    Private Function GetLogonUser() As String
    Dim strTemp As String, strUserName As String
    strTemp = String(100, Chr$(0))
    strTemp = Left$(strTemp, InStr(strTemp, Chr$(0)) - 1)
    strUserName = String(100, Chr$(0))
    GetUserName strUserName, 100
    strUserName = Left$(strUserName, InStr(strUserName, Chr$(0)) - 1)
    GetLogonUser = strUserName
    End Function

    Public Function UserName() As String
    Dim cn As String
    Dim ls As Long
    Dim res As Long
    cn = String(1024, 0)
    ls = 1024
    res = GetUserName(cn, ls)
    If res <> 0 Then
    UserName = Mid(cn, 1, InStr(cn, Chr(0)) - 1)
    Else
    UserName = ""
    End If
    End Function

    Private Sub Command1_Click()
    MsgBox GetLogonDomainuser
    MsgBox GetLogonUser 'или MsgBox UserName
    End Sub

    наверх

    Подключение/отключение сетевого диска

    Прежде всего, добавьте дополнительный модуль, а также 2 элемента CommandButton.

    'КОД ФОРМЫ

    Private Sub Command1_Click()
    Call Module1.Connect("Oksana\c$", "K:", "defaultsharename", "garik")
    If (Module1.rc <> 0) And (Module1.rc <> 85) Then
    MsgBox Module1.ErrorMsg
    End If
    End Sub

    Private Sub Command2_Click()
    Call Module1.DisConnect("K:", True)
    If (Module1.rc <> 0) And (Module1.rc <> 85) Then
    MsgBox Module1.ErrorMsg
    End If
    End Sub

    'КОД МОДУЛЯ

    Option Explicit
    Public Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" (lpNetResource As NETRESOURCE, ByVal lpPassword As String, ByVal lpUsername As String, ByVal dwFlags As Long) As Long
    Public Declare Function WNetCancelConnection2 Lib "mpr.dll" Alias "WNetCancelConnection2A" (ByVal lpName As String, ByVal dwFlags As Long, ByVal fForce As Long) As Long

    Public ErrorNum As Long
    Public ErrorMsg As String
    Public rc As Long
    Public RemoteName As String

    Public Const ERROR_BAD_DEV_TYPE = 66&
    Public Const ERROR_ALREADY_ASSIGNED = 85&
    Public Const ERROR_ACCESS_DENIED = 5&
    Public Const ERROR_BAD_NET_NAME = 67&
    Public Const ERROR_BAD_PROFILE = 1206&
    Public Const ERROR_BAD_PROVIDER = 1204&
    Public Const ERROR_BUSY = 170&
    Public Const ERROR_CANCEL_VIOLATION = 173&
    Public Const ERROR_CANNOT_OPEN_PROFILE = 1205&
    Public Const ERROR_DEVICE_ALREADY_REMEMBERED = 1202&
    Public Const ERROR_EXTENDED_ERROR = 1208&
    Public Const ERROR_INVALID_PASSWORD = 86&
    Public Const ERROR_NO_NET_OR_BAD_PATH = 1203&
    Public Const ERROR_NO_NETWORK = 1222&
    Public Const ERROR_NO_CONNECTION = 8
    Public Const ERROR_NO_DISCONNECT = 9
    Public Const ERROR_DEVICE_IN_USE = 2404&
    Public Const ERROR_NOT_CONNECTED = 2250&
    Public Const ERROR_OPEN_FILES = 2401&
    Public Const ERROR_MORE_DATA = 234

    Public Const CONNECT_UPDATE_PROFILE = &H1
    Public Const RESOURCETYPE_DISK = &H1

    Public Type NETRESOURCE
    dwScope As Long
    dwType As Long
    dwDisplayType As Long
    dwUsage As Long
    lpLocalName As String
    lpRemoteName As String
    lpComment As String
    lpProvider As String
    End Type

    Public lpNetResourse As NETRESOURCE

    Public Sub Connect(ByVal HostName As String, ByVal RemoteName As String, ByVal Username As String, ByVal Password As String)
    Dim lpUsername As String
    Dim lpPassword As String
    On Error GoTo Err_Connect
    ErrorNum = 0
    ErrorMsg = ""
    lpNetResourse.dwType = RESOURCETYPE_DISK
    lpNetResourse.lpLocalName = RemoteName & Chr(0)
    'Drive Letter to use
    lpNetResourse.lpRemoteName = "\\" & HostName & Chr(0)
    'Network Path to share
    lpNetResourse.lpProvider = Chr(0)
    lpPassword = Password & Chr(0)
    'password on share pass "" if none
    lpUsername = Username & Chr(0)
    'username to connect as if applicable
    rc = WNetAddConnection2(lpNetResourse, lpPassword, lpUsername, CONNECT_UPDATE_PROFILE)
    If rc <> 0 Then GoTo Err_Connect
    Exit Sub
    Err_Connect:
    ErrorNum = rc
    ErrorMsg = WnetError(rc)
    End Sub

    Public Sub DisConnect(ByVal Name As String, ByVal ForceOff As Boolean)
    On Error GoTo Err_DisConnect
    ErrorNum = 0
    ErrorMsg = ""
    rc = WNetCancelConnection2(Name & Chr(0), CONNECT_UPDATE_PROFILE, ForceOff)
    If rc <> 0 Then GoTo Err_DisConnect
    Exit Sub
    Err_DisConnect:
    ErrorNum = rc
    ErrorMsg = WnetError(rc)
    End Sub

    Private Function WnetError(Errcode As Long) As String
    Select Case Errcode
    Case ERROR_BAD_DEV_TYPE
    WnetError = "Bad device."
    Case ERROR_ALREADY_ASSIGNED
    WnetError = "Already Assigned."
    Case ERROR_ACCESS_DENIED
    WnetError = "Access Denied."
    Case ERROR_BAD_NET_NAME
    WnetError = "Bad net name"
    Case ERROR_BAD_PROFILE
    WnetError = "Bad Profile"
    Case ERROR_BAD_PROVIDER
    WnetError = "Bad Provider"
    Case ERROR_BUSY
    WnetError = "Busy"
    Case ERROR_CANCEL_VIOLATION
    WnetError = "Cancel Violation"
    Case ERROR_CANNOT_OPEN_PROFILE
    WnetError = "Cannot Open Profile"
    Case ERROR_DEVICE_ALREADY_REMEMBERED
    WnetError = "Device already remembered"
    Case ERROR_EXTENDED_ERROR
    WnetError = "Device already remembered"
    Case ERROR_INVALID_PASSWORD
    WnetError = "Invalid Password"
    Case ERROR_NO_NET_OR_BAD_PATH
    WnetError = "Could not find the specified device"
    Case ERROR_NO_NETWORK
    WnetError = "No Network Present"
    Case ERROR_DEVICE_IN_USE
    WnetError = "Connection Currently in use "
    Case ERROR_NOT_CONNECTED
    WnetError = "No Connection Present"
    Case ERROR_OPEN_FILES
    WnetError = "Files open and the force parameter is false"
    Case ERROR_MORE_DATA
    WnetError = "Buffer to small to hold network name, make lpnLength bigger"
    Case Else:
    WnetError = "Unrecognized Error " + Str(Errcode) + "."
    End Select
    End Function

    наверх

    Определение имени или IP-адреса удаленного компьютера в сети

    Прежде всего, добавьте дополнительный модуль, а также 1 элемента CommandButton.

    'КОД ФОРМЫ

    Private Sub Command1_Click()
    'Вначале вы должны инициализировать winsock
    WinsockInit
    'Определение имени машины, зная ее IP-адрес
    MsgBox HostByAddress("192.168.1.1")
    MsgBox HostByAddress("192.168.1.2")
    'Определение IP-адреса машины, зная ее имя
    MsgBox HostByName("GARIK")
    MsgBox HostByName("OKSANA")
    'В конце работы вы должны использовать функцию WSACleanUp
    WSACleanUp
    End Sub

    'КОД МОДУЛЯ

    Option Explicit
    Public Const SOCKET_ERROR = -1
    Public Const AF_INET = 2
    Public Const PF_INET = AF_INET
    Public Const MAXGETHOSTSTRUCT = 1024
    Public Const SOCK_STREAM = 1
    Public Const MSG_PEEK = 2
    Private Type SockAddr
    sin_family As Integer
    sin_port As Integer
    sin_addr As String * 4
    sin_zero As String * 8
    End Type
    Private Type T_WSA
    wVersion As Integer
    wHighVersion As Integer
    szDescription(0 To 255) As Byte
    szSystemStatus(0 To 128) As Byte
    iMaxSockets As Integer
    iMaxUdpDg As Integer
    lpVendorInfo As Long
    End Type
    Dim WSAData As T_WSA
    Type Inet_Address
    Byte4 As String * 1
    Byte3 As String * 1
    Byte2 As String * 1
    Byte1 As String * 1
    End Type
    Public IPStruct As Inet_Address
    Public Type T_Host
    h_name As Long
    h_aliases As Long
    h_addrtype As Integer
    h_length As Integer
    h_addr_list As Long
    End Type

    Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (Dest As Any, Src As Any, ByVal cb&)
    Declare Function gethostbyaddr Lib "wsock32.dll" (addr As Long, ByVal addr_len As Long, ByVal addr_type As Long) As Long
    Declare Function inet_addr Lib "wsock32.dll" (ByVal addr As String) As Long
    Declare Function GetHostByName Lib "wsock32.dll" Alias "gethostbyname" (ByVal HostName As String) As Long
    Declare Function GetHostName Lib "wsock32.dll" Alias "gethostname" (ByVal HostName As String, HostLen As Long) As Long
    Declare Function WSAStartup Lib "wsock32.dll" (ByVal a As Long, b As T_WSA) As Long
    Declare Function WSACleanUp Lib "wsock32.dll" Alias "WSACleanup" () As Integer

    Function HostByName(sHost As String) As String
    Dim s As String
    Dim p As Long
    Dim Host As T_Host
    Dim ListAddress As Long
    Dim ListAddr As Long
    Dim Address As Long
    s = String(64, 0)
    sHost = sHost + Right(s, 64 - Len(sHost))
    p = GetHostByName(sHost)
    If p = SOCKET_ERROR Then
    Exit Function
    Else
    If p <> 0 Then
    CopyMemory Host.h_name, ByVal p, Len(Host)
    ListAddress = Host.h_addr_list
    CopyMemory ListAddr, ByVal ListAddress, 4
    CopyMemory Address, ByVal ListAddr, 4
    HostByName = InetAddrLongToString(Address)
    Else
    HostByName = "No DNS Entry"
    End If
    End If
    End Function

    Private Function InetAddrLongToString(Address As Long) As String
    CopyMemory IPStruct, Address, 4
    InetAddrLongToString = CStr(Asc(IPStruct.Byte4)) + "." + CStr(Asc(IPStruct.Byte3)) + "." + CStr(Asc(IPStruct.Byte2)) + "." + CStr(Asc(IPStruct.Byte1))
    End Function

    Function HostByAddress(ByVal sAddress As String) As String
    Dim lAddress As Long
    Dim p As Long
    Dim HostName As String
    Dim Host As T_Host
    lAddress = inet_addr(sAddress)
    p = gethostbyaddr(lAddress, 4, PF_INET)
    If p <> 0 Then
    CopyMemory Host, ByVal p, Len(Host)
    HostName = String(256, 0)
    CopyMemory ByVal HostName, ByVal Host.h_name, 256
    If HostName = "" Then HostByAddress = "Unable to Resolve Address"
    HostByAddress = Left(HostName, InStr(HostName, Chr(0)) - 1)
    Else
    HostByAddress = "No DNS Entry"
    End If
    End Function

    Public Sub WinsockInit()
    WSAStartup &H101, WSAData
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Мунгалов Андрей

    Ответ ожидается по этому адресу

    1.Подскажите пожалуйста как програмно создавать Базы данных .DBF формата 3 или 4.

    2.Есть файл отчета CRystalReports. как в него из кода засунуть к примеру строку текста. ( конкретно такая ситуация. у меня отчет формирует список цен, а вконце надо добавить строку сумма прописью.) как?

    Автор вопроса: pasha

    Ответ ожидается по этому адресу

    Где взять Visual Basic 7.0
    Очень нужен.

    Автор вопроса: Алексей

    Ответ ожидается по этому адресу

    А как можно программно закрыть любую другую программу, загруженную из-под Windows?

    Автор вопроса: Rusty Angles

    Ответ ожидается по этому адресу

    Хочу создать трэйнер для игрушки, но как заменять данные в памяти? как их извлекать от туда, и чтобы при одном процессе, не мешая другим, в общем то что делают все трэйнеры. и еще, чтобы записывать и извлекать данные в hex(16-ти) что указывать и вообще как делаеться.. может есть сэмплы?! или инфа по этой теме?

    Автор вопроса: tronos

    Ответ ожидается по этому адресу

    Как сменить кодировку текста,что-бы в Text-box иметь возможность выбора шрифта. Сейчас у меня выходит неискаженый текст(кирилица) в Text-box только со шрифтом Terminal.

    Автор вопроса: Andrei

    Ответ ожидается по этому адресу

    Знает кто нибудь, как можно програмно ограничить скорость соединения при закачке файла?

    Автор вопроса: sla_237

    Ответ ожидается по этому адресу

    1. Как считать скорость соединения модема с инетом в переменную?
    2. Как програмно позвонить в инет (т.е. код и напишите пожалуйста где там username и логин вставлять.)

    Автор вопроса: Rad

    Ответ ожидается по этому адресу

    Как можно можно сделать автоматический скроллинг в элементе Webbrowser ??

    Автор вопроса: Проскурин

    Ответ ожидается по этому адресу

    Всем привет! Как бы написать прогу, что бы она преобразовывала (распознавала тональности, длину звучания и ноту) mp3 или wav в текст из аккордов или нот и наоборот.

    Автор вопроса: P@Ssword

    Ответ ожидается по этому адресу

    Как и Win2000 определить, подключен ли компьютер к нитернету (черея модем)?

    Автор вопроса: sv

    Ответ ожидается по этому адресу

    1)Программа запускает Windows Media Player, как его програмно закрыть и как определить закончено или нет воспроизведение клипа?
    2)Что такое SDK?

    Автор вопроса: Вячеслав Ленчевский

    Ответ ожидается по этому адресу

    нужна помощь: как организовать вложенный N раз цикл, если N заранее неизвестно? (границы у циклов одинаковые)
    типа: for i(1)=1 to 10
    for i(2)=1 to 10
    .......................
    for i(N)=1 to 10
    i(0)=i(1)+i(2)+...+i(N)
    next i(n)
    ...............
    next i(2)
    next i(1)
    похоже тут необходима рекурсия? а как реализовать не соображу :-(

    Автор вопроса: Vlad

    Ответ ожидается по этому адресу

    Как прочитать ия программы свои письма непосредственно с сервера. Подскажите где найти практические советы на эту тему или исходник.

    Автор вопроса: Андрей

    Ответ ожидается по этому адресу

    1. Подскажите как в VB нажатием на кнопку открыть документ Microsoft vord, для добавления информации.

    2. Нужна консультация! Написал прогу по расчету кое каких данных, эти данные у меня записываются в файл C:\Мои документы\1.Doc: Внимание вопрос? Как мне найти этот файл на диске нажав на кнопку расположенную в моей программе, открыть его в формате Мicrosoft vord для добавления , корректировки данных или печати запустив Microsoft vord не открывая проводник.

    3. Подскажите как быть, пишу программу для тестирования эл. сварщиков, столкнулся с такой проблемой: 1. Какой код написать, чтоб на диске найти файл теста с вопросами и ответами, 2. вывести содержимое файла по необходимым TextBoxам, и чтоб программа сама перебирала вопросы и ответы по техт боксам при нажатии на кнопку дальше. Причем так чтоб этот файл можно было корректировать со временем.

    4.Люди подскажите! По сл. необходимости пишу тестовую программу. Какой код вписаь чтоб программа могла различать правильные и неправеильные ответы! 2. Каким образом выести текст вопроса в полном объеме в TextBox (при длинном вопросе он показывает только его часть), Причем и варианты ответов написаны в одном файле.

    Автор вопроса: LUX

    Ответ ожидается по этому адресу

    Нужна консультация, подскажите, как сделать мою форму поверх всех окон.

    Ответы:

    Вопрос:

    Как в VB6.0 сделать форму fsStayOnTop??

    Ответ:

    Автор ответа: Иван

    Для создания такого окна используется функция API SetWindowPos из библиотеки user32.dll. Декларируем в модуле следующую функцию и константы:

    Option Explicit
    Public Const HWND_TOPMOST = -1
    Public Const HWND_NOTOPMOST = -2
    Public Const SWP_NOMOVE = &H2
    Public Const SWP_NOSIZE = &H1
    Public Const SWP_NOACTIVATE = &H10
    Public Const SWP_SHOWWINDOW = &H40
    Public Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE
    Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

    В форму вписывается следующий код

    Option Explicit
    Private Sub Form_Load()
    Call SetWindowPos(Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS)
    End Sub

    Вопрос:

    Как в VB6.0 сделать форму fsStayOnTop??

    Ответ:

    Автор ответа: Ревягин_Алексей

    Добавь 2 CommandButton (под именем Command1 и Command2). Когда нажмешь первую кнопку, форма поверх всех

    Private Declare Function SetWindowPos Lib "user32" (ByVal h%, ByVal hb%, ByVal x%, ByVal Y%, ByVal cx%, ByVal cy%, ByVal F%) As Integer
    Const SWP_NOMOVE = 2
    Const SWP_NOSIZE = 1
    Const flags = SWP_NOMOVE Or SWP_NOSIZE
    Const HWND_TOPMOST = -1
    Const HWND_NOTOPMOST = -2

    Private Sub Command1_Click()
    res = SetWindowPos(Form1.hwnd, HWND_TOPMOST, 0, 0, 0, 0, flags) 'Форма on-top
    End Sub
    Private Sub Command2_Click()
    res = SetWindowPos(Form1.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, flags) 'Форма non-on-top
    End Sub

    Вопрос:

    Как в VB6.0 сделать форму fsStayOnTop??

    Ответ:

    Автор ответа: Иван

    Если я правильно понял, то в окне проекта(где отображаются файлы форм) добавте форму нажав правую клавишу мыши add Form и выберите форму StayOnTop!

    Вопрос:

    Как в VB6.0 сделать форму fsStayOnTop??

    Ответ:

    Автор ответа: SHatrykin Ivan

    Что означает fsStayOnTop? Если "поверх всех окон" то можно так:

    'Устанавливаем окно поверх всех остальных
    Public Sub SetFormPosition(frmHandl As Long, TopPosition As Boolean)
    If TopPosition Then
    SetWindowPos frmHandl, HWND_TOPMOST, 0, 0, 0, 0, _
    SWP_NOACTIVATE Or SWP_NOSIZE Or SWP_NOMOVE
    Else
    SetWindowPos frmHandl, HWND_NOTOPMOST, 0, 0, 0, 0, _
    SWP_NOSIZE Or SWP_NOMOVE
    End If
    End Sub

    Вызываем эту процедуру так:
    call SetFormPosition Form1, True

    Вопрос:

    У меня вопрос по Web Browser'у. Подскажите как в VB менять раямер текста в Web Browser как это делает Internet Explorer.

    Ответ:

    Автор ответа: Ревягин_Алексей

    Должен быть метод Font :
    например

    webbrowser.font=commondialog1.font

    Вопрос:

    Зачем нужно обьявлять Option Explicit ?
    Что бы не яабыть обьявить переменную ???

    Ответ:

    Автор ответа: pasha

    Наверно Option Explicit предназначен для программистов в прошлом программируемых на что то вроде Pascal, С, где необходимо объявлять каждую переменную перед использованием. А VB этим и отличается, что переменные объявлять практически вообще нет необходимости, хотя профессиональные программисты всегда ставят Option Explicit для объявления всех переменных тем самым создают эффективные программы. Вот и все.

    Вопрос:

    Зачем нужно обьявлять Option Explicit ?
    Что бы не яабыть обьявить переменную ???

    Ответ:

    Автор ответа: Rafis

    Что бы не было необьявленных переменных.

    Вопрос:

    Зачем нужно обьявлять Option Explicit ?
    Что бы не яабыть обьявить переменную ???

    Ответ:

    Автор ответа: Roman 'devil' Yuakovlev

    Повышение культуры программирования, возможность делания умного вида, борьба с вариантами и ошибками в набирании имен переменных... рекомендую настоятельно :)

    Вопрос:

    Зачем нужно обьявлять Option Explicit ?
    Что бы не яабыть обьявить переменную ???

    Ответ:

    Автор ответа: Александр

    Чтобы выявлялись ошибки.....

    Вопрос:

    Зачем нужно обьявлять Option Explicit ?
    Что бы не яабыть обьявить переменную ???

    Ответ:

    Автор ответа: SHatrykin Ivan

    И для этого тоже. Но основное предназначение этого оператора: исключение очепяток.
    Вот пример:

    Dim sLeft as String

    sLeft = sLeff & "и что будет?"

    Вопрос:

    Как послать строку в текстовое поле чужого окна?

    Ответ:

    Автор ответа: XAlex-sub

    Если курсор находится в нужном поле то можно воспользоваться функцией sendkeys("передаваемый текст") эта функция эмулирует нажатие клавиш на клаве в противном случае только через API и надо знать hwnd окна о обьекта

    Вопрос:

    Как послать строку в текстовое поле чужого окна?

    Ответ:

    Автор ответа: SHatrykin Ivan

    Все зависит от того, куда и как нужно "послать" текст. Если вам известен hWnd этого окна, то воспользуйтесь функцией SetWindowText в первом параметре функции укажите hWnd окна, а во втором строку текста, которую нужно там "напечатать". В этом случае весь старый текст содержащийся в этом окне "исчезнет" и появится новый.

    Вопрос:

    Может кто знает как вытянуть данные из таблицы ворд в таблицу экселя, подскажите плиз.

    Ответ:

    Автор ответа: Андрей

    Начиная с Office 2000 появляются вложенные таблицы, нужно учесть.

    Private Sub GetParagraps(ByVal objParagraps As Word.Paragraphs)
    On Error GoTo Check:
    Dim objParagraph As Word.Paragraph
    Dim blnTableComplete As Boolean
    Dim iParagraph As Long
    For iParagraph = 1 To objParagraps.Count
    Set objParagraph = objParagraps.Item(iParagraph)
    If objParagraph.Range.Tables.Count > 0 Then
    If blnTableComplete = False Then GetTable objParagraph.Range.Tables(1)
    blnTableComplete = True
    Else
    blnTableComplete = False
    End If
    Next
    Set objParagraph = Nothing
    Exit Sub
    Check:
    ...
    Resume Next
    End Sub

    Private Sub GetTable(ByVal tblCurrent As Word.Table)
    Dim CurrentRow As Word.Row
    Dim CurrentCell As Word.Cell
    Dim i As Long, j As Long
    On Error GoTo Check:

    For i = 1 To tblCurrent.Rows.Count
    Set CurrentRow = tblCurrent.Rows.Item(i)
    ....
    For j = 1 To CurrentRow.Cells.Count
    Set CurrentCell = CurrentRow.Cells.Item(j)
    ....
    Next
    Next

    Set CurrentRow = Nothing
    Set CurrentCell = Nothing
    Exit Sub
    Check:
    ...
    Resume Next
    End Sub

    Вопрос:

    Может кто знает как вытянуть данные из таблицы ворд в таблицу экселя, подскажите плиз.

    Ответ:

    Автор ответа: SHatrykin Ivan

    Напрямую вытащить данные, скорее всего, не удастся. Можно воспользоваться обходным путем:
    1. получить таблицу в программу - можно через буфер обмена в rtf формате
    2. программно анализировать каждую полученную строчку! и самому создать массив из данных таблицы
    3. перекинуть этот массив в Exel

    Вопрос:

    Кто знает как в VB
    1)запустить какой-нибудь файл?
    2)получить список всех файлов и папок в какой-нибудь определенной папке?

    Ответ:

    Автор ответа: Duke

    Точно могу ответить только на первый это пожно сделать командой Shell
    напр. shell "C:\Myproga.exe"

    Вопрос:

    Кто знает как в VB
    1)запустить какой-нибудь файл?
    2)получить список всех файлов и папок в какой-нибудь определенной папке?

    Ответ:

    Автор ответа: Иван

    1) Самый надежный способ открытия любого файла получается с применением API – функций.

    ' Декларация функции для запуска файла.

    Public Declare Function ShellExecute Lib "shell32.dll" Alias _
    "ShellExecuteA" (ByVal hwnd As Long, _
    ByVal lpOperation As String, _
    ByVal lpFile As String, _
    ByVal lpParameters As String, _
    ByVal lpDirectory As String, _
    ByVal nShowCmd As Long) As Long

    ' Декларация константы для максимизирования окна открываемого приложения.
    ' Для работы с другими константами смотрите Help по API.

    Public Const SW_SHOWMAXIMIZED = 3

    После этого нижеследующий код будет открывать файл test.xls находящийся в директории C:\My Documents\

    Call ShellExecute(0, "open", " C:\My Documents\test.xls","", "", SW_SHOWMAXIMIZED)

    Вопрос:

    Кто знает как в VB
    1)запустить какой-нибудь файл?
    2)получить список всех файлов и папок в какой-нибудь определенной папке?

    Ответ:

    Автор ответа: Иван

    Нет ничего проще:

    1. Функция Shell("path\name")-запускает исполняемую программу!
    2. Стандартный объект File помещаеш на форму, устанавливаешь свйство Path, если не надо чтобы объект был виден отключи видемось! File1.List(номер строки).text-имя файла
    Понятно? У меня подрукой нет VB, точнее напишу если попросиш!

    Вопрос:

    Кто знает как в VB
    1)запустить какой-нибудь файл?
    2)получить список всех файлов и папок в какой-нибудь определенной папке?

    Ответ:

    Автор ответа: Ревягин_Алексей

    есть такие функции как:
    shell(Path as string)
    ShellExecute
    и т. д.

    помести на форму объекты:
    Filelist
    dirlist
    drivelist
    и укажи для каждого из него параметр Default нажми F5.
    Эксперементируй.
    Вопрос:

    Кто знает как в VB
    1)запустить какой-нибудь файл?
    2)получить список всех файлов и папок в какой-нибудь определенной папке?

    Ответ:

    Автор ответа: Rafis

    1)Shell "Полный путь к программе",стиль окна
    2)Это можно сделать с помощью Dir-а
    например:
    Поставь на форму ListBox и напишите в нём следуещее:

    Private Sub Form_Load()
    ListBox1.Clear
    st = Dir("C:\*.*", vbDirectory)
    Do While Len(st)
    st = Dir
    ListBox1.AddItem st
    Loop
    End Sub

    Вопрос:

    Кто знает как в VB
    1)запустить какой-нибудь файл?
    2)получить список всех файлов и папок в какой-нибудь определенной папке?

    Ответ:

    Автор ответа: pasha

    1) Чтобы запустить любой файл используется команда Shell ("Путь к файлу", параметр).
    2) Ставишь FileListBox и DirListBox и в свойстве Path прописываешь путь.

    Вопрос:

    Кто знает как в VB
    1)запустить какой-нибудь файл?
    2)получить список всех файлов и папок в какой-нибудь определенной папке?

    Ответ:

    Автор ответа: Roman 'devil' Yuakovlev

    1) shell "notepad.exe"
    2) функция dir$, контролы dirlistbox и filelistbox

    Вопрос:

    Кто знает как в VB
    1)запустить какой-нибудь файл?
    2)получить список всех файлов и папок в какой-нибудь определенной папке?

    Ответ:

    Автор ответа: SHatrykin Ivan

    Для запуска чужой программы воспользуйтесь функцией Shell. Описание смотрите сами (можно на нашем сайте). А для поиска файлов в определенной папке Path создайте такой цикл:

    sFile = Dir(Path & "*.*")
    Do While sFile <> ""
    имя_файла = sFile
    sFile = Dir
    Loop

    Вопрос:

    Как в VBA сояданному програмно объекту наяначить реакцию на событие OnClick.

    Ответ:

    Автор ответа: Ревягин_Алексей

    Нужно создать массив элементов управления указать свойство index=0 и дальше копировать этот объект на форму а затем зайти в код и выбрать Объект_Clicl
    в результате:

    Private sub Объект_Click(Index as Integer)
    select case index
    case 0
    событие нажатия на 0-й объект
    case 1
    событие нажатия на 1-й объект
    case 2
    событие нажатия на 2-й объект
    .....
    case n
    событие нажатия на n-й объект
    end select
    end sub

    где n-это Объект.UBound

    Вопрос:

    Как гарантированно опознать компьютер? То есть: сер.номер мамы, сер.номер винта или что-нибудь в этом духе, без компонентов, желательно через API.

    Ответ:

    Автор ответа: SHatrykin Ivan

    Вопрос о серийном номере компьютера уже "обсуждался" в Библиотеке кодов. Смотрите раздел Информация о компьютере.

    Вопрос:

    Как можно в ресурсы засунуть WAV,AVI а потом их воспроизвести.

    Ответ:

    Автор ответа: Oleg Koren

    The following code is a resource script that can be compiled by using the 16-bit and 32-bit versions of Rc.exe.

    //////////////////////////////////////////////////////////////////////
    //////
    // Myres.rc - 16 & 32 bit script. This must be compiled into two
    file://.res files using the 16 & 32 bit versions of RC.
    ///////////////////////////////////////////////////////////////////////
    //////
    // Wave Resources - You must copy these files from your \Windows
    // directory to the directory where your .rc script resides.

    CHIMES WAVE DISCARDABLE "Chimes.wav"
    DING WAVE DISCARDABLE "Ding.wav"

    Steps to Create a Resource File Save the preceding code in Notepad as Myres.rc in the directory where Rc.exe exists on your hard disk.

    Copy Chimes.wav and Ding.wav from your Windows directory (\Windows\Media directory in Windows 95 and Windows 98 or \WinNT\Media directory in Windows NT and Windows 2000) to the same directory where you saved the Myres.rc file.

    At the command line, type "RC -r Myres.rc." If you want a 16-bit and 32- bit version of your resource file, then you will have to save two copies of your resource file as Myres32.rc and Myres16.rc, and compile each separately with the appropriate resource compiler.

    Steps to Run the Sample Application
    Create a new project and add a command button to Form1.

    Add the following code to Form1:

    '*******
    ' Form1.frm - Calls PlayWaveRes to play a wave resource file.
    '*******

    Sub Command1_Click()
    PlayWaveRes "Chimes"
    PlayWaveRes "Ding"
    End Sub
    Add your resource file to the project.

    Type the following code in a new code module:

    ******
    ' Baswave.bas - Plays a wave file from a resource using LoadResData.
    '*****

    Option Explicit
    #If Win32 Then
    Private Declare Function sndPlaySound Lib "winmm" Alias _
    "sndPlaySoundA" (lpszSoundName As Any, ByVal uFlags As Long) _
    As Long
    #Else
    Private Declare Function sndPlaySound Lib "MMSYSTEM" ( _
    lpszSoundName As Any, ByVal uFlags%) As Integer
    #End If

    '******
    ' Flag values for wFlags parameter.
    '******

    Public Const SND_SYNC = &H0 ' Play synchronously (default).
    'Public Const SND_ASYNC = &H1 ' Play asynchronously (see note below).
    Public Const SND_NODEFAULT = &H2 ' Do not use default sound.
    Public Const SND_MEMORY = &H4 ' lpszSoundName points to a memory file.
    Public Const SND_LOOP = &H8 ' Loop the sound until next sndPlaySound.
    Public Const SND_NOSTOP = &H10 ' Do not stop any currently playing sound.

    '******

    ' Plays a wave file from a resource.

    '******

    Public Sub PlayWaveRes(vntResourceID As Variant, Optional vntFlags)
    '-----------------------------------------------------------------
    ' WARNING: If you want to play sound files asynchronously in
    ' Win32, then you MUST change bytSound() from a local
    ' variable to a module-level or static variable. Doing
    ' this prevents your array from being destroyed before
    ' sndPlaySound is complete. If you fail to do this, you
    ' will pass an invalid memory pointer, which will cause
    ' a GPF in the Multimedia Control Interface (MCI).
    '-----------------------------------------------------------------
    Dim bytSound() As Byte ' Always store binary data in byte arrays!

    bytSound = LoadResData(vntResourceID, "WAVE")
    If IsMissing(vntFlags) Then
    vntFlags = SND_NODEFAULT Or SND_SYNC Or SND_MEMORY
    End If

    If (vntFlags And SND_MEMORY) = 0 Then
    vntFlags = vntFlags Or SND_MEMORY
    End If

    sndPlaySound bytSound(0), vntFlags
    End Sub

    REFERENCES
    For information on how to store any file type in a resource file and retrieve the file for use at run-time in Visual Basic versions 5.0 and 6.0, please see the following article in the Microsoft Knowledge Base:

    Q194409 SAMPLE: RESFILE.EXE Stores Any File Type in a Resource File
    Additional query words: WAVE LOADRESDATA RESOURCES RC BYTE SND_ASYNC kbdsd

    ---------------

    это пример из MSDN.
    я его не проверял.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 58.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый 58-ой выпуск.
    Читайте!

    Содержание выпуска
    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 18.05.2002 18:16 | Раздел: Статьи по VB | Автор: Ларин Александр

    Разработка нового языка программирования на Visual Basic - Разработаем новый язык программирования на Visual Basic’е. Назовём его RIPL.

    Дата: 18.05.2002 05:35 | Раздел: Примеры кода | Автор: JEDI

    UnMask - Простая программа для снятия "звездочек" с окон. Запускаете программку, затем жмёте Батон на форме и все запущенные в данный момент окна, содержащие пароли замаскированые Звёздочками, открываются вашему взору.

    Дата: 17.05.2002 05:45 | Раздел: ActiveX контролы | Автор: Alexander

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

    Дата: 16.05.2002 05:37 | Раздел: Примеры кода | Автор: JEDI

    InternetLogin - Программа находит все доступные соединения с Интернет на компьютере, определяет их названия, логин и пароль к ним. Естественно, если их пользователь уже использовал и вводил логин и пароль. В общем-то все простенько, но иногда полезно.

    Дата: 15.05.2002 15:41 | Раздел: Примеры кода | Автор: JEDI

    Compare - Как организовать сравнение атрибутов двух файлов? Вот пример, который умеет это делать, а значит если вы его изучите, то и сами научитесь. Сравнение идет по дате создания, по имени, по расширению и по размеру. В общем-то этот пример скорее всего подойдет как иллюстрация работы с файлами.

    Дата: 14.05.2002 05:42 | Раздел: ActiveX контролы | Автор: Roman Mack

    OrderDED - Данная утилита предназначена для изменения порядка следования команд в дизайнере Data Environment используемом в VB6. Вот что пишет автор: "Написать данную утилиту меня побудило одно неудобство при работе в Data Environment Desinger (DED). Все дело в том, что при вставке новых команд, происходит добавление в дерево объектов в порядке ввода. Но не всегда можно разработать и ввести команды в нужном порядке."

    Дата: 14.05.2002 05:39 | Раздел: Примеры кода | Автор: Евгений

    ScanInternet - Сканер портов компьютера и пример определения готовности этих портов. Весьма полезный пример для работы с портами компьютера. Колтчество портов неограничено.

    Дата: 13.05.2002 05:50 | Раздел: ActiveX контролы | Автор: VBNet

    VBNetForumFull - Программа для просмотра архива форума. Обновление программы проводится один раз в месяц автоматически через Интернет. Обновления имеют размер около 150 кБ и включают все сообщения форума за прошедший месяц. Small версия программы не включает базы данных форума и вам придется выполнить обновление программы перед ее использованием. Full версия содержит базы данных за январь, февраль, март и апрель.

    Дата: 13.05.2002 05:47 | Раздел: ActiveX контролы | Автор: VBNet

    VBNetForumSmall - Программа для просмотра архива форума. Обновление программы проводится один раз в месяц автоматически через Интернет. Обновления имеют размер около 150 кБ и включают все сообщения форума за прошедший месяц. Small версия программы не включает базы данных форума и вам придется выполнить обновление программы перед ее использованием. Full версия содержит базы данных за январь, февраль, март и апрель.

    Последние 20 тем форума на VBNet.Ru:

    23:38 / 18 май. ПОМОГИТЕ!!!! (про остановку работы кнопки) | Ответов: 0
    18:11 / 18 май. Для JEDI и прочих озабоченных (о проге форума) | Ответов: 0
    14:20 / 18 май. как прописать программу в автозагрузку реестра | Ответов: 1
    14:00 / 18 май. CoolBar | Ответов: 0
    13:49 / 18 май. PaintPicture... | Ответов: 1
    13:41 / 18 май. Переносимость кода VBA в Excel... | Ответов: 1
    13:39 / 18 май. Загрузка anigif-файлы | Ответов: 0
    17:13 / 17 май. Просьба | Ответов: 1
    14:50 / 17 май. Люди кто ???? | Ответов: 2
    11:50 / 17 май. HELP Me with Active X! | Ответов: 2
    10:14 / 17 май. HELP!!! MAPI :( | Ответов: 0
    06:53 / 17 май. Compiler | Ответов: 2
    18:01 / 16 май. net send | Ответов: 1
    16:58 / 16 май. VB.NET | Ответов: 1
    15:26 / 16 май. Блокировка сочетаний клавиш Ctrl+Alt+Del и Alt+Tab | Ответов: 2
    14:45 / 16 май. Контрол в меню | Ответов: 1
    13:44 / 16 май. Совет дня ! | Ответов: 1
    12:26 / 16 май. Как определить ПРОГРАММНО CLSID ActiveX-а? | Ответов: 0
    11:49 / 16 май. Объектная модель Excel... | Ответов: 2
    08:41 / 16 май. FrontPage2002 | Ответов: 1

    Последние поступления в Библиотеку кодов:

    Нету.

    наверх

    Новости сайта VBMania

    • 15.04 - В связи с резким увеличением числа вопросов, поступающих на e-mail администрации сайта, было решено не дожидаться открытия форума, и начать отвечать на вопросы прямо на главной странице. Обсуждению последней новости ответы на вопросы не помешают. Вашего совета ждут, на ваш вопрос ответят.
    • 25.01 - Сегодня открылся новый раздел, в котором вы можете найти ссылки на целую кучу книг по тематике VB и около него.
    • 22.01 - 22 января вышел второй номер он-лайн журнала о Visual Basic 'VB Мания'. В нем можно почитать авторские статьи в уже устоявшихся разделах: Технологии, Система, Графика, Профессия, Человечество и Юмор. Так же не обошлось без новшеств: появился новый раздел dotNET и особенно рецензии ActiveX-компонентов. Обязательно заходите.
    • 17.12 - В связи с тем что форум не горел желаением вести себя так, как должен обычный, порядочный форум, мы его прикрыли для проведения разъяснительных мероприятий. Надеемся, что они не затянутся и форум образумится.
    • 06.12 - С сегодняшнего дня все желающие могут добавлять свои новости и статьи в наши архивы.
      Да здраствует открытость!
    • 27.11 - Наконец-то, после долгих дней и бессонных ночей это свершилось! Сайт объявляется открытым! Непременно прочитайте первый номер нашего журнала. Оцените наши дополнительные проекты. И конечно мы ждем ваших откликов в гостевой книге и по почте.
    • 01.12 - Произошло несколько косметических улучшений, касающихся исключительно удобства работы с сайтом. Во-первых, можно видеть количество записей обсуждения новостей на главной странице; а во-вторых чуточку подправились директории.
      Оценяйте!

    наверх

    Новости сайта Азбука VB

    • 1 мая 2001 года
      Представление всех компрьютеров в сети (сетевое окружение). Показывается, как можно представить все компрьютеры в сети и сетевое окружение. Показывает все сервера, совместно используемые ресурсы и принтеры в данной сети. Используются Api-функции WNetOpenEnum, WNetEnumResource и WNetCloseEnum.
      Пример смены `Региональных Установок` с помощью Sendkeys, без применения API функций (Win95/98). Показывается, как можно произвести смену Региональных Установок с помощью Sendkeys, без применения API функций (Win95/98)
      Пример отправки сообщений в локальной сети - NT/Win2000. Показывается, как можно отправлять сообщения на компьютеры находящиеся в локальной сети. Используются API-функции NetMessageBufferSend, GetUserName, GetComputerName.
      Отправка писем с Attach и без него на основе MAPI. Отправка писем с Attach и без него на основе MAPI. Используется Microsoft MAPI Controls 6.0
      Kак в VBA сделать чтобы картинка, либо другое окно появлялось после запуска макроса и через некоторое время сама закрывалась. Показывается, как в VBA сделать чтобы картинка, либо другое окно появлялось после запуска макроса и через некоторое время сама закрывалась.
      Полоска подчеркивающая меню - 3 (динамика). Дается совет, как сделать динамическую полоску подчеркивающую меню.

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Юлия

    Ответ ожидается по этому адресу

    Уважаемые мужчины, подскажите, пожалуйста, что означает "не удается инициализировать среду Visual Basic" и как с этим бороться, т.к. работа стоит, а я ничего не могу сделать.

    Автор вопроса: DedMorozzz

    Ответ ожидается по этому адресу

    Как выделить другим цветом строку из списка Report View?

    Автор вопроса: Alzh

    Ответ ожидается по этому адресу

    Как в Worde или Excele прочитать DocumentProperty (BuiltInProperty), для документа, не открывая его ? Например, Author или Comments.

    Автор вопроса: sin

    Ответ ожидается по этому адресу

    Как в VB при нажатии кнопки с рисунком изменялся ее рисунок н другой?

    Автор вопроса: Андрей

    Ответ ожидается по этому адресу

    Как получить список свойств (Properties), доступных элементу определенного класса (напр. TextBox)? Для каждого свойства также надо узнать тип значения (integer, string, ...), перечисление или диапазон доступных значений, доступность/недоступность изменения в Run-Time/Design-Time и т.д. Информация об этом должна храниться в ocx-файле (по крайней мере о нестандартных свойствах, а стандартные можно зашить), так что думаю что будет достаточно даже информации о том, где найти описание структуры осх-файла.

    Автор вопроса: Вано

    Ответ ожидается по этому адресу

    Как соядать xxx.dll (ActiveX), чтобы она считала корни квадратного уравнения и потом соядать xxx.exe файл для обращения к этой xxx.dll и ввести только A,B,C и все... В MsgBox'е будет высвечиваться X1 и X2. Заранее спасибо...

    Автор вопроса: Vadim

    Ответ ожидается по этому адресу

    Я с помощью функции SetWindowRgn устанавливаю регион. Но вот когда я его начинаю перемещать, то он остается на месте а перетаскивается только рамка. ВОПРОС: какие параметры поставить, или может есть специальная функция для перемещения региона???

    Автор вопроса: Алексей

    Ответ ожидается по этому адресу

    Подскажите как средствами Visual Basic 6.0 разбить файл по 1,44Mb, а затем скопировать на дискету.

    Автор вопроса: ALEX

    Ответ ожидается по этому адресу

    А как сделать переяагруяку или выключение компьютера программно (у меня Visual Basic 6.0)?

    Автор вопроса: Серж

    Ответ ожидается по этому адресу

    Подскажите как органияовать пауяу, менее 10мс. API-функция Sleep мне не подходит, так как имеет дискретность 10мс (в Win2000). Т.е. с ее помощью можно соядать пауяы 0, 10, 20, 30 мс и т.д., а мне надо дискретност хотя бы в 1мс.

    Автор вопроса: Rad

    Ответ ожидается по этому адресу

    Как в элементе управления Webbrowser органияовать функцию автоскроллинга

    Автор вопроса: Oleg_T

    Ответ ожидается по этому адресу

    Подскажите кто янает, как данные, воявращаемые яапросом вставить в MSFlexGrid? Для доступа испольяую DAO.

    Автор вопроса: lynx

    Ответ ожидается по этому адресу

    Поставил прогарамму Crimson Help/Написал свой справочник, и казалось все харашо, но стал вопрос как в меню Справка->Версия вписать свои данные. <Бо нада сдавать написанный справочник в универ, а там автор не тот...>

    Автор вопроса: Ted

    Ответ ожидается по этому адресу

    Как разбить ListBox или ListView на несколько колонок и заполнять колонки раздельно и независимо? Другими словами нужно отображение как в таблице, но с использованием ListBox или ListView. Подскажите или дайте ссылку где можно посмотреть.

    Автор вопроса: Alex

    Ответ ожидается по этому адресу

    Подскажите пожалуйста, где можно вяять полное описание к API-функции "SystemParametersInfo", примеры работы с ней? Буду рад любой информации!

    Автор вопроса: Vladimir

    Ответ ожидается по этому адресу

    Как открыть конкретный файл в Екселе их VB6. Иявлечьданные-ия столбца, обработатьи вернуть на место.

    Ответы:

    Вопрос:

    1.Подскажите пожалуйста как програмно создавать Базы данных .DBF формата 3 или 4.

    2.Есть файл отчета CRystalReports. как в него из кода засунуть к примеру строку текста. ( конкретно такая ситуация. у меня отчет формирует список цен, а вконце надо добавить строку сумма прописью.) как?

    Ответ:

    Автор ответа: Rutshtein Alex

    'Вот как создать DBF-файл. Просто вызовите процедуру CreateDBF и в качестве первого параметра укажите имя файла, а в качестве второго параметра имя, длину и тип полей, например:
    CreateDBF("C:\Temp\base.dbf", "NAME-C-20|NUM-N-5|DATE-D|FLAG-L|MEMO-M|"
    В этом примере будет создан DBF-файл с полями: NAME, NUM, DATE, FLAG и MEMO. Тип C - string, N - integer, D - date, L - boolean, M - memo. Т.е. формат такой:
    ИМЯ_ПОЛЯ-ТИП_ПОЛЯ-ДЛИНА_ПОЛЯ.

    Option Explicit

    Public Sub CreateDBF(FileName As String, Fields As String)

    Dim FileNum As Integer
    Dim FieldName As String
    Dim FieldPos As Integer
    Dim FieldsCount As Integer
    Dim Field As String
    Dim Sym As String * 1
    Dim Pos As Long
    Dim i As Integer
    Dim B As Byte
    Dim S As String
    Dim L As Integer

    FileNum = FreeFile
    Open FileName For Output As FileNum
    Close #FileNum
    FileNum = FreeFile
    Open FileName For Binary As FileNum
    L = 0
    Do While True
    L = InStr(L + 1, Fields, "|")
    If L = 0 Then Exit Do
    FieldsCount = FieldsCount + 1
    Loop
    If Right(Fields, 1) <> "|" Then Fields = Fields + "|"
    If FieldsCount > 255 Then FieldsCount = 255
    S = String((B + 1) * 32, Chr(0))
    Put #FileNum, 1, S
    FieldPos = 1
    L = 0
    For i = 1 To FieldsCount
    Pos = i * 32 + 1
    Fields = Mid(Fields, L + 1)
    L = InStr(1, Fields, "|")
    S = Left(Fields, L - 1)
    B = InStr(1, S, "-")
    If B = 0 Then Exit For
    FieldName = Left(S, B - 1)
    Sym = UCase(Mid(S, B + 1, 1))
    Select Case Sym
    Case "C", "N"
    B = InStr(B + 1, S, "-")
    B = Val(Mid(Fields, B + 1))
    If B = 0 Then Exit For
    Case "D"
    B = 8
    Case "L"
    B = 1
    Case "M"
    B = 10
    Case Else
    Exit For
    End Select
    Put #FileNum, Pos, FieldName
    Put #FileNum, Pos + 11, Sym
    Put #FileNum, , FieldPos
    Put #FileNum, Pos + 16, B
    FieldPos = FieldPos + B
    Next
    If i < FieldsCount + 1 Then
    MsgBox "I?eia?u caaaiey iiey:" + Chr(13) + Chr(13) + _
    " NAME-C-20|" + Chr(13) + _
    " NUM-N-5|" + Chr(13) + _
    " DATE-D|" + Chr(13) + _
    " FLAG-L|" + Chr(13) + _
    " MEMO-M|", _
    vbExclamation, "Ioeaea i?e caaaiee iiey" + Str(i)
    Exit Sub
    End If
    Put #FileNum, 11, FieldPos
    B = 3
    Put #FileNum, 1, B
    B = Year(Now) Mod 100
    Put #FileNum, , B
    B = Month(Now)
    Put #FileNum, , B
    B = Day(Now)
    Put #FileNum, , B
    L = (FieldsCount + 1) * 32 + 1
    Put #FileNum, 9, L
    B = 13
    Put #FileNum, L, B
    Close #FileNum

    End Sub

    Вопрос:

    Как сменить кодировку текста,что-бы в Text-box иметь возможность выбора шрифта. Сейчас у меня выходит неискаженый текст(кирилица) в Text-box только со шрифтом Terminal.

    Ответ:

    Автор ответа: SHatrykin Ivan

    Нужно использовать свойство Charset у объекта Font. Т.е. Text1.Font.Charset = 204 или другой номер кодировки.

    Вопрос:

    Знает кто нибудь, как можно програмно ограничить скорость соединения при закачке файла?

    Ответ:

    Автор ответа: SHatrykin Ivan

    Смотря чем закачивать файл. Например если с помощью Microsoft Internet Transfer Control, то можно сделать так:

    Private Sub Inet1_StateChanged(ByVal State As Integer)
    Select Case State
    'здесь можно обрабатывать другие события
    Case icResponseCompleted '12
    'открываем файл для записи принимаемых данных
    intFile = FreeFile
    Open "test.txt" For Binary Access Write As #intFile
    'определяем время старта
    lCountTimeStart = timeGetTime
    'принимаем первую порцию данных
    vtData = Inet1.GetChunk(1024, icByteArray)
    Do While LenB(CStr(vtData)) > 0
    Put #intFile, , vtData
    'следующая порция данных
    vtData = Inet1.GetChunk(1024, icByteArray)
    'вот тут можно проверять сколько сливаем в секунду
    lCountData = Seek(1) 'уже слили
    lCountTime = (timeGetTime - lCountTimeStart) / 1000 'прошло секунд
    lSpeed = lCountData / lCountTime 'байт в секунду
    'теперь нужно вычислить паузу в зависимости от нужной скорости
    lPause = 'как? думайте сами - текущая скорость есть, нужная скорость тоже
    'держим паузу
    Sleep lPause
    Loop
    Put #intFile, , vtData
    Close #intFile
    End Select
    End Sub

    Вопрос:

    Как и Win2000 определить, подключен ли компьютер к нитернету (черея модем)?

    Ответ:

    Автор ответа: Sergey

    Для этого есть ф-ция InternetGetConnectionState. А вот сам пример (кстати он работает не только в Win2000, но и в любой системе где установлен IE 4.0):

    Private Declare Function InternetGetConnectedState Lib "wininet.dll" (lpdwFlags As Long, ByVal dwReserved As Long) As Long

    Private Sub Form_Load()
    Dim lResult As Long

    'Если 1 то соединение есть, если 0 - то нет
    lResult = InternetGetConnectedState(0, 0)
    End Sub

    Вопрос:

    Как прочитать ия программы свои письма непосредственно с сервера. Подскажите где найти практические советы на эту тему или исходник.

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Вопрос в том, каким протоколом ты собираешься ходить на сервер. Чаше всего (по крайней мере в моей практике) это POP3 Описание протокола приводить не буду - его полно в Интернете. Если нужен исходник на Бэйсике, напиши лично, вышлю. Можно также качать почту и при помощи MAPI Controls, но это немного не по твоему вопросу :)

    Вопрос:

    1. Подскажите как в VB нажатием на кнопку открыть документ Microsoft vord, для добавления информации.

    2. Нужна консультация! Написал прогу по расчету кое каких данных, эти данные у меня записываются в файл C:\Мои документы\1.Doc: Внимание вопрос? Как мне найти этот файл на диске нажав на кнопку расположенную в моей программе, открыть его в формате Мicrosoft vord для добавления , корректировки данных или печати запустив Microsoft vord не открывая проводник.

    3. Подскажите как быть, пишу программу для тестирования эл. сварщиков, столкнулся с такой проблемой: 1. Какой код написать, чтоб на диске найти файл теста с вопросами и ответами, 2. вывести содержимое файла по необходимым TextBoxам, и чтоб программа сама перебирала вопросы и ответы по техт боксам при нажатии на кнопку дальше. Причем так чтоб этот файл можно было корректировать со временем.

    4.Люди подскажите! По сл. необходимости пишу тестовую программу. Какой код вписаь чтоб программа могла различать правильные и неправеильные ответы! 2. Каким образом выести текст вопроса в полном объеме в TextBox (при длинном вопросе он показывает только его часть), Причем и варианты ответов написаны в одном файле.

    Ответ:

    Автор ответа: Kirill

    1. Предполагается, что на форме есть кнопка cmdOpenWithWinword и в проекте есть ссылка на библиотеку Microsoft Word (можно и без нее, тогда объявление переменной немного изменится и работать будет чуть медленнее /как утверждает фирма MS/)
    Private Sub cmdOpenWithWinword()
    Dim wdApp As Word.Application ' для управления Word'ом
    ' проверяем есть ли уже запущенный Word
    On Error Resume Next
    Set wdApp = GetObject(, "Word.Application")
    If Err.Number <> 0 Then
    ' если произошла ошибка, значит запущенного экземпляра нет
    ' запускаем Word сами
    Set wdApp = New Word.Application
    End If
    On Error GoTo 0
    ' открываем документ
    wdApp.Documents.Open <имя_файла>
    ' на всякий пожарный делаем окно Word видимым
    ' и разворачиваем его на весь экран
    wdApp.Visible = True
    wdApp.WindowState = 1
    End Sub

    2. Я так понял тебе нужно чтоб вылезало окно выбора файла чтоб файл можно было найти ручками. Для этого удобнее всего воспользоваться контролом Microsoft Common Dialog Control (на всякий случай как его добавить в проект: жмешь правую кнопку мыши на панели с элементами управления, из контекстного меню выбираешь "Components...", находишь в списке название контрола и ставишь рядом с ним галочку. Если в списке его нет /что почти невозможно/ файл контрола -- c:\windows\system\comdlg32.ocx -- жмешь в окне со списком доступных контролов кнопку "Browse..." и находишь этот файл). Вобщем добавляешь контрол на форму, пишешь ему в Name cdcBrowse, добавляешь на форму кнопку cmdBrowse и в событии Click этой кнопки пишешь:

    Private Sub cmdBrowse_Click()
    cdcBrowse.Filter = "Word Document (*.doc)|*.doc|All Files (*.*)|*.*"
    cdcBrowse.FileName = ""
    cdcBrowse.ShowOpen
    If cdcBrowse.FileName <> "" Then
    ' выбран файл
    ' код для открытия файла в п.1
    End If
    End Sub

    3. Здесь я считаю удобнее использовать базу данных и свойства контролов DataSource и DataField. Подробнее писать слишком долго...

    4. Смотря как реализуется ответ на вопрос. Чтоб полностью поместить вопрос в TextBox нужно ему поставить в свойство MultiLine True и сделать этот TextBox побольше размерами :)

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 59.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.
Новости сайта IgorykSoft и советы по программированию

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Ураааа!!!!! Наконец-то каникулы!!!
    Читайте!

    Содержание выпуска
    • Книги

    • Скрыть/показать иконки рабочего стола
    • Как сменить рисунок рабочего стола
    • Включен ли активный рабочий стол
    • Разложить все иконки на рабочем столе по порядку (один за другим)
    • Изменение внешнего вида кнопки ПУСК
    • Заблокировать кнопку ПУСК

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Скрыть/показать иконки рабочего стола

    Добавьте на форму 2 CommandButton. Первая кнопка спрячет ярлыки с рабочего стола, вторая - покажет.

    'ВАРИАНТ 1
    Private Declare Function ShowWindow& Lib "user32" (ByVal hWnd&, ByVal nCmdShow&)
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Const SW_HIDE = 0
    Const SW_NORMAL = 1

    Private Sub Command1_Click()
    Dim hHandle As Long
    hHandle = FindWindow("progman", vbNullString)
    Call ShowWindow(hHandle, SW_HIDE)
    End Sub

    Private Sub Command2_Click()
    Dim hHandle As Long
    hHandle = FindWindow("progman", vbNullString)
    Call ShowWindow(hHandle, SW_NORMAL)
    End Sub

    'ВАРИАНТ 2
    Private Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private 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

    Private Sub Command1_Click()
    Desktop False
    End Sub

    Private Sub Command2_Click()
    Desktop True
    End Sub

    наверх

    Как сменить рисунок рабочего стола

    Добавьте на форму 2 CommandButton. Первая кнопка помещает на рабочий стол любой ваш рисунок, вторая - убирает этот рисунок.

    Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As String, ByVal fuWinIni As Long) As Long
    Const SPI_SETDESKWALLPAPER = 20

    Private Sub Command1_Click()
    SystemParametersInfo SPI_SETDESKWALLPAPER, 0, "D:\Basic\tmpProj\Load.bmp", True
    'Заменить путь D:\Basic\tmpProj\Load.bmp на нужный вам файл рисунка в формате bmp
    End Sub

    Private Sub Command2_Click()
    SystemParametersInfo SPI_SETDESKWALLPAPER, 0, 0, False
    End Sub

    наверх

    Включен ли активный рабочий стол

    Как вы знаете, существует возможность загружать web-странички непосредственно на Рабочий Стол. Данный пример позволяет определить, включен или выключен режим рабочего стола Active Desktope

    Private Declare Function FindWindow& Lib "user32" Alias "FindWindowA" (ByVal lpClassName$, ByVal lpWindowName$)
    Private Declare Function FindWindowEx& Lib "user32" Alias "FindWindowExA" (ByVal hWndParent&, ByVal hWndChildAfter&, ByVal lpClassName$, ByVal lpWindowName$)

    Public Function IE4ActiveDesktop() As Boolean
    Dim Templong&
    Templong = FindWindow("Progman", vbNullString)
    Templong = FindWindowEx(Templong, 0&, "SHELLDLL_DefView", vbNullString)
    Templong = FindWindowEx(Templong, 0&, "Internet Explorer_Server", vbNullString)
    If Templong > 0 Then
    IE4ActiveDesktop = True
    Else
    IE4ActiveDesktop = False
    End If
    End Function

    Private Sub Command1_Click()
    MsgBox IE4ActiveDesktop
    End Sub

    наверх

    Разложить все иконки на рабочем столе по порядку (один за другим)

    Расположите на форме элемент CommandButton

    Private Const LVA_ALIGNLEFT = &H1
    Private Const LVM_ARRANGE = &H1016
    Private Const GW_CHILD = 5
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function GetWindow Lib "user32" (ByVal hWnd As Long, ByVal wCmd As Long) As Long
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
    Public Function ArrangeDesktopIcons() As Boolean
    Dim hWnd As Long
    Dim RetVal As Long
    'найти хэндл рабочего стола
    hWnd = FindWindow("Progman", vbNullString)
    hWnd = GetWindow(hWnd, GW_CHILD)
    hWnd = GetWindow(hWnd, GW_CHILD)
    'выстроить иконки
    RetVal = SendMessage(hWnd, LVM_ARRANGE, LVA_ALIGNLEFT, 0)
    ArrangeDesktopIcons = RetVal > 0
    End Function
    Private Sub Command1_Click()
    ArrangeDesktopIcons
    End Sub

    наверх

    Изменение внешнего вида кнопки ПУСК

    Для изменения внешнего вида кнопки ПУСК вам нужна любая картинка размером 55 пикс * 22 пикс. под именем temp.bmp

    Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
    End Type

    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
    Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long
    Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
    Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
    Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
    Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
    Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
    Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long

    Const SRCCOPY = &HCC0020

    Dim hwndTB As Long ' handle taskbar'а
    Dim hWndSB As Long ' handle окна кнопки ПУСК
    Dim hDcSB As Long ' handle содержимого кнопки ПУСК
    Dim mRect As RECT ' координаты кнопки ПУСК
    Dim hDcTmp As Long ' handle новой картинки
    Dim hBmpTmp As Long ' временная картинка
    Dim hBmpTmp2 As Long ' временная картинка
    Dim nWidth As Long ' ширина кнопки ПУСК
    Dim nHeight As Long ' высота кнопки ПУСК
    Dim sPath As String ' путь к картинке

    Private Sub Form_Load()
    ' получить handle taskbar и кнопки ПУСК
    hwndTB = FindWindow("Shell_TrayWnd", "")
    hWndSB = FindWindowEx(hwndTB, 0, "button", vbNullString)
    ' получить dc кнопки ПУСК
    hDcSB = GetWindowDC(hWndSB)
    ' получить координаты кнопки ПУСК
    Call GetWindowRect(hWndSB, mRect)
    ' ширина и высота
    nWidth = mRect.Right - mRect.Left
    nHeight = mRect.Bottom - mRect.Top
    hDcTmp = CreateCompatibleDC(hDcSB)
    hBmpTmp = CreateCompatibleBitmap(hDcTmp, nWidth, nHeight)
    ' установить путь для загрузки картинки
    sPath = App.Path & "\temp.bmp"
    hBmpTmp2 = SelectObject(hDcTmp, LoadPicture(sPath))
    End Sub

    Private Sub tmrPaint_Timer()
    ' рисовать кнопку ПУСК
    Call BitBlt(hDcSB, 0, 0, nWidth, nHeight, hDcTmp, 0, 0, SRCCOPY)
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    ' очистить кнопку ПУСК
    hBmpTmp = SelectObject(hDcTmp, hBmpTmp2)
    DeleteObject hBmpTmp
    DeleteDC hDcTmp
    End Sub

    наверх

    Заблокировать кнопку ПУСК

    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
    Private Declare Function EnableWindow Lib "user32" (ByVal hwnd As Long, ByVal fEnable As Long) As Long

    Public Sub EnableStartButton(Optional Enabled As Boolean = True)
    'this will enable/disable any window with a little modifaction
    Dim lHwnd As Long
    'найти hWnd
    lHwnd& = FindWindowEx(FindWindow("Shell_TrayWnd", ""), 0&, "Button", vbNullString)
    'call the enablewindow api and do the what needs to be done
    Call EnableWindow(lHwnd&, CLng(Enabled))
    End Sub

    Private Sub Form_Load()
    EnableStartButton True 'Кнопка ПУСК не заблокирована
    'EnableStartButton False 'Кнопка ПУСК заблокирована
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Tolic

    Ответ ожидается по этому адресу

    Есть Винда 3.1.
    1) Как програмно узнать содержимое групп в диспетчере программ? (я имею ввиду как узнать какие ярлыки в группе).

    2) Можно как то програмно поменять строку заголовка любого открытого окна?

    Автор вопроса: Duke

    Ответ ожидается по этому адресу

    1.Я янаю что в 16 и 8 ричную систему надо воспольяоватся операторами HEX и OCT, а что если мне надо перевести обратно не 255 в FF, а FF в 255.

    2.Где вяять пример по преводу ия DOS в WIN кодировку(ПРИМЕР !!!), или детальное пояснение.

    Автор вопроса: Rusty Angles

    Ответ ожидается по этому адресу

    Как извлекать и записывать данные в адресса памяти? (Для VB6)

    Автор вопроса: А.М.

    Ответ ожидается по этому адресу

    Как на VB6 получить ия "региональных установок" формат даты и денежной единицы?

    Автор вопроса: Алексей

    Ответ ожидается по этому адресу

    Как можно программу сделать невидимой для Ctrl+Alt+Delete

    Автор вопроса: michael

    Ответ ожидается по этому адресу

    Как лучше выполнять процедуру каждые 2 сек.? Я пользуюсь таймером, но переодически получаю "Msgsrv32 not responding". Может это не связано...

    Автор вопроса: Игорь

    Ответ ожидается по этому адресу

    Как в VB6 зделать ссылку на файл (любой), чтобы его открыть (запустить)?

    p.s. Хочу зделать Авторан для CD!

    Автор вопроса: shadow

    Ответ ожидается по этому адресу

    я пытаюсь делать чат вроде Quick Chat, подскажите можно ли обойтись бея сокета, сделать вс? на апи? Может у кого есть исходники посмитреть? Это беясерверный чат.

    Автор вопроса: P@Ssword

    Ответ ожидается по этому адресу

    Сидит моя прога в трее. Когда кликают правой кнопкой мыши, открывается менюшка,кликнув в которой, юяверь открывает формочку (frm.Show). А когда юяверь делает двойной клик по иконке в трее, я опять делаю frm.Show, форма появляется, но она, по-моему, не активна, т.к. на первый клик форма не реагирует, но если курсор (каретка) стоИт на текстбоксе, то с клавиатуры можно вводить сраяу. Что ая есьм и как енто побороть?

    Автор вопроса: Slater

    Ответ ожидается по этому адресу

    Скажите, пожалуйста, как написать программу, которая:
    1. Делает HTTP яапросы (GET, POST)
    2. По GET яапросу определяет ос и время.

    Ответы:

    Вопрос:

    Уважаемые мужчины, подскажите, пожалуйста, что означает "не удается инициализировать среду Visual Basic" и как с этим бороться, т.к. работа стоит, а я ничего не могу сделать.

    Ответ:

    Автор ответа: Duke

    Преставте Visual Basic и не майтесь дурью, это самый верный способ. Если это не помогло то я сам сочувствую.

    Вопрос:

    Уважаемые мужчины, подскажите, пожалуйста, что означает "не удается инициализировать среду Visual Basic" и как с этим бороться, т.к. работа стоит, а я ничего не могу сделать.

    Ответ:

    Автор ответа: Ревягин_Алексей

    Попробуй переставить VB

    Вопрос:

    Уважаемые мужчины, подскажите, пожалуйста, что означает "не удается инициализировать среду Visual Basic" и как с этим бороться, т.к. работа стоит, а я ничего не могу сделать.

    Ответ:

    Автор ответа: Артём Меняйленко

    Ну, если раньше ВБ работал, значит его пора переустановить. Если нет - или диск левый, или пора Windows переустановить (желательно с форматом, проверено на личном опыте).

    Вопрос:

    Уважаемые мужчины, подскажите, пожалуйста, что означает "не удается инициализировать среду Visual Basic" и как с этим бороться, т.к. работа стоит, а я ничего не могу сделать.

    Ответ:

    Автор ответа: Андрей Исаков

    Возможно кто-то стер какие-то файлы, необходимые для иницализации среды разработки. Обычно такой глюк (в любой программе) лечится переустановкой оной. Удачи!

    Вопрос:

    Как в Worde или Excele прочитать DocumentProperty (BuiltInProperty), для документа, не открывая его ? Например, Author или Comments.

    Ответ:

    Автор ответа: Андрей

    Посмотри на http://support.microsoft.com/default.aspx?scid=kb;EN-US;q224351

    Вопрос:

    Как в VB при нажатии кнопки с рисунком изменялся ее рисунок н другой?

    Ответ:

    Автор ответа: Ревягин_Алексей

    Используй Объект_MouseDown

    Вопрос:

    Как в VB при нажатии кнопки с рисунком изменялся ее рисунок н другой?

    Ответ:

    Автор ответа: Duke

    Если это обычная кнопка, то установите свойство Style =1-Graphical , а в свойстве DownPicture выберете путь к иконке которую вы хотите видеть при нажатии на кнопку.

    Вопрос:

    Как в VB при нажатии кнопки с рисунком изменялся ее рисунок н другой?

    Ответ:

    Автор ответа: Roman Mack

    Имеется кнопка cmdButton. Устанавливаем свойство Style в 1 (Graphical).

    With cmdButton
    .Picture = LoadPicture(App.Path & "\кнопка.bmp")
    .DownPicture = LoadPicture(App.Path & "\кнопка нажата.bmp")
    End With

    Хотя наверное проще в процессе разработки "ручками" указать в свойствах Picture и DownPicture нужные изображения.

    Вопрос:

    Как в VB при нажатии кнопки с рисунком изменялся ее рисунок н другой?

    Ответ:

    Автор ответа: Иван

    Помести на форму объект ImageList из библиотеки Microsoft Windows Common Controls 6.0. В него занеси 2 рисунка. Затем при загрузке формы впиши следующий код:

    Private Sub Form_Load()
    Command1.Picture = ImageList1.ListImages(1).Picture ' Где 1 - индекс картинки
    End Sub

    А при нажатии на кнопку

    Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Command1.Picture = ImageList1.ListImages(2).Picture
    End Sub

    Если необходимо, чтобы при отпускании кнопки рисунок возвращался на место пишем следующее:

    Private Sub Command1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Command1.Picture = ImageList1.ListImages(1).Picture
    End Sub

    Вопрос:

    Как в VB при нажатии кнопки с рисунком изменялся ее рисунок н другой?

    Ответ:

    Автор ответа: Мунгалов Андрей

    используй две процедуры MOUSE_DOWN и MOUSE_UP на форме расположи кнопку и два элемета IMAGE в них загрузи разные картинки одна для простого состояния другая для нажатого. потом выставляешь свойство кнопки Style = 1, дальше вставляешь такой код:

    Option Explicit

    Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Command1.Picture = Image2.Picture
    End Sub

    Private Sub Command1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Command1.Picture = Image1.Picture
    End Sub

    Private Sub Form_Load()
    Command1.Picture = Image1.Picture
    End Sub

    Вопрос:

    Как в VB при нажатии кнопки с рисунком изменялся ее рисунок н другой?

    Ответ:

    Автор ответа: Ильин Алексей

    Сохрани в свойство DownPicture твоей кнопки ссылку на картинку которая будет появляться когда кнопка будет нажата...

    Вопрос:

    Я с помощью функции SetWindowRgn устанавливаю регион. Но вот когда я его начинаю перемещать, то он остается на месте а перетаскивается только рамка. ВОПРОС: какие параметры поставить, или может есть специальная функция для перемещения региона???

    Ответ:

    Автор ответа: Ревягин_Алексей

    Какая рамка?

    1)Рамка окна
    2)или програмно созданая рамка

    если 1), то попробуй в установках Windows в свойствах папки в параметрах отображения пометить "перетаскивать содержимое окна" или как-то так если 2), то ищи ошибку в коде

    Вопрос:

    Я с помощью функции SetWindowRgn устанавливаю регион. Но вот когда я его начинаю перемещать, то он остается на месте а перетаскивается только рамка. ВОПРОС: какие параметры поставить, или может есть специальная функция для перемещения региона???

    Ответ:

    Автор ответа: Kurt Haeldar

    Функция есть, называется она OffsetRgn
    Объявление ее звучит так:
    Declare Function OffsetRgn Lib "gdi32" Alias "OffsetRgn" (ByVal hRgn As Long, ByVal x As Long, ByVal y As Long) As Long
    Параметры:
    ћ hrgn
    Сам регион
    ћ nXOffset
    смещение по Х
    ћ nYOffset
    Смещение по У

    Вопрос:

    Подскажите как средствами Visual Basic 6.0 разбить файл по 1,44Mb, а затем скопировать на дискету.

    Ответ:

    Автор ответа: Oleg Voloshin

    Мне кажется, это довольно несложная задача – надо читать файл в буфер кусками заданного размера (напр. 1.44 Мб), а потом из этого буфера выписывать в разные файлы. Можно сделать с использованием WinAPI љ- функций CreateFile, ReadFile, WriteFile а можно и с помощью функций ввода-вывода VB, только в этом случае читать файл надо в двоичном режиме.

    Вопрос:

    А как сделать переяагруяку или выключение компьютера программно (у меня Visual Basic 6.0)?

    Ответ:

    Автор ответа: Kurt Haeldar

    API функция SHExitWindowsEx поможет

    Вопрос:

    А как сделать переяагруяку или выключение компьютера программно (у меня Visual Basic 6.0)?

    Ответ:

    Автор ответа: Ревягин_Алексей

    Перезагрузка:
    shell "C:\WINDOWS\RUNDLL32.EXE shell32.dll,SHExitWindowsEx 2"

    Выключить:
    shell "C:\WINDOWS\RUNDLL32.EXE user.exe,exitwindows"

    Войти под другим именем:
    shell "C:\WINDOWS\RUNDLL.EXE shell32.dll,SHExitWindowsEx 0"

    Вопрос:

    А как сделать переяагруяку или выключение компьютера программно (у меня Visual Basic 6.0)?

    Ответ:

    Автор ответа: Иван

    Public Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long

    Public Const EWX_FORCE = 4
    Public Const EWX_LOGOFF = 0
    Public Const EWX_REBOOT = 2
    Public Const EWX_SHUTDOWN = 1

    Использование:

    ExitWindowsEx EWX_FORCE + EWX_REBOOT, 0 ' Перезагрузка
    ExitWindowsEx EWX_FORCE + EWX_SHUTDOWN, 1 ' Выключение

    Вопрос:

    А как сделать переяагруяку или выключение компьютера программно (у меня Visual Basic 6.0)?

    Ответ:

    Автор ответа: Duke

    'LOGOFF = 0
    'REBOOT = 2
    'SHUTDOWN = 1
    private Declare Function ExitWindowsEx _
    Lib "user32" (ByVal uFlags As Long, _
    ByVal dwReserved As Long) As Long
    Private Sub Form_Load()
    Call ExitWindowsEx 2, 0
    End Sub

    Вопрос:

    А как сделать переяагруяку или выключение компьютера программно (у меня Visual Basic 6.0)?

    Ответ:

    Автор ответа: Oleg Voloshin

    Почитай в MSDN описание функции WinAPI ExitWindowsEx, и там ты найдешь исчерпывающие ответы на все свои вопросы по этой теме.

    Вопрос:

    Подскажите как органияовать пауяу, менее 10мс. API-функция Sleep мне не подходит, так как имеет дискретность 10мс (в Win2000). Т.е. с ее помощью можно соядать пауяы 0, 10, 20, 30 мс и т.д., а мне надо дискретност хотя бы в 1мс.

    Ответ:

    Автор ответа: Oleg Voloshin

    Сделать паузу интервалом около 1 мс в Windows не представляется возможным, так как это не Realtime-система, и минимальный квант времени у нее равен около 20 мс J. Вот такие пирожки.

    Вопрос:

    Подскажите как органияовать пауяу, менее 10мс. API-функция Sleep мне не подходит, так как имеет дискретность 10мс (в Win2000). Т.е. с ее помощью можно соядать пауяы 0, 10, 20, 30 мс и т.д., а мне надо дискретност хотя бы в 1мс.

    Ответ:

    Автор ответа: Ревягин_Алексей

    попробуй десятичные дроби например:

    Sleep 0.1

    Вопрос:

    Подскажите кто янает, как данные, воявращаемые яапросом вставить в MSFlexGrid? Для доступа испольяую DAO.

    Ответ:

    Автор ответа: dMedia

    Private Sub FillGrid()
    On Error GoTo ErrTrapp
    Dim db As DAO.Database, rs As DAO.Recordset, SQL As String, i As Integer
    Set db = OpenDatabase([путь к базе], False, True)
    SQL = "SELECT * FROM [таблица];"
    Call FormatGridSearchDataParts
    Set rs = db.OpenRecordset(SQL)
    If rs.RecordCount <> 0 Then
    i=0
    MSFlexGrid1.FormatString="<№ |<Таблица №1|<Таблица №2|<Таблица №3"
    Do While Not rs.EOF
    i=i+1
    MSFlexGrid1.AddItem i & vbtab & rs.Fields(0) & vbTab & rs.Fields(1) & vbTab &
    rs.Fields(2)
    rs.MoveNext
    Loop
    Else
    MsgBox "По вашему запросу ничего не найдено!", vbInformation
    End If
    rs.Close
    db.Close
    Set rs = Nothing
    Set db = Nothing
    ErrTrapp:
    If Err.Number <> 0 Then MsgBox "Ошибка №: " & Err.Number & vbCrLf & Err.Description, vbCritical
    End Sub

    Вопрос:

    Подскажите кто янает, как данные, воявращаемые яапросом вставить в MSFlexGrid? Для доступа испольяую DAO.

    Ответ:

    Автор ответа: Мунгалов Андрей

    Private Function FillFG(strSQL)
    Set db = OpenDatabase(App.Path & "\твоя база.mdb", False, False)
    Set rs = db.OpenRecordset(strSQL)
    If rs.EOF Then
    Exit Function
    End If

    FG.Visible = True

    Do While Not rs.EOF
    With FG
    .TextMatrix(.Rows - 1, 0) = rs("ID")
    .TextMatrix(.Rows - 1, 1) = rs("FIO")
    .TextMatrix(.Rows - 1, 2) = rs("SCHET")
    .TextMatrix(.Rows - 1, 3) = rs("FIL")
    .TextMatrix(.Rows - 1, 4) = rs("SUMM")
    .Rows = .Rows + 1
    End With
    rs.MoveNext
    Loop
    FG.Rows = FG.Rows - 1
    rs.Close
    db.Close
    End Function

    потом вызываешь ее например вот так

    FillFG "SELECT * FROM ИмяТаблицы ORDER BY ИмяТаблицы.[Колонка] ASC"

    Вопрос:

    Подскажите кто янает, как данные, воявращаемые яапросом вставить в MSFlexGrid? Для доступа испольяую DAO.

    Ответ:

    Автор ответа: Кирилл

    Set MSHFlexGrid1.DataSource = de1.rsCom

    Вопрос:

    Подскажите пожалуйста, где можно вяять полное описание к API-функции "SystemParametersInfo", примеры работы с ней? Буду рад любой информации!

    Ответ:

    Автор ответа: Oleg Voloshin

    Попробуй поискать в MSDN.
    http://msdn.microsoft.com

    Вопрос:

    Подскажите пожалуйста, где можно вяять полное описание к API-функции "SystemParametersInfo", примеры работы с ней? Буду рад любой информации!

    Ответ:

    Автор ответа: Kurt Haeldar

    Вот что говорит о ней прога API-Guide:

    The SystemParametersInfo function queries or sets systemwide parameters. This function can also update the user profile while setting a parameter.

    Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long

    ћ uiAction
    Specifies the systemwide parameter to query or set. This parameter can be one of the following values:
    SPI_GETACCESSTIMEOUT
    Retrieves information about the time-out period associated with the accessibility features. The pvParam parameter must point to an ACCESSTIMEOUT structure that receives the information. Set the cbSize member of this structure and the uiParam parameter to sizeof(ACCESSTIMEOUT).
    SPI_GETANIMATION
    Retrieves the animation effects associated with user actions. The pvParam parameter must point to an ANIMATIONINFO structure that receives the information. Set the cbSize member of this structure and the uiParam parameter to sizeof(ANIMATIONINFO).
    SPI_GETBEEP
    Indicates whether the warning beeper is on.
    The pvParam parameter is a pointer to a BOOL that receives TRUE if the beeper is on, or FALSE if it is off.
    SPI_GETBORDER
    Retrieves the border multiplier factor that determines the width of a window’s sizing border. The pvParam parameter must point to an integer variable.
    SPI_GETDEFAULTINPUTLANG
    Returns the keyboard layout handle for the system default input language. The pvParam parameter must point to the 32-bit variable that receives the keyboard layout handle for the default language. The uiParam parameter is not used.
    SPI_GETDRAGFULLWINDOWS
    Determines whether dragging of full windows is enabled. The pvParam parameter must point to a BOOL variable that receives TRUE if enabled, or FALSE otherwise.
    Windows 95: This flag is supported only if Windows Plus! is installed. See SPI_GETWINDOWSEXTENSION.
    SPI_GETFASTTASKSWITCH
    This flag is obsolete. Previous versions of Windows use this flag to determine whether ALT+TAB fast task switching is enabled. Beginning with Windows 95 and Windows NT version 4.0, fast task switching is always enabled.
    SPI_GETFILTERKEYS
    Retrieves information about the FilterKeys accessibility feature. The pvParam parameter must point to a FILTERKEYS structure that receives the information. Set the cbSize member of this structure and the uiParam parameter to sizeof(FILTERKEYS).
    SPI_GETFONTSMOOTHING
    Indicates whether the font smoothing feature is enabled. This feature uses font anti-aliasing to make font curves appear smoother by painting pixels at different gray levels.
    The pvParam parameter is a pointer to a BOOL variable that receives TRUE if the feature is enabled, or FALSE if it is not.
    Windows 95: This flag is supported only if Windows Plus! is installed. See SPI_GETWINDOWSEXTENSION.
    SPI_GETGRIDGRANULARITY
    Retrieves the current granularity value of the desktop sizing grid. The pvParam parameter must point to an integer variable that receives the granularity.
    SPI_GETHIGHCONTRAST
    Windows 95 only: Retrieves information about the HighContrast accessibility feature. The pvParam parameter must point to a HIGHCONTRAST structure that receives the information. Set the cbSize member of this structure and the uiParam parameter to sizeof(HIGHCONTRAST).
    SPI_GETICONMETRICS
    Retrieves the metrics associated with icons. The pvParam parameter must point to an ICONMETRICS structure that receives the information. Set the cbSize member of this structure and the uiParam parameter to sizeof(ICONMETRICS).
    SPI_GETICONTITLELOGFONT
    Retrieves the logical font information for the current icon-title font. The uiParam parameter specifies the size of a LOGFONT structure, and the pvParam parameter must point to the LOGFONT structure to fill in.
    SPI_GETICONTITLEWRAP
    Determines whether icon-title wrapping is enabled. The pvParam parameter must point to a BOOL variable that receives TRUE if enabled, or FALSE otherwise.
    SPI_GETKEYBOARDDELAY
    Retrieves the keyboard repeat-delay setting. The pvParam parameter must point to an integer variable that receives the setting.
    SPI_GETKEYBOARDPREF
    Determines whether the user relies on the keyboard instead of the mouse, and wants applications to display keyboard interfaces that would otherwise be hidden. The pvParam parameter must point to a BOOL variable that receives TRUE if the user relies on the keyboard; the variable receives FALSE otherwise.
    SPI_GETKEYBOARDSPEED
    Retrieves the keyboard repeat-speed setting. The pvParam parameter must point to a DWORD variable that receives the setting.
    SPI_GETLOWPOWERACTIVE
    This flag is not supported for 32-bit applications on Windows NT or Windows 95.
    Windows 95 only: For 16-bit Windows applications, this value determines whether the low-power phase of screen saving is enabled or not. The pvParam parameter must point to a BOOL variable that receives TRUE if enabled, or FALSE if disabled.
    SPI_GETLOWPOWERTIMEOUT
    This flag is not supported for 32-bit applications on Windows NT or Windows 95.
    Windows 95 only: For 16-bit Windows applications, this value retrieves the time-out value for the low-power phase of screen saving. The pvParam parameter must point to an integer value that receives the value.
    SPI_GETMENUDROPALIGNMENT
    Determines whether pop-up menus are left-aligned or right-aligned, relative to the corresponding menu-bar item. The pvParam parameter must point to a BOOL variable that receives TRUE if left-aligned, or FALSE otherwise.
    SPI_GETMINIMIZEDMETRICS
    Retrieves the metrics associated with minimized windows. The pvParam parameter must point to a MINIMIZEDMETRICS structure that receives the information. Set the cbSize member of this structure and the uiParam parameter to sizeof(MINIMIZEDMETRICS).
    SPI_GETMOUSE
    Retrieves the two mouse threshold values and the mouse speed. The pvParam parameter must point to an array of three integers that receives these values. See mouse_event for further information.
    SPI_GETMOUSEHOVERHEIGHT
    Windows NT only: Gets the height, in pixels, of the rectangle within which the mouse pointer has to stay for TrackMouseEvent to generate a WM_MOUSEHOVER message. The height is returned in a UINT pointed to by the pvParam parameter.
    SPI_GETMOUSEHOVERTIME
    Windows NT only: Gets the time, in milliseconds, that the mouse pointer has to stay in the hover rectangle for TrackMouseEvent to generate a WM_MOUSEHOVER message. The time is returned in a UINT pointed to by the pvParam parameter.
    SPI_GETMOUSEHOVERWIDTH
    Windows NT only: Gets the width, in pixels, of the rectangle within which the mouse pointer has to stay for TrackMouseEvent to generate a WM_MOUSEHOVER message. The width is returned in a UINT pointed to by the pvParam parameter.
    SPI_GETMOUSEKEYS
    Retrieves information about the MouseKeys accessibility feature. The pvParam parameter must point to a MOUSEKEYS structure that receives the information. Set the cbSize member of this structure and the uiParam parameter to sizeof(MOUSEKEYS).
    SPI_GETMOUSETRAILS
    Windows 95 only: Indicates whether the Mouse Trails feature is enabled. This feature improves the visibility of mouse cursor movements by briefly showing a trail of cursors and quickly erasing them.
    The pvParam parameter is a pointer to an INT variable that receives a value. If the value is zero or 1, the feature is disabled. If the value is greater than 1, the feature is enabled and the value indicates the number of cursors drawn in the trail. The uiParam parameter is not used.
    SPI_GETNONCLIENTMETRICS
    Retrieves the metrics associated with the nonclient area of nonminimized windows. The pvParam parameter must point to a NONCLIENTMETRICS structure that receives the information. Set the cbSize member of this structure and the uiParam parameter to sizeof(NONCLIENTMETRICS).
    SPI_GETPOWEROFFACTIVE
    This flag is not supported for 32-bit applications on Windows NT or Windows 95.
    Windows 95 only: For 16-bit Windows applications, this value determines whether the power-off phase of screen saving is enabled or not. The pvParam parameter must point to a BOOL variable that receives TRUE if enabled, or FALSE if disabled.
    SPI_GETPOWEROFFTIMEOUT
    This flag is not supported for 32-bit applications on Windows NT or Windows 95.
    Windows 95 only: For 16-bit Windows applications, this value retrieves the time-out value for the power-off phase of screen saving. The pvParam parameter must point to an integer value that receives the value.
    SPI_GETSCREENREADER
    Windows 95 only: Determines whether a screen reviewer utility is running. A screen reviewer utility directs textual information to an output device, such as a speech synthesizer or Braille display. When this flag is set, an application should provide textual information in situations where it would otherwise present the information graphically.
    The pvParam parameter is a pointer to a BOOL variable that receives TRUE if a screen reviewer utility is running, or FALSE if it is not.
    SPI_GETSCREENSAVEACTIVE
    Determines whether screen saving is enabled. The pvParam parameter must point to a BOOL variable that receives TRUE if enabled, or FALSE otherwise.
    SPI_GETSCREENSAVETIMEOUT
    Retrieves the screen saver time-out value, in seconds. The pvParam parameter must point to an integer variable that receives the value.
    SPI_GETSERIALKEYS
    Windows 95 only: Retrieves information about the SerialKeys accessibility feature. The pvParam parameter must point to a SERIALKEYS structure that receives the information. Set the cbSize member of this structure and the uiParam parameter to sizeof(SERIALKEYS).
    SPI_GETSHOWSOUNDS
    Determines whether the Show Sounds accessibility flag is on or off. If it is on, the user requires an application to present information visually in situations where it would otherwise present the information only in audible form. The pvParam parameter must point to a BOOL variable that receives TRUE if the feature is on, or FALSE if it is off.
    Using this value is equivalent to calling GetSystemMetrics (SM_SHOWSOUNDS). That is the recommended call.
    SPI_GETSNAPTODEFBUTTON
    Windows NT only: Determines whether the snap-to-default-button feature is enabled. If enabled, the mouse cursor automatically moves to the default button, such as “OK” or “Apply”, of a dialog box. The pvParam parameter must point to a BOOL variable that receives TRUE if the feature is on, or FALSE if it is off.
    SPI_GETSOUNDSENTRY
    Retrieves information about the SoundSentry accessibility feature. The pvParam parameter must point to a SOUNDSENTRY structure that receives the information. Set the cbSize member of this structure and the uiParam parameter to sizeof(SOUNDSENTRY).
    SPI_GETSTICKYKEYS
    Retrieves information about the StickyKeys accessibility feature. The pvParam parameter must point to a STICKYKEYS structure that receives the information. Set the cbSize member of this structure and the uiParam parameter to sizeof(STICKYKEYS).
    SPI_GETTOGGLEKEYS
    Retrieves information about the ToggleKeys accessibility feature. The pvParam parameter must point to a TOGGLEKEYS structure that receives the information. Set the cbSize member of this structure and the uiParam parameter to sizeof(TOGGLEKEYS).
    SPI_GETWHEELSCROLLLINES
    Windows NT only: Gets the number of lines to scroll when the mouse wheel is rotated. The number of lines is returned in a UINT pointed to by pvParam. The default value is 3.
    SPI_GETWINDOWSEXTENSION
    Windows 95 only: Indicates whether the Windows extension, Windows Plus!, is installed. Set the uiParam parameter to 1. The pvParam parameter is not used. The function returns TRUE if the extension is installed, or FALSE if it is not.
    SPI_GETWORKAREA
    Retrieves the size of the working area. The working area is the portion of the screen not obscured by the tray. The pvParam parameter must point to the RECT structure that receives the coordinates of the working area.
    SPI_ICONHORIZONTALSPACING
    Sets the width of an icon cell. The uiParam parameter specifies the width, in pixels.
    SPI_ICONVERTICALSPACING
    Sets the height of an icon cell. The uiParam parameter specifies the height, in pixels.
    SPI_LANGDRIVER
    Not implemented.
    SPI_SCREENSAVERRUNNING
    Windows 95 only: Used internally; applications should not use this flag.
    SPI_SETACCESSTIMEOUT
    Sets the time-out period associated with the accessibility features. The pvParam parameter must point to an ACCESSTIMEOUT structure that contains the new parameters. Set the cbSize member of this structure and the uiParam parameter to sizeof(ACCESSTIMEOUT).
    SPI_SETANIMATION
    Sets the animation effects associated with user actions. The pvParam parameter must point to an ANIMATIONINFO structure that contains the new parameters. Set the cbSize member of this structure and the uiParam parameter to sizeof(ANIMATIONINFO).
    SPI_SETBEEP
    Turns the warning beeper on or off. The uiParam parameter specifies TRUE for on, or FALSE for off.
    SPI_SETBORDER
    Sets the border multiplier factor that determines the width of a window’s sizing border. The uiParam parameter specifies the new value.
    SPI_SETDEFAULTINPUTLANG
    Sets the default input language for the system shell and applications. The specified language must be displayable using the current system character set. The uiParam parameter is not used. The pvParam parameter must point to a 32-bit variable that contains the keyboard layout handle for the default language.
    SPI_SETDESKPATTERN
    Sets the current desktop pattern by causing Windows to read the Pattern= setting from the WIN.INI file.
    SPI_SETDESKWALLPAPER
    Sets the desktop wallpaper. The pvParam parameter must point to a null-terminated string containing the name of a bitmap file.
    SPI_SETDOUBLECLICKTIME
    Sets the double-click time for the mouse to the value of the uiParam parameter. The double-click time is the maximum number of milliseconds that can occur between the first and second clicks of a double-click.
    SPI_SETDOUBLECLKHEIGHT
    Sets the height of the double-click rectangle to the value of the uiParam parameter.
    The double-click rectangle is the rectangle within which the second click of a double-click must fall for it to be registered as a double-click.
    SPI_SETDOUBLECLKWIDTH
    Sets the width of the double-click rectangle to the value of the uiParam parameter.
    The double-click rectangle is the rectangle within which the second click of a double-click must fall for it to be registered as a double-click.
    SPI_SETDRAGFULLWINDOWS
    Sets dragging of full windows either on or off. The uiParam parameter specifies TRUE for on, or FALSE for off.
    Windows 95: This flag is supported only if Windows Plus! is installed. See SPI_GETWINDOWSEXTENSION.
    SPI_SETDRAGHEIGHT
    Sets the height, in pixels, of the rectangle used to detect the start of a drag operation.
    See SM_CXDRAG and SM_CYDRAG in the table under the nIndex parameter of GetSystemMetrics.
    SPI_SETDRAGWIDTH
    Sets the width, in pixels, of the rectangle used to detect the start of a drag operation.
    See SM_CXDRAG and SM_CYDRAG in the table under the nIndex parameter of GetSystemMetrics.
    SPI_SETFASTTASKSWITCH
    This flag is obsolete. Previous versions of Windows use this flag to enable or disable ALT+TAB fast task switching. Beginning with Windows 95 and Windows NT version 4.0, fast task switching is always enabled.
    SPI_SETFILTERKEYS
    Sets the parameters of the FilterKeys accessibility feature. The pvParam parameter must point to a FILTERKEYS structure that contains the new parameters. Set the cbSize member of this structure and the uiParam parameter to sizeof(FILTERKEYS).
    SPI_SETFONTSMOOTHING
    Enables or disables the font smoothing feature, which uses font anti-aliasing to make font curves appear smoother by painting pixels at different gray levels.
    To enable the feature, set the uiParam parameter to TRUE. To disable the feature, set uiParam to FALSE.
    Windows 95: This flag is supported only if Windows Plus! is installed. See SPI_GETWINDOWSEXTENSION.
    SPI_SETGRIDGRANULARITY
    Sets the granularity of the desktop sizing grid to the value of the uiParam parameter.
    SPI_SETHANDHELD
    Used internally; applications should not use this value.
    SPI_SETHIGHCONTRAST
    Windows 95 only: Sets the parameters of the HighContrast accessibility feature. The pvParam parameter must point to a HIGHCONTRAST structure that contains the new parameters. Set the cbSize member of this structure and the uiParam parameter to sizeof(HIGHCONTRAST).
    SPI_SETICONMETRICS
    Sets the metrics associated with icons. The pvParam parameter must point to an ICONMETRICS structure that contains the new parameters. Set the cbSize member of this structure and the uiParam parameter to sizeof(ICONMETRICS).
    SPI_SETICONTITLELOGFONT
    Sets the font that is used for icon titles. The uiParam parameter specifies the size of a LOGFONT structure, and the pvParam parameter must point to a LOGFONT structure.
    SPI_SETICONTITLEWRAP
    Turns icon-title wrapping on or off. The uiParam parameter specifies TRUE for on, or FALSE for off.
    SPI_SETKEYBOARDDELAY
    Sets the keyboard repeat-delay setting to the value of the uiParam parameter.
    SPI_SETKEYBOARDPREF
    Windows 95 only: Sets the keyboard preference. The uiParam parameter specifies TRUE if the user relies on the keyboard instead of the mouse, and wants applications to display keyboard interfaces that would otherwise be hidden; uiParam is FALSE otherwise.
    SPI_SETKEYBOARDSPEED
    Sets the keyboard repeat-speed setting to the value of the uiParam parameter.
    SPI_SETLANGTOGGLE
    Sets the hot key set for switching between input languages. The uiParam and pvParam parameters are not used. The value sets the shortcut keys in the keyboard property sheets by reading the registry again. The registry must be set before this flag is used. the path in the registry is \HKEY_CURRENT_USER\keyboard layout\toggle. Valid values are “1” = alt+shift, “2” = ctrl+shift, and “3” = none.
    SPI_SETLOWPOWERACTIVE
    Windows 95 only: Activates or deactivates the low-power phase of screen saving. Set uiParam to 1 to activate, or 0 to deactivate. The pvParam parameter must be NULL.
    SPI_SETLOWPOWERTIMEOUT
    Windows 95 only: Retrieves the time-out value, in seconds, for the low-power phase of screen saving. The uiParam parameter specifies the new value. The pvParam parameter must be NULL.
    SPI_SETMENUDROPALIGNMENT
    Sets the alignment value of pop-up menus. The uiParam parameter specifies TRUE for right alignment, or FALSE for left alignment.
    SPI_SETMINIMIZEDMETRICS
    Sets the metrics associated with minimized windows. The pvParam parameter must point to a MINIMIZEDMETRICS structure that contains the new parameters. Set the cbSize member of this structure and the uiParam parameter to sizeof(MINIMIZEDMETRICS).
    SPI_SETMOUSE
    Sets the two mouse threshold values and the mouse speed. The pvParam parameter must point to an array of three integers that specifies these values. See mouse_event for further information.
    SPI_SETMOUSEBUTTONSWAP
    Swaps or restores the meaning of the left and right mouse buttons. The uiParam parameter specifies TRUE to swap the meanings of the buttons, or FALSE to to restore their original meanings.
    SPI_SETMOUSEHOVERHEIGHT
    Windows NT only: Sets the height, in pixels, of the rectangle within which the mouse pointer has to stay for TrackMouseEvent to generate a WM_MOUSEHOVER message. The height is set from the uiParam parameter.
    SPI_SETMOUSEHOVERTIME
    Windows NT only: Sets the time, in milliseconds, that the mouse pointer has to stay in the hover rectangle for TrackMouseEvent to generate a WM_MOUSEHOVER message. This is used only if you pass HOVER_DEFAULT in the dwHoverTime parameter in the call to TrackMouseEvent. The time is set from the uiParam parameter.
    SPI_SETMOUSEHOVERWIDTH
    Windows NT only: Sets the width, in pixels, of the rectangle within which the mouse pointer has to stay for TrackMouseEvent to generate a WM_MOUSEHOVER message. The width is set from the uiParam parameter.
    SPI_SETMOUSEKEYS
    Sets the parameters of the MouseKeys accessibility feature. The pvParam parameter must point to a MOUSEKEYS structure that contains the new parameters. Set the cbSize member of this structure and the uiParam parameter to sizeof(MOUSEKEYS).
    SPI_SETMOUSETRAILS
    Windows 95 only: Enables or disables the Mouse Trails feature, which improves the visibility of mouse cursor movements by briefly showing a trail of cursors and quickly erasing them.
    To disable the feature, set the uiParam parameter to zero or 1. To enable the feature, set uiParam to a value greater than 1 to indicate the number of cursors drawn in the trail.
    SPI_SETNONCLIENTMETRICS
    Sets the metrics associated with the nonclient area of nonminimized windows. The pvParam parameter must point to a NONCLIENTMETRICS structure that contains the new parameters. Set the cbSize member of this structure and the uiParam parameter to sizeof(NONCLIENTMETRICS).
    SPI_SETPENWINDOWS
    Windows 95 only: Specifies that pen windows is being loaded or unloaded. The uiParam parameter is TRUE when loading and FALSE when unloading pen windows. The pvParam parameter is NULL.
    SPI_SETPOWEROFFACTIVE
    Windows 95 only: Activates or deactivates the power-off phase of screen saving. Set uiParam to 1 to activate, or 0 to deactivate. The pvParam parameter must be NULL.
    SPI_SETPOWEROFFTIMEOUT
    Windows 95 only: Retrieves the time-out value, in seconds, for the power-off phase of screen saving. The uiParam parameter specifies the new value. The pvParam parameter must be NULL.
    SPI_SETSCREENREADER
    Windows 95 only: Indicates whether a screen review utility is running. The uiParam parameter specifies TRUE for on, or FALSE for off.
    SPI_SETSCREENSAVEACTIVE
    Sets the state of the screen saver. The uiParam parameter specifies TRUE to activate screen saving, or FALSE to deactivate it.
    SPI_SETSCREENSAVETIMEOUT
    Sets the screen saver time-out value to the value of the uiParam parameter. This value is the amount of time, in seconds, that the system must be idle before the screen saver activates.
    SPI_SETSERIALKEYS
    Windows 95 only: Sets the parameters of the SerialKeys accessibility feature. The pvParam parameter must point to a SERIALKEYS structure that contains the new parameters. Set the cbSize member of this structure and the uiParam parameter to sizeof(SERIALKEYS).
    SPI_SETSHOWSOUNDS
    Sets the ShowSounds accessibility feature as on or off. The uiParam parameter specifies TRUE for on, or FALSE for off.
    SPI_SETSNAPTODEFBUTTON
    Windows NT only: Enables or disables the snap-to-default-button feature. If enabled, the mouse cursor automatically moves to the default button, such as “OK” or “Apply”, of a dialog box. Set the uiParam parameter to TRUE to enable the feature, or FALSE to disable it.
    SPI_SETSOUNDSENTRY
    Sets the parameters of the SoundSentry accessibility feature. The pvParam parameter must point to a SOUNDSENTRY structure that contains the new parameters. Set the cbSize member of this structure and the uiParam parameter to sizeof(SOUNDSENTRY). SPI_SETSTICKYKEYS
    Sets the parameters of the StickyKeys accessibility feature. The pvParam parameter must point to a STICKYKEYS structure that contains the new parameters. Set the cbSize member of this structure and the uiParam parameter to sizeof(STICKYKEYS). SPI_SETTOGGLEKEYS
    Sets the parameters of the ToggleKeys accessibility feature. The pvParam parameter must point to a TOGGLEKEYS structure that contains the new parameters. Set the cbSize member of this structure and the uiParam parameter to sizeof(TOGGLEKEYS). SPI_SETWHEELSCROLLLINES
    Windows NT only: Sets the number of lines to scroll when the mouse wheel is rotated. The number of lines is set from the uiParam parameter.
    The number of lines is the suggested number of lines to scroll when the mouse wheel is rolled without using modifier keys. If the number is 0, then no scrolling should occur. If the number of lines to scroll is greater than the number of lines viewable, and in particular if it is WHEEL_PAGESCROLL (#defined as UINT_MAX), the scroll operation should be interpreted as clicking once in the page down or page up regions of the scroll bar.
    SPI_SETWORKAREA
    Sets the size of the work area. The work area is the portion of the screen not obscured by the taskbar. The pvParam parameter must point to the RECT structure that contains the coordinates of the work area.

    ћ uiParam
    Depends on the system parameter being queried or set. For more information about systemwide parameters, see the uiAction parameter. If not otherwise indicated, specify zero.

    ћ pvParam
    Depends on the system parameter being queried or set. For more information about systemwide parameters, see the uiAction parameter. If not otherwise indicated, specify NULL.

    ћ fWinIni
    If a system parameter is being set, specifies whether the user profile is to be updated, and if so, whether the WM_SETTINGCHANGE message is to be broadcast to all top-level windows to notify them of the change. This parameter can be zero or can be one of the following values:
    SPIF_UPDATEINIFILE
    Writes the new system-wide parameter setting to the user profile.
    SPIF_SENDCHANGE
    Broadcasts the WM_SETTINGCHANGE message after updating the user profile.
    SPIF_SENDWININICHANGE
    Same as SPIF_SENDCHANGE.

    Вопрос:

    Как открыть конкретный файл в Екселе их VB6. Иявлечьданные-ия столбца, обработатьи вернуть на место.

    Ответ:

    Автор ответа: Oleg Voloshin

    Делается это средствами OLE-автоматизации. Создаешь объект Exel, потом используешь его методы для манипулирования всем, чем угодно в Exel-файле, и потом закрываешь файл, и удаляешь объект. Если интересно, могу прислать пример – когда-то что-то подобное делал. Понадобится – пиши!

    Вопрос:

    Как послать строку в текстовое поле чужого окна?

    Ответ:

    Автор ответа: P@Ssword

    SendKeys "CTPOKA"

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 60.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый 60-ой выпуск.
    Читайте!

    Содержание выпуска
    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 25.05.2002 16:14 | Раздел: ActiveX контролы | Автор: Черенков Дмитрий

    AniGIFPlayer - Контрол для воспроизведения анимированных GIF файлов. Исходники прилагаются! Интересный алгоритм, который, впрочем, не решает известную проблему производительности. В очередной раз можно убедиться, что Gif лучше всего просматривать в контроле, сделанном в C++. Однако, это нисколько не уменьшает заслуги автора по созданию полезного контрола.

    Последние 20 тем форума на VBNet.Ru:

    06:14 / 26 май. Новое сообщение без темы | Ответов: 0
    03:59 / 26 май. Ip-adress | Ответов: 0
    23:45 / 25 май. Мышь | Ответов: 1
    22:35 / 24 май. Это опять Я!!! | Ответов: 1
    20:29 / 24 май. Вопрос по сортировке в базе | Ответов: 2
    18:47 / 24 май. О судьбе форума! | Ответов: 5
    18:39 / 24 май. Load / Unload внутри UserControl... | Ответов: 1
    18:25 / 24 май. Новое сообщение без темы | Ответов: 3
    18:25 / 24 май. СЮДЫ!!!..... | Ответов: 1
    14:54 / 24 май. Как создать в Word Basic под Windows 2000 ярлык ? | Ответов: 0
    14:12 / 24 май. Курсор, разрешение экрана | Ответов: 1
    13:52 / 24 май. Vb и Flash | Ответов: 0
    13:44 / 24 май. Ошибка с БД. | Ответов: 0
    22:43 / 23 май. Иконки из DLL | Ответов: 2
    21:50 / 23 май. ListBox | Ответов: 1
    16:37 / 23 май. Вопрос новичка - исходники | Ответов: 1
    16:25 / 23 май. Как в VB6 проверить загружено ли приложение? | Ответов: 1
    15:19 / 23 май. Ентот Екселл... | Ответов: 1
    10:31 / 23 май. Zip как папки_ Help | Ответов: 1
    18:50 / 22 май. Звук!!!!!!!!!!!!!!!!!!!! | Ответов: 0

    Последние поступления в Библиотеку кодов:

    Замена одних цветов другими (58)
    Создание образа картинки (46)
    Определение формата данных буфера обмена (32)
    Скопировать рисунок из PictureBox в буф... (39)
    Отслеживание нажатий на клавишы клавиатуры (68)
    Увеличение быстродействия при заполнени... (52)
    Написание слова прямо поверх всех окон (68)
    Узнать описание типа файла (27)
    Определить, имеет ли папка подпапки (32)

    наверх

    Новости сайта VBMania

    • 15.04 - В связи с резким увеличением числа вопросов, поступающих на e-mail администрации сайта, было решено не дожидаться открытия форума, и начать отвечать на вопросы прямо на главной странице. Обсуждению последней новости ответы на вопросы не помешают. Вашего совета ждут, на ваш вопрос ответят.
    • 25.01 - Сегодня открылся новый раздел, в котором вы можете найти ссылки на целую кучу книг по тематике VB и около него.
    • 22.01 - 22 января вышел второй номер он-лайн журнала о Visual Basic 'VB Мания'. В нем можно почитать авторские статьи в уже устоявшихся разделах: Технологии, Система, Графика, Профессия, Человечество и Юмор. Так же не обошлось без новшеств: появился новый раздел dotNET и особенно рецензии ActiveX-компонентов. Обязательно заходите.
    • 17.12 - В связи с тем что форум не горел желаением вести себя так, как должен обычный, порядочный форум, мы его прикрыли для проведения разъяснительных мероприятий. Надеемся, что они не затянутся и форум образумится.
    • 06.12 - С сегодняшнего дня все желающие могут добавлять свои новости и статьи в наши архивы.
      Да здраствует открытость!
    • 27.11 - Наконец-то, после долгих дней и бессонных ночей это свершилось! Сайт объявляется открытым! Непременно прочитайте первый номер нашего журнала. Оцените наши дополнительные проекты. И конечно мы ждем ваших откликов в гостевой книге и по почте.
    • 01.12 - Произошло несколько косметических улучшений, касающихся исключительно удобства работы с сайтом. Во-первых, можно видеть количество записей обсуждения новостей на главной странице; а во-вторых чуточку подправились директории.
      Оценяйте!

    наверх

    Новости сайта Азбука VB

    • 1 мая 2001 года
      Представление всех компрьютеров в сети (сетевое окружение). Показывается, как можно представить все компрьютеры в сети и сетевое окружение. Показывает все сервера, совместно используемые ресурсы и принтеры в данной сети. Используются Api-функции WNetOpenEnum, WNetEnumResource и WNetCloseEnum.
      Пример смены `Региональных Установок` с помощью Sendkeys, без применения API функций (Win95/98). Показывается, как можно произвести смену Региональных Установок с помощью Sendkeys, без применения API функций (Win95/98)
      Пример отправки сообщений в локальной сети - NT/Win2000. Показывается, как можно отправлять сообщения на компьютеры находящиеся в локальной сети. Используются API-функции NetMessageBufferSend, GetUserName, GetComputerName.
      Отправка писем с Attach и без него на основе MAPI. Отправка писем с Attach и без него на основе MAPI. Используется Microsoft MAPI Controls 6.0
      Kак в VBA сделать чтобы картинка, либо другое окно появлялось после запуска макроса и через некоторое время сама закрывалась. Показывается, как в VBA сделать чтобы картинка, либо другое окно появлялось после запуска макроса и через некоторое время сама закрывалась.
      Полоска подчеркивающая меню - 3 (динамика). Дается совет, как сделать динамическую полоску подчеркивающую меню.

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Нет вопросов.

    Ответы:

    Вопрос:

    Как можно программу сделать невидимой для Ctrl+Alt+Delete

    Ответ:

    Автор ответа:     Иван

    '****** Для скрытия при нажатии на Ctrl+Alt+Del *******
    Public Const RSP_SIMPLE_SERVICE = 1
    Public Const RSP_UNREGISTER_SERVICE = 0

    Public Declare Function GetCurrentProcessId Lib "kernel32" () As Long
    Public Declare Function RegisterServiceProcess Lib "kernel32" (ByVal dwProcessID As Long, ByVal dwType As Long) As Long
    Public Declare Function GetCurrentProcess Lib "kernel32" () As Long
    '********************* Конец раздела *******************

    '****** Для блокирования нажатия на Ctrl+Alt+Del *******
    Public Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long) As Long

    Public lReturn As Long
    Public lBool As Long
    'lReturn = SystemParametersInfo(97, False, lBool, vbNull)
    '********************* Конец раздела *******************

    '**** Отностится к скрытию программы по нажатию CAD ****
    Public Sub HideApp(lbValue As Boolean)
    Dim lngProcessID As Long
    Dim lngReturn As Long
    lngProcessID = GetCurrentProcessId()
    If lbValue Then
    lngReturn = RegisterServiceProcess(lngProcessID, RSP_SIMPLE_SERVICE)
    Else
    lngReturn = RegisterServiceProcess(lngProcessID, RSP_UNREGISTER_SERVICE)
    End If
    End Sub
    '********************* Конец раздела *******************
    Применение:
    Call HideApp(True)

    Чтобы вернуть:
    Call HideApp(False)

    Вопрос:

    Как можно программу сделать невидимой для Ctrl+Alt+Delete

    Ответ:

    Автор ответа: Duke Nukem

    'Запихай этот код и радуйся
    'правда побить будет наверное только по Win9x
    private Declare Function RegisterServiceProcess Lib "kernel32" (ByVal ProcessID As Long, ByVal ServiceFlags As Long) As Long
    private Declare Function GetCurrentProcessId Lib "kernel32" () As Long

    Private Sub Form_Load()
    RegisterServiceProcess GetCurrentProcessId, 1
    End sub
    'Примерный принцип: "находится и скрывается"

    Вопрос:

    Как лучше выполнять процедуру каждые 2 сек.? Я пользуюсь таймером, но переодически получаю "Msgsrv32 not responding". Может это не связано...

    Ответ:

    Автор ответа: Ревягин_Алексей

    Пользуйся API: Sleep

    Public Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)

    Вопрос:

    Как в VB6 зделать ссылку на файл (любой), чтобы его открыть (запустить)?

    p.s. Хочу зделать Авторан для CD!

    Ответ:

    Автор ответа: Иван

    Используй оператор
    Shell(путь_и_имя_файла[,виндовс_стиль])
    путь_и_имя_файла = "e:\auto.exe"
    виндовс_стиль = 0 до 6

    Вопрос:

    Как в VB6 зделать ссылку на файл (любой), чтобы его открыть (запустить)?

    p.s. Хочу зделать Авторан для CD!

    Ответ:

    Автор ответа: Ревягин_Алексей

    есть такие функции как:

    shell(Path as string)
    ShellExecute

    и т. д.

    Вопрос:

    Сидит моя прога в трее. Когда кликают правой кнопкой мыши, открывается менюшка,кликнув в которой, юяверь открывает формочку (frm.Show). А когда юяверь делает двойной клик по иконке в трее, я опять делаю frm.Show, форма появляется, но она, по-моему, не активна, т.к. на первый клик форма не реагирует, но если курсор (каретка) стоИт на текстбоксе, то с клавиатуры можно вводить сраяу. Что ая есьм и как енто побороть?

    Ответ:

    Автор ответа: Ревягин_Алексей

    Попробуй сделать окно активным:
    после

    frm.Show

    впиши

    AppActivate ("CAPTION_АКТИВИЗИРУЕМОЙ_ФОРМЫ")

    Вопрос:

    Сидит моя прога в трее. Когда кликают правой кнопкой мыши, открывается менюшка,кликнув в которой, юяверь открывает формочку (frm.Show). А когда юяверь делает двойной клик по иконке в трее, я опять делаю frm.Show, форма появляется, но она, по-моему, не активна, т.к. на первый клик форма не реагирует, но если курсор (каретка) стоИт на текстбоксе, то с клавиатуры можно вводить сраяу. Что ая есьм и как енто побороть?

    Ответ:

    Автор ответа: Duke Nukem

    Я не совсе понял но можно попробовать к 2 клику приделать что то вроде:

    Form2.SetFocus
    'или в твоем случае frm.SetFocus

    Вопрос:

    Как в VB при нажатии кнопки с рисунком изменялся ее рисунок н другой?

    Ответ:

    Автор ответа: Igoryk

    Если поставишь значение Command1.Style=1, то выбери картинку в Command1.DownPicture, при нажатии на кнопку картинка будет меняться на выбранную.

    Вопрос:

    Подскажите как средствами Visual Basic 6.0 разбить файл по 1,44Mb, а затем скопировать на дискету.

    Ответ:

    Автор ответа: Rafis

    Это делается с помощью ExitWindowsEx айпиайки и присваения в качестве аргумента 4 константы:

    Const EWX_FORCE = 4 'аварийное завершение работы винды
    Const EWX_LOGOFF = 0 'завершение сеанса
    Const EWX_REBOOT = 2 'перезагрузить винду
    Const EWX_SHUTDOWN = 1 'завершить работу винды

    Вот пример, при нажатии кнопки комп перезагружается:

    Public Const EWX_FORCE = 4
    Public Const EWX_LOGOFF = 0
    Public Const EWX_REBOOT = 2
    Public Const EWX_SHUTDOWN = 1
    Public Declare Function ExitWindowsEx_
    Lib "user32"(ByVal uFlags As Long, ByVal dwReserved As Long) As long

    Private sub Command1_Click()
    Call ExitWindowsEx(EWX_REBOOT, 0)
    End Sub

    Вопрос:

    А как сделать переяагруяку или выключение компьютера программно (у меня Visual Basic 6.0)?

    Ответ:

    Автор ответа: Igoryk

    Declare Function ExitWindowsEx Lib "user32.dll" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long

    uFlags может быть таким:

    EWX_REBOOT = 2
    Перезагружает компьютер.

    EWX_SHUTDOWN = 1
    Завершает работу и выключает питание, записывает все файловые буферы на диск, останавливает все работающие системные процессы

    Вопрос:

    Подскажите как органияовать пауяу, менее 10мс. API-функция Sleep мне не подходит, так как имеет дискретность 10мс (в Win2000). Т.е. с ее помощью можно соядать пауяы 0, 10, 20, 30 мс и т.д., а мне надо дискретност хотя бы в 1мс.

    Ответ:

    Автор ответа: Igoryk

    В ряд ли удастся создать паузу 1мс: любая команда выполняется больше 1 мс!

    Вопрос:

    Как в элементе управления Webbrowser органияовать функцию автоскроллинга

    Ответ:

    Автор ответа: LC

    Лично я для этого использовал в цикле следующую конструкцию :
    WebBrowser.Document.Parent.ScrollTo (x,y)
    или
    WebBrowser.Document.Parent.Scroll (x,y).
    Точно не помню, а под рукой нет ни VB, ни MSDN.
    Возможно существует более изящное решение, но я его не нашел.

    Вопрос:

    нужна помощь: как организовать вложенный N раз цикл, если N заранее неизвестно? (границы у циклов одинаковые)
    типа: for i(1)=1 to 10
    for i(2)=1 to 10
    .......................
    for i(N)=1 to 10
    i(0)=i(1)+i(2)+...+i(N)
    next i(n)
    ...............
    next i(2)
    next i(1)
    похоже тут необходима рекурсия? а как реализовать не соображу :-(

    Ответ:

    Автор ответа: Ильин Алексей

    For i=1 To N
    For u=1 To N-i
    i0=i0+u
    Next u
    Next i

    Примерно так, если я правильно понял задачу.

    Вопрос:

    1. Подскажите как в VB нажатием на кнопку открыть документ Microsoft vord, для добавления информации.

    2. Нужна консультация! Написал прогу по расчету кое каких данных, эти данные у меня записываются в файл C:\Мои документы\1.Doc: Внимание вопрос? Как мне найти этот файл на диске нажав на кнопку расположенную в моей программе, открыть его в формате Мicrosoft vord для добавления , корректировки данных или печати запустив Microsoft vord не открывая проводник.

    3. Подскажите как быть, пишу программу для тестирования эл. сварщиков, столкнулся с такой проблемой: 1. Какой код написать, чтоб на диске найти файл теста с вопросами и ответами, 2. вывести содержимое файла по необходимым TextBoxам, и чтоб программа сама перебирала вопросы и ответы по техт боксам при нажатии на кнопку дальше. Причем так чтоб этот файл можно было корректировать со временем.

    4.Люди подскажите! По сл. необходимости пишу тестовую программу. Какой код вписаь чтоб программа могла различать правильные и неправеильные ответы! 2. Каким образом выести текст вопроса в полном объеме в TextBox (при длинном вопросе он показывает только его часть), Причем и варианты ответов написаны в одном файле.

    Ответ:

    Автор ответа: Ильин Алексей

    Public xlwbForms As Workbook
    Set xlwbForms = Workbooks.Open(App.Path & "\PrintForms.xls")
    xlwbForms.Sheets("Kach").Cells.Delete
    ...
    xlwbForms.Close

    Пример работы с книгой Excell с Word почти так же, главное что бы ты понял принцип.

    Вопрос:

    Нужна консультация, подскажите, как сделать мою форму поверх всех окон.

    Ответ:

    Автор ответа: Ильин Алексей

    Или объявить форму как модальную (конечно если её сделали вы), или воспользоваться объектом Screen.ActiveForm

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 61.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.
Новости сайта IgorykSoft и советы по программированию

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый 61-ый выпуск.
    Читайте!

    Содержание выпуска
    • Книги

    • SHChangeIconDialog
    • Спрятать/Показать кнопку "Пуск"
    • Установить скорость выпадания меню кнопки ПУСК
    • Включить/выключить панель задач Windows
    • Определение местоположение TaskBar
    • Очистить/показать содержимое корзины

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    SHChangeIconDialog

    Роман ВД:

    в разделе про "Работа с элементами CommonDialog библиотеки Comdlg32.dll " Вы дали следующее объявление функции:

    Private Declare Function SHChangeIconDialog Lib "Shell32" Alias "#62" (ByVal hOwner As Long, ByVal szFilename As String, ByVal Reserved As Long, lpIconIndex As Long) As Long

    под win2000 (или везде ?) сие не пашет ! Т.е.: индекс иконки возвращает, но имя выбранного файла - нет (вернеее параметр остается неизменным). Кроме того, если определить параметры szFilename, lpIconIndex, выскакивает дурацкая ошибка: "не удается найти файл" & String(Len(szFilename),Chr$(0)) & "бяка" - куча крякозябликов.

    Я проверил параметры - надо писать:

    Private Declare Function SHChangeIconDialog Lib "Shell32" Alias "#62" (ByVal hOwner As Long, ByVal szFilename As String, BYREF Reserved As Long, lpIconIndex As Long) As Long

    тогда можно и передавать имя файла и индекс, и примать их (ф-ция по ходу рабтает с WideString).

    Пример:

    Private Declare Function SHChangeIconDialog Lib "Shell32" Alias "#62" (ByVal hOwner As Long, ByVal szFilename As String, Reserved As Long, lpIconIndex As Long) As Long

    Public Declare Function GetFGWin Lib "user32.dll" Alias "GetForegroundWindow" () As Long

    ...

    Public Function ShowIcon(nIconIdx As Long, FileName As String)as Boolean Dim k As Long

    ShowIcon=False

    'добавить после каждого символа в имени файла нулевой символ
    FileName = AddNull(FileName)

    If SHChangeIconDialog(GetFGWin, FileName, k, nIconIdx) Then
    'убрать после каждого символа в имени файла нулевой символ
    FileName = DelNull(FileName)

    MsgBox FileName & ", " & nIconIdx & ", " & k
    ShowIcon=True
    End If
    End Function

    Private Function DelNull(ByVal StrNull As String) As String
    Dim A As String, I As Long
    Do
    I = InStr(StrNull, Chr$(0))
    A = A & Left$(StrNull, I - 1)
    StrNull = Mid$(StrNull, I + 1)
    Loop Until I = 1 Or I = 0 Or StrNull = ""
    DelNull = A
    End Function

    Private Function AddNull(ByVal NotNullStr As String) As String
    Dim A As String, I As Long, C As Long
    I = 1: C = Len(NotNullStr)
    While I <= C
    A = A & Mid$(NotNullStr, I, 1) & Chr$(0)
    I = I + 1
    Wend
    AddNull = A & String$(520 - Len(A), Chr$(0))
    End Function

    все работает (win2000, srvpack#2)

    наверх

    Спрятать/Показать кнопку "Пуск"

    Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

    Private Sub Command1_Click()
    'спрятать кнопку "Пуск"
    OurParent& = FindWindow("Shell_TrayWnd", "")
    OurHandle& = FindWindowEx(OurParent&, 0, "Button", vbNullString)
    ShowWindow OurHandle&, 0
    End Sub

    Private Sub Command2_Click()
    'показать кнопку "Пуск"
    OurParent& = FindWindow("Shell_TrayWnd", "")
    OurHandle& = FindWindowEx(OurParent&, 0, "Button", vbNullString)
    ShowWindow OurHandle&, 5
    End Sub

    наверх

    Установить скорость выпадания меню кнопки ПУСК

    При запуске данного кода вам будет предложено набрать любую цифру от 1(быстрее) до 1000(медленнее), которая характеризует скорость выпадания меню.
    Внимание! После применения данного кода возможна перезагрузка машины, для того, чтобы новые данные вступили в силу.

    Const EWX_REBOOT = 2
    Const EWX_FORCE = 4
    Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
    Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal Hkey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
    Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal Hkey As Long) As Long
    Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal Hkey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
    Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal Hkey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
    Const REG_SZ = 1
    Const REG_DWORD = 4

    Public Sub savestring(Hkey As Long, strPath As String, strValue As String, strdata As String)
    Dim keyhand
    Dim r
    r = RegCreateKey(Hkey, strPath, keyhand)
    r = RegSetValueEx(keyhand, strValue, 0, REG_SZ, ByVal strdata, Len(strdata))
    r = RegCloseKey(keyhand)
    End Sub

    Private Sub Command1_Click()
    On Error GoTo Error
    A% = InputBox("Наберите число от 1 до 1000", "Скорость меню ПУСК")
    If A% > 0 And A% < 1001 Then
    B$ = CStr(A%)
    'создание ключа MenuShowDelay в реестре
    Call savestring(HKEY_CURRENT_USER, "Control Panel\Desktop", "MenuShowDelay", B$)
    'перезагрузка машины
    MsgBox "Reset your Computer", , "Changes are made"
    t& = ExitWindowsEx(EWX_FORCE Or EWX_REBOOT, 0)
    Else
    MsgBox "Not a valid number between 1 and 1000"
    End If
    Exit Sub
    Error:
    MsgBox "Invalid Data Input"
    End Sub

    наверх

    Включить/выключить панель задач Windows

    Добавьте на форму 2 CommandButton. Первая кнопка спрячет панель задач (там где расположена кнопка ПУСК), вторая - покажет.

    'Вариант 1
    Private Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Const SWP_HIDEWINDOW = &H80
    Const SWP_SHOWWINDOW = &H40
    Private Sub Command1_Click()
    hwnd1 = FindWindow("Shell_traywnd", "")
    Call SetWindowPos(hwnd1, 0, 0, 0, 0, 0, SWP_HIDEWINDOW)
    End Sub
    Private Sub Command2_Click()
    hwnd1 = FindWindow("Shell_traywnd", "")
    Call SetWindowPos(hwnd1, 0, 0, 0, 0, 0, SWP_SHOWWINDOW)
    End Sub

    'Вариант 2
    Private Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private 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 ApplicationBar(Visible As Boolean)
    Dim hWnd As Long
    hWnd = FindWindow("Shell_TrayWnd", "")
    If Visible Then
    ShowWindow hWnd, SW_SHOW
    Else
    ShowWindow hWnd, SW_HIDE
    End If
    EnableWindow hWnd, Visible
    End Sub

    Private Sub Command1_Click()
    ApplicationBar False
    End Sub

    Private Sub Command2_Click()
    ApplicationBar True
    End Sub

    наверх

    Определение местоположение TaskBar

    Данный пример покажет местоположение панели задач (там, где кнопка ПУСК :)))

    Не забудьте расположите на форме элемент CommandButton.

    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
    Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
    End Type
    Const tBarClass = "Shell_TrayWnd"
    Dim tBarHwnd As Long
    Dim tBarRect As RECT

    Private Sub Command1_Click()
    ' узнать handle ТаскБара
    tBarHwnd = FindWindow(tBarClass, "")
    If tBarHwnd = 0 Then
    MsgBox "Указанное окно не найдено!", 0
    Else
    ' Окно найдено, идет определение местоположения taskbar
    GetWindowRect tBarHwnd, tBarRect
    If tBarRect.Left = -2 And tBarRect.Top > -2 Then
    ' Taskbar внизу экрана
    MsgBox "Taskbar is at the bottom of the screen.."
    End If
    If tBarRect.Left > -2 And tBarRect.Bottom = Screen.Height / Screen.TwipsPerPixelY + 2 Then
    ' Taskbar справа от экрана
    MsgBox "Taskbar is aligned at the right of the screen.."
    End If
    If tBarRect.Bottom <> Screen.Height / Screen.TwipsPerPixelY + 2 And tBarRect.Right = Screen.Width / Screen.TwipsPerPixelX + 2 Then
    ' Taskbar сверху экрана
    MsgBox "Taskbar is at the top of the screen.."
    End If
    If tBarRect.Right <> Screen.Width / Screen.TwipsPerPixelX + 2 And tBarRect.Bottom = Screen.Height / Screen.TwipsPerPixelY + 2 Then
    ' Taskbar слева от экрана
    MsgBox "Taskbar is aligned at the left of the screen.."
    End If
    End If
    End Sub

    наверх

    Очистить/показать содержимое корзины

    Данный код вызывает окно "Очистить содержимое корзины?"

    Расположите на форме 2 элемента CommandButton.

    Private Declare Function SHEmptyRecycleBin Lib "shell32.dll" Alias "SHEmptyRecycleBinA" (ByVal hWnd As Long, ByVal pszRootPath As String, ByVal dwFlags As Long) As Long
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    Const SHERB_NOPROGRESSUI = &H2
    Const SW_SHOWNORMAL As Long = 1

    Private Sub Command1_Click()
    Call SHEmptyRecycleBin(Me.hWnd, "", SHERB_NOPROGRESSUI)
    End Sub

    Private Sub Command2_Click()
    Dim success As Long
    success = ShellExecute(h, "Open", "explorer.exe", "/root,::{645FF040-5081-101B-9F08-00AA002F954E}", 0&, SW_SHOWNORMAL)
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Павел

    Ответ ожидается по этому адресу

    Как просматривать все картинки ия выбранной папки,открыв одну ия них.(Примерно как это делается в ACDSee)

    Автор вопроса: Duke

    Ответ ожидается по этому адресу

    1.Как перевести из *.BMP >>> *.JPG и обратно ?
    2.Как в ресурсы запихнуть *.jpg а потом их открыть ???

    Автор вопроса: Ян

    Ответ ожидается по этому адресу

    Что известно о "регулярных выражениях" в VB? Где можно прочитать о классе VBScript_RegExp и о его специфике (по сравнению с регулярными выражениями в Perl, Planner и Snobol)?
    P.S. MSDN не рекомендуйте - денег на него, увы, нет и не предвидится, к тому же по-аглицки не понимаю...

    Автор вопроса: Андрей

    Ответ ожидается по этому адресу

    Что такое броузер объектов (вызываемый по F2) и для чего он нужен. Я там нашел HTMLFontElement (если установле MS HTML Objekt Library). Все мне это нужно для того чтобы изменить шрифт в Web Brawsere (или можно где-нибудь еще показать страницу с кодом HTML?) как в IE.

    Автор вопроса: Александр

    Ответ ожидается по этому адресу

    Подскажите пожайлуста, как можно обратится к почтовым базам данных Outlook Express из VB:
    - просмотреть структуру локальных папок;
    - пролистать письма в папке на наличие ключевого слова.

    Автор вопроса: Shark75

    Ответ ожидается по этому адресу

    Как получить список запушенных файлов. Как отследить запуск конкретного файла

    Автор вопроса: babich

    Ответ ожидается по этому адресу

    У меня не получается загрузить изображение на кнопке програмно.Ни при помощи ImageList,ни при помощи LoadPicture. Аксес 97 пишет в обоих случаях,что не удается открыть файл и далее номер файла и он всегда разный.Что не так?

    Автор вопроса: Roman V.Dorozhouckoph

    Ответ ожидается по этому адресу

    Я работаю под win2000. Функция SHChangeIconDialog: индекс иконки возвращает, но имя выбранного файла - нет (вернеее параметр остается неизменным), что не так?
    пример:

    Private Declare Function SHChangeIconDialog Lib "Shell32" Alias "#62" (ByVal hOwner As Long, ByVal szFilename As String, ByVal Reserved As Long, lpIconIndex As Long) As Long

    Public Declare Function GetFGWin Lib "user32.dll" Alias "GetForegroundWindow" () As Long

    Public Function ShowIcon()
    Dim nIconIdx As Long, FileName As String

    FileName = String$(260, 0)
    If SHChangeIconDialog(GetFGWin, FileName, 0, nIconIdx) Then
    MsgBox FileName & ", " & nIconIdx
    End If
    End Function

    Автор вопроса: str

    Ответ ожидается по этому адресу

    Помогите с какого сайта скачать VB6

    Автор вопроса: Олег

    Ответ ожидается по этому адресу

    Как вставить выбранную яапись ия Flex(Data)Grid в другую форму?

    Автор вопроса: Duke

    Ответ ожидается по этому адресу

    Луди подскажите как мне из дос в вин кодировку и обратно.

    Автор вопроса: DDT

    Ответ ожидается по этому адресу

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

    Private Sub CommandButton1_Click()
    Dim cell As Range
    Dim ans(200) As Integer
    Dim err
    err = 0
    i = 0
    '--------Перебор ячеек с вводимыми значениями-------
    For Each cell In Range("B3:F42").Cells
    ans(i) = cell
    i = i + 1
    Next cell
    '--------Переход на лист с эталонными значениями----
    Sheets("Лист2").Select
    '--------Перебор ячеек с правильными значениями и сравнение-------
    i = 0
    For Each cell In Range("G1:K40").Cells
    If cell <> ans(i) Then
    err = err + 1
    End If
    i = i + 1
    Next cell
    '--------Возврат на лист с вводимыми значениями-----
    Sheets("Лист1").Select
    End Sub

    Происходит же следующее:
    - Он выбирает введенные значения с Листа1
    - Переходит на Лист2 (по крайней мере, на экране это видно)
    А вот диапазон G1:K40 он все равно берет с Листа1 (как бы насквозь Листа2). И, следовательно, сравнивает с пустыми ячейками.
    Так вот, собственно, сам вопрос: как сделать так, чтобы диапазон G1:K40 выбирался именно с Листа2, а не с Листа1?

    Автор вопроса: aLeXeI

    Ответ ожидается по этому адресу

    Можно ли в VB узнать о том, что работает винт(дублировать лампочку работы винта)...
    Если да...
    То как привязать к TextBoxs`у...
    Например:
    Когда заработал винт(начал чё нить читать)... то в TextBoxs`е высвечивается "ON", а когда винт находится в пассивном режиме-"OFF"

    Автор вопроса: ALEX

    Ответ ожидается по этому адресу

    Люди, подскажите, как ияменять реярешение экрана программно?

    Ответы:

    Вопрос:

    Есть Винда 3.1.
    1) Как програмно узнать содержимое групп в диспетчере программ? (я имею ввиду как узнать какие ярлыки в группе).

    2) Можно как то програмно поменять строку заголовка любого открытого окна?

    Ответ:

    Автор ответа: alex

    Расположи на форме List1(список всех открытых окон), Text1(новый заголовок окна). Двойным щелчком мыши по списку меняй заголовки на свои!!!
    'Текст модуля

    Option Explicit
    Public Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
    Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
    Public Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
    Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Public Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long
    Public HandleCol As New Collection
    Public CaptCol As New Collection
    Public ClassNameCol As New Collection
    Public Function EnumWindowsProc(ByVal HandleW As Long, ByVal lPraram&) As Long
    Dim TextW As String, LenTextW As Long, res As Long
    HandleCol.Add HandleW
    TextW = VBA.String$(255, vbNullChar)
    LenTextW = VBA.Len(TextW)
    res = GetWindowText(HandleW, TextW, LenTextW)
    If res > 0 Then
    TextW = VBA.Left(TextW, res)
    CaptCol.Add TextW
    End If
    TextW = VBA.String$(255, vbNullChar)
    LenTextW = VBA.Len(TextW)
    res = GetClassName(HandleW, TextW, LenTextW)
    If res > 0 Then
    TextW = VBA.Left(TextW, res)
    ClassNameCol.Add TextW
    End If
    EnumWindowsProc = 1
    End Function

    'Текст формы
    Private Sub Form_Load()
    On Error Resume Next
    Dim item As Variant, res As Long
    res = EnumWindows(AddressOf EnumWindowsProc, 0&)
    res = 0
    For Each item In CaptCol
    List1.AddItem item
    res = res + 1
    If res > (CaptCol.Count - 1) Then Exit For
    Next item
    End Sub
    Private Sub List1_DblClick()
    a = FindWindow(vbNullString, List1.List(List1.ListIndex))
    SetWindowText a, Text1.Text
    List1.Clear
    Form_Load
    End Sub

    Вопрос:

    Как лучше выполнять процедуру каждые 2 сек.? Я пользуюсь таймером, но переодически получаю "Msgsrv32 not responding". Может это не связано...

    Ответ:

    Автор ответа: Kurt Haeldar

    Скорее всего это не глюк таймера, а какого-то другого приожения, поскольку у меня такого никогда не возникало. Таймер исправно работает.

    Вопрос:

    Как в VB6 зделать ссылку на файл (любой), чтобы его открыть (запустить)?

    p.s. Хочу зделать Авторан для CD!

    Ответ:

    Автор ответа: Duke Nukem

    Сделай LABEL чтоб при наведении на него менялся цвет и курсор а под ним напиши SHELL "PATCH\FILE" Если надо конкретней напиши лично мне

    Вопрос:

    Как в VB6 зделать ссылку на файл (любой), чтобы его открыть (запустить)?

    p.s. Хочу зделать Авторан для CD!

    Ответ:

    Автор ответа: Kurt Haeldar

    можно вопользоваться стандартным действием:

    Shell ( в кавычках то, что будем запускать )

    Вставить это нужно будет либо на кнопку, либо на то, что запускает нужное приложение.

    Вопрос:

    А как сделать переяагруяку или выключение компьютера программно (у меня Visual Basic 6.0)?

    Ответ:

    Автор ответа: Сергей

    Разместите в модуле:

    Public Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, _
    ByVal dwReserved As Long) As Long

    Public Const EWX_LOGOFF = 0
    Public Const EWX_SHUTDOWN = 1
    Public Const EWX_REBOOT = 2
    Public Const EWX_FORCE = 4

    А это в коде:

    Dim s As Long

    'Так можно сделать Shut down
    s = ExitWindowsEx(EWX_SHUTDOWN, 0&)

    'Так можно сделать Log off
    s = ExitWindowsEx(EWX_LOGOFF, 0&)

    'А так Reboot
    s = ExitWindowsEx(EWX_REBOOT, 0&

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 62.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    У меня в пятницу рухнула Win XP Pro напрочь (даже FAT32 порушился, наверное вирус или последствия установки Visual Studio .Net). Все данные за последние несколько дней исчезли. Поэтому прошу всех, кто отсылал вопросы и ответы в раздел Вопрос/Ответ с пятницы по сей день, направьте мне их ещё раз...
    Читайте!

    Содержание выпуска
    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 02.06.2002 06:16 | Раздел: Примеры кода | Автор: Неизвестный автор

    AutoEnter - Пример как можно организовать автозавершение ввода текста в ListBox. Все сделано очень грамотно и, самое главное, работает. Обязательно посмотрите это очень интересный пример.

    Дата: 01.06.2002 09:09 | Раздел: Статьи по VB | Автор: Dydl

    Изменение размеров элементов управления внутри форм с изменяемыми границами - Интерфейс пользователя, популяризированный компанией Microsoft, быстро завоевал пользователей своим чрезвычайным удобством. Главным принципом организации этого интерфейса можно считать то, что каждое приложение состоит из одного или более окон. Мы можем открыть несколько приложений и работать с ними одновременно. При этом одним из замечательных свойств окон является возможность их произвольного размещения на экране монитора.

    Дата: 29.05.2002 10:17 | Раздел: ActiveX контролы | Автор: Ковалев Сергей

    TransparentPicBox - Изначально этот контрол имеет прозрачный фон и при запуске программы не виден на экране (как контрол Image). На нем можно рисовать такими операторами, как Line, Pset, Circle. Так как контрол реализует прозрачность, то в нем определен прозрачный цвет равный -1. Т.е. Вы можете закрасить этот контрол каким-либо цветом, а затем рисовать на нем прозрачные линии.

    Дата: 29.05.2002 04:43 | Раздел: Статьи по VB | Автор: Сурменок Павел

    Работа со строками - Каждый язык программирования, даже скриптовые версии Java и VB, поддерживает работу со строками. Конечно, куда же без них. И в Visual Basic есть функции для работы со строками (поиск, замена, соединение, получение длины и др.). О них и о API функциях для работы со строками и пойдёт речь в данной статье.

    Последние 20 тем форума на VBNet.Ru:

    02:38 / 2 июн. Удаление строк в Excel на VBA. | Ответов: 0
    16:00 / 1 июн. Winsock и об отправке пакетов.. %( | Ответов: 1
    10:00 / 1 июн. Декомпилятор | Ответов: 1
    21:00 / 31 май. Про глюк форума | Ответов: 1
    20:47 / 31 май. Лезет ли Flash в .RES ... А альтернатива есть?... | Ответов: 0
    13:07 / 31 май. Dialogs | Ответов: 1
    12:42 / 31 май. Редактор с подсветкой синтаксиса... | Ответов: 3
    10:34 / 31 май. Алгоритм решения уравнений 4 степени | Ответов: 0
    10:26 / 31 май. Просмотр содержимого dll файла | Ответов: 1
    09:49 / 31 май. DDE | Ответов: 1
    08:39 / 31 май. NT Service | Ответов: 1
    04:09 / 31 май. Изменения в файле | Ответов: 1
    20:47 / 30 май. Звонилка до провайдера??? | Ответов: 1
    16:03 / 30 май. Algorithm Project Ring | Ответов: 1
    11:16 / 30 май. RichTextBox + *.mdb: подскажите подход! | Ответов: 2
    09:44 / 30 май. Visual Basic Script | Ответов: 1
    06:30 / 30 май. Работа программы в Win95 и NT | Ответов: 1
    01:36 / 30 май. Про др. трэйнер разговор...> | Ответов: 1
    00:48 / 30 май. Помогите! VB.NET Проблемы Компиляции | Ответов: 3
    22:44 / 29 май. Перечисление ключей реестра | Ответов: 1

    Последние поступления в Библиотеку кодов:

    наверх

    Новости сайта VBMania

    • 15.04 - В связи с резким увеличением числа вопросов, поступающих на e-mail администрации сайта, было решено не дожидаться открытия форума, и начать отвечать на вопросы прямо на главной странице. Обсуждению последней новости ответы на вопросы не помешают. Вашего совета ждут, на ваш вопрос ответят.
    • 25.01 - Сегодня открылся новый раздел, в котором вы можете найти ссылки на целую кучу книг по тематике VB и около него.
    • 22.01 - 22 января вышел второй номер он-лайн журнала о Visual Basic 'VB Мания'. В нем можно почитать авторские статьи в уже устоявшихся разделах: Технологии, Система, Графика, Профессия, Человечество и Юмор. Так же не обошлось без новшеств: появился новый раздел dotNET и особенно рецензии ActiveX-компонентов. Обязательно заходите.
    • 17.12 - В связи с тем что форум не горел желаением вести себя так, как должен обычный, порядочный форум, мы его прикрыли для проведения разъяснительных мероприятий. Надеемся, что они не затянутся и форум образумится.
    • 06.12 - С сегодняшнего дня все желающие могут добавлять свои новости и статьи в наши архивы.
      Да здраствует открытость!
    • 27.11 - Наконец-то, после долгих дней и бессонных ночей это свершилось! Сайт объявляется открытым! Непременно прочитайте первый номер нашего журнала. Оцените наши дополнительные проекты. И конечно мы ждем ваших откликов в гостевой книге и по почте.
    • 01.12 - Произошло несколько косметических улучшений, касающихся исключительно удобства работы с сайтом. Во-первых, можно видеть количество записей обсуждения новостей на главной странице; а во-вторых чуточку подправились директории.
      Оценяйте!

    наверх

    Новости сайта Азбука VB

    • 1 мая 2001 года
      Представление всех компрьютеров в сети (сетевое окружение). Показывается, как можно представить все компрьютеры в сети и сетевое окружение. Показывает все сервера, совместно используемые ресурсы и принтеры в данной сети. Используются Api-функции WNetOpenEnum, WNetEnumResource и WNetCloseEnum.
      Пример смены Региональных Установок с помощью Sendkeys, без применения API функций (Win95/98). Показывается, как можно произвести смену Региональных Установок с помощью Sendkeys, без применения API функций (Win95/98)
      Пример отправки сообщений в локальной сети - NT/Win2000. Показывается, как можно отправлять сообщения на компьютеры находящиеся в локальной сети. Используются API-функции NetMessageBufferSend, GetUserName, GetComputerName.
      Отправка писем с Attach и без него на основе MAPI. Отправка писем с Attach и без него на основе MAPI. Используется Microsoft MAPI Controls 6.0
      Kак в VBA сделать чтобы картинка, либо другое окно появлялось после запуска макроса и через некоторое время сама закрывалась. Показывается, как в VBA сделать чтобы картинка, либо другое окно появлялось после запуска макроса и через некоторое время сама закрывалась.
      Полоска подчеркивающая меню - 3 (динамика). Дается совет, как сделать динамическую полоску подчеркивающую меню.

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Нет вопросов.

    Ответы:

    Нет ответов.
    Можете заполнить эту форму, либо отослать вопрос     СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 63.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.
Новости сайта IgorykSoft и советы по программированию

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый 63-ий выпуск.
    Читайте!

    Содержание выпуска
    • Книги

    • Получение информации о Windows, используя GetSystemInfo.
    • Как узнать, какая операционная система установлена: Win98 или NT
    • Определить, как долго запущена Windows
    • Определить способ запуска Windows
    • Определение рабочей области Windows
    • Выключение/перезагрузка Windows

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Получение информации о Windows, используя GetSystemInfo.

    Расположите на форме элемент CommandButton.

    Private Type SYSTEM_INFO
    dwOemID As Long
    dwPageSize As Long
    lpMinimumApplicationAddress As Long
    lpMaximumApplicationAddress As Long
    dwActiveProcessorMask As Long
    dwNumberOrfProcessors As Long
    dwProcessorType As Long
    dwAllocationGranularity As Long
    dwReserved As Long
    End Type
    Private Type OSVERSIONINFO
    dwOSVersionInfoSize As Long
    dwMajorVersion As Long
    dwMinorVersion As Long
    dwBuildNumber As Long
    dwPlatformId As Long
    szCSDVersion As String * 128
    End Type
    Private Type MEMORYSTATUS
    dwLength As Long
    dwMemoryLoad As Long
    dwTotalPhys As Long
    dwAvailPhys As Long
    dwTotalPageFile As Long
    dwAvailPageFile As Long
    dwTotalVirtual As Long
    dwAvailVirtual As Long
    End Type
    Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (LpVersionInformation As OSVERSIONINFO) As Long
    Private Declare Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer As MEMORYSTATUS)
    Private Declare Sub GetSystemInfo Lib "kernel32" (lpSystemInfo As SYSTEM_INFO)
    Const PROCESSOR_INTEL_386 = 386
    Const PROCESSOR_INTEL_486 = 486
    Const PROCESSOR_INTEL_PENTIUM = 586
    Const PROCESSOR_MIPS_R4000 = 4000
    Const PROCESSOR_ALPHA_21064 = 21064
    Sub SystemInformation()
    Dim msg As String ' Status information.
    Dim NewLine As String ' New-line.
    Dim ret As Integer ' OS Information
    Dim ver_major As Integer ' OS Version
    Dim ver_minor As Integer ' Minor Os Version
    Dim Build As Long ' OS Build
    NewLine = Chr(13) + Chr(10) ' New-line.
    ' Get operating system and version.
    Dim verinfo As OSVERSIONINFO
    verinfo.dwOSVersionInfoSize = Len(verinfo)
    ret = GetVersionEx(verinfo)
    If ret = 0 Then
    MsgBox "Error Getting Version Information"
    End
    End If
    'MsgBox verinfo.dwPlatformId
    Select Case verinfo.dwPlatformId
    Case 0
    msg = msg + "Windows 32s "
    Case 1
    msg = msg + "Windows 95 "
    Case 2
    msg = msg + "Windows NT "
    End Select

    ver_major = verinfo.dwMajorVersion
    ver_minor = verinfo.dwMinorVersion
    Build = verinfo.dwBuildNumber
    msg = msg & ver_major & "." & ver_minor
    msg = msg & " (Build " & Build & ")" & NewLine & NewLine

    ' Get CPU type and operating mode.
    Dim sysinfo As SYSTEM_INFO
    GetSystemInfo sysinfo
    msg = msg + "CPU: "
    'MsgBox sysinfo.dwProcessorType
    Select Case sysinfo.dwProcessorType
    Case PROCESSOR_INTEL_386
    msg = msg + "Intel 386" + NewLine
    Case PROCESSOR_INTEL_486
    msg = msg + "Intel 486" + NewLine
    Case PROCESSOR_INTEL_PENTIUM
    msg = msg + "Intel Pentium" + NewLine
    Case PROCESSOR_MIPS_R4000
    msg = msg + "MIPS R4000" + NewLine
    Case PROCESSOR_ALPHA_21064
    msg = msg + "DEC Alpha 21064" + NewLine
    Case Else
    msg = msg + "(unknown)" + NewLine
    End Select
    msg = msg + NewLine
    ' Get free memory.
    Dim memsts As MEMORYSTATUS
    Dim memory As Long
    GlobalMemoryStatus memsts
    memory = memsts.dwTotalPhys
    msg = msg + "Total Physical Memory: "
    msg = msg + Format(memory \ 1024, "###,###,###") + "K" + NewLine
    memory = memsts.dwAvailPhys
    msg = msg + "Available Physical Memory: "
    msg = msg + Format(memory \ 1024, "###,###,###") + "K" + NewLine
    memory = memsts.dwTotalVirtual
    msg = msg + "Total Virtual Memory: "
    msg = msg + Format(memory \ 1024, "###,###,###") + "K" + NewLine
    memory = memsts.dwAvailVirtual
    msg = msg + "Available Virtual Memory: "
    msg = msg + Format(memory \ 1024, "###,###,###") + "K" + NewLine
    MsgBox msg, vbOKOnly, "System Info"
    End Sub

    Private Sub Command1_Click()
    Call SystemInformation
    End Sub

    наверх

    Как узнать, какая операционная система установлена: Win98 или NT

    Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long
    Private Type OSVERSIONINFO
    dwOSVersionInfoSize As Long
    dwMajorVersion As Long
    dwMinorVersion As Long
    dwBuildNumber As Long
    dwPlatformId As Long
    szCSDVersion As String * 128
    End Type
    Const VER_PLATFORM_WIN32s = 0
    Const VER_PLATFORM_WIN32_WINDOWS = 1
    Const VER_PLATFORM_WIN32_NT = 2
    Public Function WinNT() As Boolean
    Dim info As OSVERSIONINFO
    info.dwOSVersionInfoSize = Len(info)
    GetVersionEx info
    WinNT = (info.dwPlatformId = VER_PLATFORM_WIN32_NT)
    End Function
    Public Function Win98() As Boolean
    Dim info As OSVERSIONINFO
    info.dwOSVersionInfoSize = Len(info)
    GetVersionEx info
    Win98 = (info.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS And info.dwMinorVersion >= 10 And info.dwMajorVersion = 4)
    End Function

    Private Sub Form_Resize()
    bWindowsNT = WinNT()
    Print bWindowsNT
    bWindows98 = Win98()
    Print bWindows98
    End Sub

    наверх

    Определить, как долго запущена Windows

    'Этот пример покажет время в милисекундах (1000 миллисекунд = 1 секунда). Если хотите получить секунды - разделите на 1000.

    Private Declare Function GetTickCount Lib "kernel32" () As Long
    Private Sub Form_Load()
    MsgBox GetTickCount()
    End Sub

    'Более подробнее расписанная статистика.
    Private Declare Function GetTickCount Lib "kernel32" () As Long
    Private Sub Command1_Click()
    Dim a_hour, a_minute, a_second
    a = Format(GetTickCount() / 1000, "0") 'всего секунд
    a_hour = Int(a / 3600)
    a = a - a_hour * 3600
    a_minute = Int(a / 60)
    a_second = a - a_minute * 60
    MsgBox "Ваш компьютер работает в эту загрузку " & Str(a_hour) & " часов " & Str(a_minute) & " минут" & Str(a_second) & " секунд"
    End Sub

    'ИЛИ ТАКОЙ ПРИМЕР

    'Расположите на форме элемент ListBox и элемент Timer

    Private Declare Function GetTickCount& Lib "Kernel32" ()

    Private Sub Form_Load()
    Timer1.Interval = 1000
    End Sub

    Private Sub Timer1_Timer()
    MS = GetTickCount()
    SekGesamt = MS \ 1000
    Std = (SekGesamt \ 3600)
    Min = (SekGesamt - (Std * 3600)) \ 60
    Sek = (SekGesamt - (Std * 3600) - (Min * 60))
    t = Format(Std, "00") & ":" & Format(Min, "00") & ":" & Format(Sek, "00")
    Label1.Caption = t
    End Sub

    наверх

    Определить способ запуска Windows

    Данный пример покажет, в каком режиме запуска работает операционная система Windows

    Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
    Private Const SM_CLEANBOOT = 67
    Private Sub Form_Load()
    Select Case GetSystemMetrics(SM_CLEANBOOT)
    Case 1: MsgBox "Safe Mode"
    Case 2: MsgBox "Safe Mode with Network support."
    Case Else: MsgBox "Windows is running normally."
    End Select
    End Sub

    наверх

    Определение рабочей области Windows

    то есть часть экрана, не затененного панелью задач или другими прикладными областями Расположите на форме элемент CommandButton. Const SPI_GETWORKAREA = 48 Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long) As Long Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Private Sub Command1_Click() Dim lngTop, lngLeft, lngRight, lngBottom As Long Dim typRect As RECT Call SystemParametersInfo(SPI_GETWORKAREA, vbNull, typRect, 0) With typRect lngTop = .Top lngLeft = .Left lngRight = .Right lngBottom = .Bottom End With Print lngTop Print lngLeft Print lngRight Print lngBottom End Sub

    наверх

    Выключение/перезагрузка Windows

    Как показывает практика, вопрос выключения и перезагрузки Windows программно интересует очень многих. Я бы тоже хотел внести свою лепту в ответ на этот вопрос. Уже долгое время я пользуюсь этим примером. Что примечательно: при использовании данного примера, система поочередно опрашивает все процессы в системе, и если требуется в какой-либо программе сохранения каких-либо данных, то вы всегда можете сделать отмену процесса выключения компьютера. При использовании данного примера вы можете использовать одну из EWX_-констант.

    EWX_LOGOFF - вход в систему под новым именем
    EWX_SHUTDOWN - выключение компьютера
    EWX_REBOOT -перезагрузка компьютера
    EWX_FORCE - принудительный вход под новым именем

    'КОД ФОРМЫ

    Private Sub mnuCompOff_Click()
    Call ShutDown(EWX_SHUTDOWN)
    End Sub

    Private Sub mnuCompReboot_Click()
    Call ShutDown(EWX_REBOOT)
    End Sub

    'КОД МОДУЛЯ

    Private Const STANDARD_RIGHTS_REQUIRED = &HF0000
    Private Const READ_CONTROL = &H20000
    Private Const STANDARD_RIGHTS_READ = (READ_CONTROL)
    Private Const STANDARD_RIGHTS_WRITE = (READ_CONTROL)
    Private Const STANDARD_RIGHTS_EXECUTE = (READ_CONTROL)

    Public Enum TokenRights
    TOKEN_ASSIGN_PRIMARY = &H1
    TOKEN_DUPLICATE = &H2
    TOKEN_IMPERSONATE = &H4
    TOKEN_QUERY = &H8
    TOKEN_QUERY_SOURCE = &H10
    TOKEN_ADJUST_PRIVILEGES = &H20
    TOKEN_ADJUST_GROUPS = &H40
    TOKEN_ADJUST_DEFAULT = &H80
    TOKEN_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or TOKEN_ASSIGN_PRIMARY Or TOKEN_DUPLICATE Or TOKEN_IMPERSONATE Or TOKEN_QUERY Or TOKEN_QUERY_SOURCE Or TOKEN_ADJUST_PRIVILEGES Or TOKEN_ADJUST_GROUPS Or TOKEN_ADJUST_DEFAULT)
    TOKEN_READ = (STANDARD_RIGHTS_READ Or TOKEN_QUERY)
    TOKEN_WRITE = (STANDARD_RIGHTS_WRITE Or TOKEN_ADJUST_PRIVILEGES Or TOKEN_ADJUST_GROUPS Or TOKEN_ADJUST_DEFAULT)
    TOKEN_EXECUTE = (STANDARD_RIGHTS_EXECUTE)
    End Enum

    Public Enum PrivilegeAttributes
    SE_PRIVILEGE_ENABLED_BY_DEFAULT = &H1
    SE_PRIVILEGE_ENABLED = &H2
    SE_PRIVILEGE_USED_FOR_ACCESS = &H80000000
    End Enum

    Public Enum ExitOptions
    EWX_LOGOFF = 0
    EWX_SHUTDOWN = 1
    EWX_REBOOT = 2
    EWX_FORCE = 4
    End Enum

    Public Enum TokenAccess
    TokenUser = 1
    TokenGroups = 2
    TokenPrivileges = 3
    TokenOwner = 4
    TokenPrimaryGroup = 5
    TokenDefaultDacl = 6
    TokenType = 8
    TokenImpersonationLevel = 9
    TokenStatistics = 10
    End Enum

    Type LUID
    lowPart As Long
    HighPart As Long
    End Type

    Type LUID_AND_ATTRIBUTES
    pLuid As LUID
    Attributes As PrivilegeAttributes
    End Type

    Type PTOKEN_PRIVILEGES
    PrivilegeCount As Long
    Privileges(0) As LUID_AND_ATTRIBUTES
    End Type

    Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
    Private Declare Function OpenProcessToken Lib "advapi32" (ByVal ProcessHandle As Long, ByVal DesiredAccess As TokenRights, ByRef TokenHandle As Long) As Long
    Private Declare Function LookupPrivilegeValueA Lib "advapi32" (ByVal lpSystemName As String, ByVal lpName As String, ByRef lpLuid As LUID) As Long
    Private Declare Function AdjustTokenPrivileges Lib "advapi32" (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, ByRef NewState As PTOKEN_PRIVILEGES, ByVal BufferLength As Long, ByRef PreviousState As Long, ByRef ReturnLenght As Long) As Long
    Private Declare Function AdjustTokenPrivilegesOld Lib "advapi32" Alias "AdjustTokenPrivileges" (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, ByRef NewState As PTOKEN_PRIVILEGES, ByVal BufferLength As Long, ByRef PreviousState As PTOKEN_PRIVILEGES, ByRef ReturnLenght As Long) As Long
    Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As ExitOptions, ByVal dwReserved As Long) As Long

    Public Function ShutDown(Operation As ExitOptions) As Long
    Dim lngProcess As Long
    Dim lngReturn As Long
    Dim lngToken As Long
    Dim udtLUID As LUID
    Dim lngTokenPrivileges As TokenRights
    Dim udtTokenPrivNew As PTOKEN_PRIVILEGES
    lngProcess = GetCurrentProcess()
    lngTokenPrivileges = TOKEN_ADJUST_PRIVILEGES
    lngReturn = OpenProcessToken(lngProcess, lngTokenPrivileges, lngToken)
    lngReturn = LookupPrivilegeValueA(vbNullString, "SE_SHUTDOWN_NAME", udtLUID)
    udtTokenPrivNew.PrivilegeCount = 1
    udtTokenPrivNew.Privileges(0).Attributes = SE_PRIVILEGE_ENABLED
    udtTokenPrivNew.Privileges(0).pLuid = udtLUID
    lngReturn = AdjustTokenPrivileges(lngToken, 0, udtTokenPrivNew, 0&, 0, 0&)
    ShutDown = ExitWindowsEx(Operation, 0)
    End Function

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Меркуль Евгений Юрьевич

    Ответ ожидается по этому адресу

    У меня несколько вопросов (пишу на VBasice 3.0 и Visual Basic 6.0) :
    1)Где можно найти программу для перевода из VB любой версии в DELPHI (желательно 6-версии)?
    2)Как сделать , чтобы программа автоматически запускалась после загрузки КОМПа?
    3) Как работать с реестром?
    4) Допустим я нашел нужную мне функцию winAPI, как определить, какие к ней нужны константы и тд?
    6)Можно ли сделать так, чтобы тому, кому я даю проги не надо было устанавливать VBasic 3.0 или 6.0 ?

    Автор вопроса: Sergey

    Ответ ожидается по этому адресу

    Как считать данные ия файлов dbf с помощью ADO?

    Автор вопроса: OLEG

    Ответ ожидается по этому адресу

    Никто не янает как проверить яапущенность какой-либо программы.

    Автор вопроса: Анатолий

    Ответ ожидается по этому адресу

    Можно ли с помощью VB распаковать или упаковать файл, неприменяя программы-архиваторы и оператор Shell.В частности интересует возможность распаковывать файлы, упакованые HA и ZIP архиваторами.

    Автор вопроса: sv

    Ответ ожидается по этому адресу

    Как поместить свою программу в SysTray, где отображаются часы и раскладка клавиатуры.

    Автор вопроса: DIM

    Ответ ожидается по этому адресу

    Подскажите как можно отследить обь?м информации прошедшей чере инетсоединение

    Автор вопроса: Real

    Ответ ожидается по этому адресу

    Подскажите пожалуйста, как через VB получить данные о том кто в текущий момент подключен к компьютеру (к расшареным папкам) и кто что скачивает, и как разорвать нежелательное соединение?

    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

    1.Подскажите, как в VB динамически соядавать массивы: в ходе программы яаполняется список.Каждому элементу списка должен соответствовать массив.Сколько будет элементов-неиявестно.Так как давать имена этим динамически соядаваемым массивам.
    2.Как соядавать таблицы Word ия VB.

    Автор вопроса: Николай

    Ответ ожидается по этому адресу

    Поскажите пожалуйсто какой должен быть код для того чтобы провести диагностику "железа" компьютера,вернее узнать чипсет,видеокарту и другие установленные комплектующие ?

    Автор вопроса: GEKA

    Ответ ожидается по этому адресу

    Подскажите плиzzzzz где можно найти инфо:

    1)Как при помощи VB работать с Active Directory
    2)Как при помощи VB работать с BROADCAST

    Автор вопроса: sv

    Ответ ожидается по этому адресу

    Как использовать параметры в командной строке при загрузке программы, откомпилированной в EXE файл?

    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

    Пишу программу, где по ходу яаполнения списка сояда?тся динамический массив. На каждый элемент списка-один массив.Элементов может быть сколько угодно.Как давать имена таким массивам? По идее List1.List(i)в цикле, но на такие имена VB ругается.

    Автор вопроса: alek

    Ответ ожидается по этому адресу

    Можно ли программно записывать в файл ресурсов? И если можно,как его оттуда вынемать.

    Автор вопроса: exhumator

    Ответ ожидается по этому адресу

    Люди, подскажите, плз, как можно сделать так, чтобы моя прога при свертывании окна кидалась не на панель задач, а в трей.

    Автор вопроса: sv

    Ответ ожидается по этому адресу

    Программа должна открыть файл A.TXT в своем каталоге. Как это осуществить, если путь к программе меняется?

    Автор вопроса: Shark

    Ответ ожидается по этому адресу

    1.Как проследить яапуск конкретной программы?
    2.Как получить список открытых программ?

    Автор вопроса: darknez@mail.kz

    Ответ ожидается по этому адресу

    как можно назначить hotkey, для вызова проги, т.е. я свернул её в трэй и мне надо её вызвать.

    Автор вопроса: sv

    Ответ ожидается по этому адресу

    1) Есть прога убирающая с экрана значки, а как убрать значки из Панели Задач.
    2) Как програмно изменить разрешение экрана.

    Автор вопроса: White_Max

    Ответ ожидается по этому адресу

    Как отключить клавиатуру?

    Автор вопроса: Alexey

    Ответ ожидается по этому адресу

    Подскажите как объявлять перечисления на VB_6.0.

    Ответы:

    Вопрос:

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

    Private Sub CommandButton1_Click()
    Dim cell As Range
    Dim ans(200) As Integer
    Dim err
    err = 0
    i = 0
    '--------Перебор ячеек с вводимыми значениями-------
    For Each cell In Range("B3:F42").Cells
    ans(i) = cell
    i = i + 1
    Next cell
    '--------Переход на лист с эталонными значениями----
    Sheets("Лист2").Select
    '--------Перебор ячеек с правильными значениями и сравнение-------
    i = 0
    For Each cell In Range("G1:K40").Cells
    If cell <> ans(i) Then
    err = err + 1
    End If
    i = i + 1
    Next cell
    '--------Возврат на лист с вводимыми значениями-----
    Sheets("Лист1").Select
    End Sub

    Происходит же следующее:
    - Он выбирает введенные значения с Листа1
    - Переходит на Лист2 (по крайней мере, на экране это видно)
    А вот диапазон G1:K40 он все равно берет с Листа1 (как бы насквозь Листа2). И, следовательно, сравнивает с пустыми ячейками.
    Так вот, собственно, сам вопрос: как сделать так, чтобы диапазон G1:K40 выбирался именно с Листа2, а не с Листа1?

    Ответ:

    Автор ответа: Яблоновский Я.А.

    Попробуй присвоить диапазону префикс - имя нужного листа:

    Range("Лист2!G1:K40")

    У меня такое обращение работало (Excel 2000 под Win98SE).

    Вопрос:

    Можно ли в VB узнать о том, что работает винт(дублировать лампочку работы винта)...
    Если да...
    То как привязать к TextBoxs`у...
    Например:
    Когда заработал винт(начал чё нить читать)... то в TextBoxs`е высвечивается "ON", а когда винт находится в пассивном режиме-"OFF"

    Ответ:

    Автор ответа: audit

    ' Вот что у меня получилось:

    Sub test1()
    Dim ans(200) As Integer
    Dim Cell As Range
    Dim err, I
    err = 0
    I = 0
    ' Переходить на другой лист не обязательно, можно брать значения из любого листа
    '--------Перебор ячеек с вводимыми значениями-------
    For Each Cell In Sheets("Лист1").Range("B3:F42").Cells
    ans(I) = Cell
    I = I + 1
    Next Cell
    '--------Перебор ячеек с правильными значениями и сравнение-------
    I = 0
    For Each Cell In Sheets("Лист2").Range("G1:K40").Cells
    If Cell <> ans(I) Then err = err + 1
    I = I + 1
    Next Cell
    End Sub

    Еще желательно сравнивате не ячейки, а их значения (cells.value), т.к. возможны траблы с различными форматами данных (сравнение "1" и 1 !!!!).

    Использовал VBA, Office XP,Win98SE
    Если что не получилось, пиши:
    pim76@mail.ru

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 64.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый 64-ый выпуск рассылки!!!
    Читайте!

    Содержание выпуска
    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 06.06.2002 06:14 | Раздел: Примеры кода | Автор: Перминов Андрей

    WinampAPI - Если вы еще не видели ни одного примера управления Winamp'ом из собственной программы - тогда вот первый, к тому же в нем новый класс WinampAPI, в котором реализованы основные функции управления этого замечательного агрегата, живущего почти что в каждом компьютере.

    Дата: 04.06.2002 06:12 | Раздел: Примеры кода | Автор: Черенков Дмитрий

    HorsReb - Программа для блокирования перезагрузки и выключения компьютера программным способом. Когда программе приходит сообщение о закрытии, она сопротивляется и просит ввести пароль. Пароль сохраняет в реестре. При несанкционированном доступе заносит его в журнал. Единственный недостаток, в Windows NT, XP, 2000 прогу можно убить CTRL-ALT-DEL.

    Дата: 02.06.2002 06:16 | Раздел: Примеры кода | Автор: Неизвестный автор

    AutoEnter - Пример как можно организовать автозавершение ввода текста в ListBox. Все сделано очень грамотно и, самое главное, работает. Обязательно посмотрите это очень интересный пример.

    Последние 20 тем форума на VBNet.Ru:

    07:51 / 8 июн. ВНИМАНИЕ! Завтра будет новый форум! | Ответов: 3
    02:44 / 8 июн. Два вопроса по внешним DLL (+) | Ответов: 1
    01:48 / 8 июн. Наследование | Ответов: 1
    20:15 / 7 июн. Сортировка базы | Ответов: 2
    15:37 / 7 июн. Как через API вытащить размер каталога. | Ответов: 1
    15:30 / 7 июн. Help NetShareEnum | Ответов: 1
    15:23 / 7 июн. Crystal Report... HELP!!!! | Ответов: 3
    13:48 / 7 июн. Private, Public и др. | Ответов: 2
    12:31 / 7 июн. DataReport | Ответов: 1
    01:41 / 7 июн. Должен же быть способ лучше? (+) | Ответов: 1
    15:51 / 23 мар. попробуй так | Ответов: 1
    15:31 / 23 мар. zapusk ishodnikov s neta | Ответов: 0
    09:27 / 23 мар. Error: Logon session doesn't exist | Ответов: 0
    03:21 / 23 мар. Перекодировка текста WIN/DOS | Ответов: 1
    03:03 / 23 мар. эй тут есть крутые или нет? | Ответов: 1
    22:33 / 22 мар. Как минимизировать любое окно проги (игры)???? | Ответов: 0
    20:59 / 22 мар. Outlook отправка почты | Ответов: 0
    17:59 / 22 мар. Сортировка таблицы в базе данных | Ответов: 1
    19:58 / 21 мар. Печать рисунка | Ответов: 0
    14:32 / 21 мар. Точка и восклицательный знак | Ответов: 1

    Последние поступления в Библиотеку кодов:

    наверх

    Новости сайта VBMania

    • 15.04 - В связи с резким увеличением числа вопросов, поступающих на e-mail администрации сайта, было решено не дожидаться открытия форума, и начать отвечать на вопросы прямо на главной странице. Обсуждению последней новости ответы на вопросы не помешают. Вашего совета ждут, на ваш вопрос ответят.
    • 25.01 - Сегодня открылся новый раздел, в котором вы можете найти ссылки на целую кучу книг по тематике VB и около него.
    • 22.01 - 22 января вышел второй номер он-лайн журнала о Visual Basic 'VB Мания'. В нем можно почитать авторские статьи в уже устоявшихся разделах: Технологии, Система, Графика, Профессия, Человечество и Юмор. Так же не обошлось без новшеств: появился новый раздел dotNET и особенно рецензии ActiveX-компонентов. Обязательно заходите.
    • 17.12 - В связи с тем что форум не горел желаением вести себя так, как должен обычный, порядочный форум, мы его прикрыли для проведения разъяснительных мероприятий. Надеемся, что они не затянутся и форум образумится.
    • 06.12 - С сегодняшнего дня все желающие могут добавлять свои новости и статьи в наши архивы.
      Да здраствует открытость!
    • 27.11 - Наконец-то, после долгих дней и бессонных ночей это свершилось! Сайт объявляется открытым! Непременно прочитайте первый номер нашего журнала. Оцените наши дополнительные проекты. И конечно мы ждем ваших откликов в гостевой книге и по почте.
    • 01.12 - Произошло несколько косметических улучшений, касающихся исключительно удобства работы с сайтом. Во-первых, можно видеть количество записей обсуждения новостей на главной странице; а во-вторых чуточку подправились директории.
      Оценяйте!

    наверх

    Новости сайта Азбука VB

    • 1 мая 2001 года
      Представление всех компрьютеров в сети (сетевое окружение). Показывается, как можно представить все компрьютеры в сети и сетевое окружение. Показывает все сервера, совместно используемые ресурсы и принтеры в данной сети. Используются Api-функции WNetOpenEnum, WNetEnumResource и WNetCloseEnum.
      Пример смены `Региональных Установок` с помощью Sendkeys, без применения API функций (Win95/98). Показывается, как можно произвести смену Региональных Установок с помощью Sendkeys, без применения API функций (Win95/98)
      Пример отправки сообщений в локальной сети - NT/Win2000. Показывается, как можно отправлять сообщения на компьютеры находящиеся в локальной сети. Используются API-функции NetMessageBufferSend, GetUserName, GetComputerName.
      Отправка писем с Attach и без него на основе MAPI. Отправка писем с Attach и без него на основе MAPI. Используется Microsoft MAPI Controls 6.0
      Kак в VBA сделать чтобы картинка, либо другое окно появлялось после запуска макроса и через некоторое время сама закрывалась. Показывается, как в VBA сделать чтобы картинка, либо другое окно появлялось после запуска макроса и через некоторое время сама закрывалась.
      Полоска подчеркивающая меню - 3 (динамика). Дается совет, как сделать динамическую полоску подчеркивающую меню.

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     AngySacin

    Ответ ожидается по этому адресу

    Можно ли програмно вставить сообщение в папку "Исходящие" Outlook Express(не Microsoft Outlook!)? (VB6)

    Автор вопроса: Виталий

    Ответ ожидается по этому адресу

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

    Автор вопроса: Alex

    Ответ ожидается по этому адресу

    Как сделать, чтобы с яапуском программы яапускалась моя программа (например, с InternetExplorer,Notepage или Soliter). Может есть какой-то ключ в реестре, или есть другой способ?

    Ответы:

    Вопрос:

    У меня несколько вопросов (пишу на VBasice 3.0 и Visual Basic 6.0) :
    1)Где можно найти программу для перевода из VB любой версии в DELPHI (желательно 6-версии)?
    2)Как сделать , чтобы программа автоматически запускалась после загрузки КОМПа?
    3) Как работать с реестром?
    4) Допустим я нашел нужную мне функцию winAPI, как определить, какие к ней нужны константы и тд?
    6)Можно ли сделать так, чтобы тому, кому я даю проги не надо было устанавливать VBasic 3.0 или 6.0 ?

    Ответ:

    Автор ответа: Kurt Haeldar

    2. Эту прогу нужно будет прописать в автозагрузку.
    4. Если работать с VB - то обязательно нужно заглянуть на сайт www.allapi.net. Там лежит прога API-Guide, очень удобный справочник по API функциям. В Дэлфи параметры функций можно узнать из справки, а вот список самих функций там все равно отсутствует.
    6. Просто создать установочный пакет при помощи Setup Toolkit в самом VB. Другое дело, что SETUP для программы, которая делает всего лишь 2+2=5 :-))) этот SETUP будет весить никак не менее 2 с лишним Mb

    Вопрос:

    У меня несколько вопросов (пишу на VBasice 3.0 и Visual Basic 6.0) :
    1)Где можно найти программу для перевода из VB любой версии в DELPHI (желательно 6-версии)?
    2)Как сделать , чтобы программа автоматически запускалась после загрузки КОМПа?
    3) Как работать с реестром?
    4) Допустим я нашел нужную мне функцию winAPI, как определить, какие к ней нужны константы и тд?
    6)Можно ли сделать так, чтобы тому, кому я даю проги не надо было устанавливать VBasic 3.0 или 6.0 ?

    Ответ:

    Автор ответа: Игорь Шаронов

    1) скорее всего, нет такой
    2) http://vbnet.ru/faq/showtopic.asp?id=355 или http://vbnet.ru/faq/showtopic.asp?id=182
    6) сам пакет не надо устанавливать, достаточно установить пакет необходимым библиотек для запуска программ, написанных на ВБ6.0 весом около мегабайта. Если у пользователя Виндоуз-98, NT4.0 и выше, то ничего устанавливать не надо.

    Вопрос:

    У меня несколько вопросов (пишу на VBasice 3.0 и Visual Basic 6.0) :
    1)Где можно найти программу для перевода из VB любой версии в DELPHI (желательно 6-версии)?
    2)Как сделать , чтобы программа автоматически запускалась после загрузки КОМПа?
    3) Как работать с реестром?
    4) Допустим я нашел нужную мне функцию winAPI, как определить, какие к ней нужны константы и тд?
    6)Можно ли сделать так, чтобы тому, кому я даю проги не надо было устанавливать VBasic 3.0 или 6.0 ?

    Ответ:

    Автор ответа: Кершенгольц Андрей

    1) Мечтать не вредно. Однозначно перевести прогу с одного языка на другой вряд ли возможно. Все равно придется поработать ручками.
    2) Самое простое - помести ее в группу Автозагрузка (StartUp). Или в реестре -
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
    3) Через функции API. Если тебе хватит маленького кусочка реестра, то можно использовать функции VB (в VB 6.0 они точно есть, в 3.0 - не знаю) - GetSetting, SaveSetting и DeleteSetting. Они работают с веткой
    HKEY_CURRENT_USER\Software\VB and VBA Program Setting
    4) В VB 6.0 есть такая программулина (может встраиваться в оболочку) - API Text Viewer. Там все есть.
    6) А создать инсталляцию через Package and Deployment Wizard слабо?

    Вопрос:

    Как использовать параметры в командной строке при загрузке программы, откомпилированной в EXE файл?

    Ответ:

    Автор ответа: Игорь Шаронов

    Вам достаточно посмотреть здесь - http://vbnet.ru/faq/showtopic.asp?id=241 или здесь - http://vbnet.ru/faq/showtopic.asp?id=176

    Вопрос:

    Как использовать параметры в командной строке при загрузке программы, откомпилированной в EXE файл?

    Ответ:

    Автор ответа: Real

    dim CmdLine as string
    CmdLine = Command()
    ' В CmdLine хранятся параметры командной строки

    Вопрос:

    Как использовать параметры в командной строке при загрузке программы, откомпилированной в EXE файл?

    Ответ:

    Автор ответа: Анатолий

    Для того, чтобы обработать параметр, заданный в командной строке, в нужном месте(например, при открытии формы программы) необходимо использовать функцию Command().

    Dim strComm As String
    StrComm = Command()

    После этого в strComm окажется строка параметров запуска, ее и надо использовать...

    Вопрос:

    Как использовать параметры в командной строке при загрузке программы, откомпилированной в EXE файл?

    Ответ:

    Автор ответа: Кершенгольц Андрей

    В VB есть такая функция - Command (Command$). Первая возвращает командную строку в переменную типа Variant, вторая - в пеерменную типа String. Ну а дальше уже дело техники.

    Вопрос:

    Пишу программу, где по ходу яаполнения списка сояда?тся динамический массив. На каждый элемент списка-один массив.Элементов может быть сколько угодно.Как давать имена таким массивам? По идее List1.List(i)в цикле, но на такие имена VB ругается.

    Ответ:

    Автор ответа: Анатолий

    Вот небольшая иллюстрация: на форме два листбокса и кнопка

    Private Sub Command1_Click()
    Dim i As Integer
    Dim iList() As String
    For i = 1 To 10
    List1.AddItem Str$(i)
    Next
    ReDim iList(List1.ListCount)
    For i = 0 To List1.ListCount - 1
    iList(i + 1) = List1.List(i)
    Next
    For i = 1 To UBound(iList)
    List2.AddItem iList(i)
    Next
    End Sub

    Масссив объявлен без размерности, затем переопределен через Redim. Если нечто подобное делать после каждого обновления листвокса, то в массиве iList() всегда будет свежая инфа... Если нужно создавать именно массивы, а не элементы, то надо объявить массив массивов :-) через пользовательский тип, ну, примерно

    Type Mass
    UserMas(10) As String
    End Type
    Dim iList() as Mass

    Вопрос:

    Программа должна открыть файл A.TXT в своем каталоге. Как это осуществить, если путь к программе меняется?

    Ответ:

    Автор ответа: Kurt Haeldar

    Если меняет свое местоположение прога, то придется указывать полностью имя файла, который надо открыть.

    Вопрос:

    Программа должна открыть файл A.TXT в своем каталоге. Как это осуществить, если путь к программе меняется?

    Ответ:

    Автор ответа: Ivan

    Если запускаемый exe файл лежит в той же директории, что и текстовый файл, то:

    App.path & “\a.txt”

    Вопрос:

    Программа должна открыть файл A.TXT в своем каталоге. Как это осуществить, если путь к программе меняется?

    Ответ:

    Автор ответа: Мунгалов Андрей

    для этого есть функция App.Path

    возвращает путь откуда была запущена программа, одно замечание возвращенный путь не содержит на конце знак "\" его нужно добавить самостоятельно например так:

    progpath = App.Path & "\"

    Вопрос:

    Программа должна открыть файл A.TXT в своем каталоге. Как это осуществить, если путь к программе меняется?

    Ответ:

    Автор ответа: Анатолий

    Есть в VB6 параметр App.Path(дает путь к папке запущенного приложения) -

    strPath = App.Path & ["\" & ]"A.txt"

    То что в [] может и не понадобиться - надо проверять последний символ App.Path, и если это не "\", тогда ее добавить.

    Вопрос:

    Программа должна открыть файл A.TXT в своем каталоге. Как это осуществить, если путь к программе меняется?

    Ответ:

    Автор ответа: Ewgeniy

    Чтобы узнать место расположения программы:

    MsgBox App.Path

    Вопрос:

    Программа должна открыть файл A.TXT в своем каталоге. Как это осуществить, если путь к программе меняется?

    Ответ:

    Автор ответа: Real

    Команда App.path возвращает директорий откуда запускается программа. Но только нужно будет обработать два варианта, так как команда возвращает директорий либо со слэшем в конце либо без него, это зависит от того где лежит эзешка , в корне дисков С:\ или D:\ и т.п. или же в какой либо директории C:\xxx\ccc ....

    Вопрос:

    Программа должна открыть файл A.TXT в своем каталоге. Как это осуществить, если путь к программе меняется?

    Ответ:

    Автор ответа: Иван

    Используй app.path - даёт путь своей проги

    То есть имя твоего A.TXT = app.path & "\a.txt"

    Вопрос:

    Программа должна открыть файл A.TXT в своем каталоге. Как это осуществить, если путь к программе меняется?

    Ответ:

    Автор ответа: Кершенгольц Андрей

    App.Path возвращает путь к каталогу с программой (без символа "\")

    Вопрос:

    1.Как проследить яапуск конкретной программы?
    2.Как получить список открытых программ?

    Ответ:

    Автор ответа: Ivan

    Получение заголовка всех запущенных приложений.

    Public Declare Function GetDesktopWindow Lib "user32" () As Long
    Public Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
    Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
    Public Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
    Public Const GW_HWNDFIRST = 0
    Public Const GW_HWNDLAST = 1
    Public Const GW_HWNDNEXT = 2
    Public Const GW_HWNDPREV = 3
    Public Const GW_OWNER = 4
    Public Const GW_CHILD = 5

    Использование: Поместите на форму объекты ListBox1 и CommandButton1. В модуле формы поместите следующий код:

    Private Sub Command1_Click()
    Dim hwnd&
    Dim dummy&
    Dim strCaption$

    List1.Clear
    ' Рабочий стол - самое первое окно
    hwnd& = GetDesktopWindow()
    ' Первое дочернее окно - окно первого уровня
    hwnd& = GetWindow(hwnd&, GW_CHILD)
    ' Теперь получим заголовки окон всех уровней
    Do
    dummy& = GetWindowTextLength(hwnd&)
    If dummy <> 0 Then
    strCaption = String(dummy + 1, " ")
    dummy = GetWindowText(hwnd&, strCaption, dummy + 1)
    List1.AddItem strCaption
    End If

    hwnd& = GetWindow(hwnd&, GW_HWNDNEXT)
    Loop While hwnd& <> 0
    End Sub

    Вопрос:

    как можно назначить hotkey, для вызова проги, т.е. я свернул её в трэй и мне надо её вызвать.

    Ответ:

    Автор ответа: Игорь Шаронов

    Ответ на ваш вопрос вы можете найти здесь - http://vbnet.ru/faq/showtopic.asp?id=172

    Вопрос:

    1) Есть прога убирающая с экрана значки, а как убрать значки из Панели Задач.
    2) Как програмно изменить разрешение экрана.

    Ответ:

    Автор ответа: Игорь Шаронов

    2) Ответ смотрите тут - http://vbnet.ru/faq/showtopic.asp?id=130

    Вопрос:

    Как отключить клавиатуру?

    Ответ:

    Автор ответа: Игорь Шаронов

    Только глобально...

    Предупреждение: после запуска этого кода для активизации клавиатуры вам надо перезагрузить компьютер

    Shell "rundll32 keyboard,disable"

    Вопрос:

    Подскажите как объявлять перечисления на VB_6.0.

    Ответ:

    Автор ответа: Кершенгольц Андрей

    Через Enum. Например:

    Public Enum asd
    asd1 = 0
    asd2 = 27
    asd3 = 6678
    End Enum

    Можешь объявить переменные, например
    Dim sdf As asd

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 65.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.
Новости сайта IgorykSoft и советы по программированию

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    К сожалению, по техническим причинам выпуск не вышел вовремя...
    Читайте!

    Содержание выпуска
    • Книги

    • "Заморозить" Windows
    • Добавить ссылку или удалить все ссылки в меню Пуск|Документы
    • Местоположение системных папок
    • Возвращение путей различных каталогов
    • Получить имя компьютера и имя текущего пользователя
    • Запуск сервисов Панели Управления

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    "Заморозить" Windows

    Положите на форму элемент CommandButton

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

    Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
    Private Sub Command1_Click()
    Dim freez
    freez = SetParent(Me.hWnd, Me.hWnd)
    End Sub

    наверх

    Добавить ссылку или удалить все ссылки в меню Пуск|Документы

    Private Declare Sub SHAddToRecentDocs Lib "shell32.dll" (ByVal uFlags As Long, ByVal pv As String)

    Private Sub Form_Load()
    'замените путь "c:\win\win.ini" на ваш файл
    Call SHAddToRecentDocs(2, "c:\win\win.ini")
    'удаление всех ссылок на документы
    SHAddToRecentDocs 2, vbNullString
    End Sub

    наверх

    Местоположение системных папок

    Данный пример покажет в какие директории проинсталированы Windows, а также папка расположения системных файлов и папка временных файлов.

    'Вариант 1

    Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
    Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
    Private Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
    Private Sub Form_Resize()
    Dim sDir As String, sTemp As String * 256
    nSize = GetWindowsDirectory(sTemp, 255): pWindows = Left(sTemp, nSize)
    Print "Windows = " & pWindows
    nSize = GetSystemDirectory(sTemp, 255): pSystem = Left(sTemp, nSize)
    Print "System = " & pSystem
    nSize = GetTempPath(255, sTemp): pTemp = Left(sTemp, nSize)
    Print "Temp = " & pTemp
    End Sub

    'Вариант 2

    'Расположение папки System (в виде функции)
    'Расположение папки Windows (в виде функции)
    Private Declare Function GetSystemDirectoryA Lib "kernel32" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
    Private Declare Function GetWindowsDirectoryA Lib "kernel32" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
    Public Function GetSystemDirectory() As String
    Dim s As String
    Dim i As Integer
    i = GetSystemDirectoryA("", 0)
    s = Space(i)
    Call GetSystemDirectoryA(s, i)
    s = Left$(s, i - 1)
    GetSystemDirectory = s
    Dim s As String
    Dim i As Integer
    End Function
    Public Function GetWindowsDirectory() As String
    Dim s As String
    Dim i As Integer
    i = GetWindowsDirectoryA("", 0)
    s = Space(i)
    Call GetWindowsDirectoryA(s, i)
    s = Left$(s, i - 1)
    GetWindowsDirectory = s
    End Function

    Private Sub Form_Load()
    MsgBox GetSystemDirectory
    MsgBox GetWindowsDirectory
    End Sub

    'Вариант 3

    Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
    Private Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nSize As Long, ByVal lpBuffer As String) As Long
    Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
    Public Enum SystemDirs
    dirWindows = 0
    dirSystem = 1
    dirTemp = 2
    End Enum
    Function GetSystemFolders(func As SystemDirs)
    Dim r, nSize As Long, tmp As String
    tmp = Space$(256): nSize = Len(tmp)
    Select Case func
    Case 0
    r = GetWindowsDirectory(tmp, nSize): GetSystemFolders = TrimNull(tmp)
    Case 1
    r = GetSystemDirectory(tmp, nSize): GetSystemFolders = TrimNull(tmp)
    Case 2
    r = GetTempPath(nSize, tmp): GetSystemFolders = TrimNull(tmp)
    End Select
    End Function
    Private Function TrimNull(Item As String)
    Dim pos As Integer: pos = InStr(Item, Chr$(0))
    If pos Then
    TrimNull = Left$(Item, pos - 1)
    Else: TrimNull = Item
    End If
    End Function

    Private Sub Command1_Click()
    For i = 0 To 2
    MsgBox GetSystemFolders(Str(i))
    Next
    End Sub

    наверх

    Возвращение путей различных каталогов

    (рабочий стол, папка шрифтов, меню кнопки ПУСК и т.д)

    Добавьте на форму элемент CommandButton. Необходимое
        пояснение: изменяя значение аргумента speFolder
        функции GetSpecFolder() на любой аргумент инструкции Enum
        SpecialFolderIDs вы получите путь к папке, заданной
        аргументом speFolder. В событии Command1_Click()
        показана пара примеров с различным аргументом speFolder.

Private Enum SpecialFolderIDs
sfidDESKTOP = &H0 'рабочий стол
sfidPROGRAMS = &H2
sfidPERSONAL = &H5
sfidFAVORITES = &H6
sfidSTARTUP = &H7
sfidRECENT = &H8
sfidSENDTO = &H9
sfidSTARTMENU = &HB
sfidDESKTOPDIRECTORY = &H10
sfidNETHOOD = &H13
sfidFONTS = &H14
sfidTEMPLATES = &H15
sfidCOMMON_STARTMENU = &H16
sfidCOMMON_PROGRAMS = &H17
sfidCOMMON_STARTUP = &H18
sfidCOMMON_DESKTOPDIRECTORY = &H19
sfidAPPDATA = &H1A
sfidPRINTHOOD = &H1B
sfidProgramFiles = &H10000
sfidCommonFiles = &H10001
End Enum
Private Declare Function SHGetSpecialFolderLocation Lib "shell32" (ByVal
        hwndOwner As Long, ByVal nFolder As SpecialFolderIDs, ByRef pIdl As Long) As Long
Private Declare Function SHGetPathFromIDListA Lib "shell32" (ByVal pIdl As Long,
        ByVal pszPath As String) As Long
Const NOERROR = 0
Dim sPath As String
Dim IDL As Long
Dim strPath As String
Dim lngPos As Long

Private Function GetSpecFolder(speFolder As SpecialFolderIDs)
If SHGetSpecialFolderLocation(0, speFolder, IDL) = NOERROR Then
sPath = String$(255, 0)
SHGetPathFromIDListA IDL, sPath
lngPos = InStr(sPath, Chr(0))
If lngPos > 0 Then
GetSpecFolder = Left$(sPath, lngPos - 1)
End If
End If
End Function

Private Sub Command1_Click()
MsgBox GetSpecFolder(sfidFAVORITES)
MsgBox GetSpecFolder(sfidPROGRAMS)
End Sub

наверх

    Получить имя компьютера и имя текущего пользователя

    Обращение к функциям простое - a = GetComputerName или a = GetUserName

    Private Declare Function GetComputerNameA Lib "kernel32" (ByVal lpBuffer As String, nSize As Long) As Long
    Private Declare Function WNetGetUserA Lib "mpr.dll" (ByVal lpName As String, ByVal lpUserName As String, lpnLength As Long) As Long
    Function GetComputerName() As String
    Dim sBuffer As String * 255
    If GetComputerNameA(sBuffer, 255&) <> 0 Then
    GetComputerName = Left$(sBuffer, InStr(sBuffer, vbNullChar) - 1)
    End If
    End Function
    Function GetUserName() As String
    Dim sUserNameBuff As String * 255
    sUserNameBuff = Space(255)
    Call WNetGetUserA(vbNullString, sUserNameBuff, 255&)
    GetUserName = Left$(sUserNameBuff, InStr(sUserNameBuff, vbNullChar) - 1)
    End Function

    наверх

    Запуск сервисов Панели Управления

    Если вы хотите запустить любую задачу из Панели Управления, вам достаточно использовать функцию SHELL: Shell "rundll32.exe shell32.dll,Control_RunDLL " & FileName, vbNormalFocus,

    где FileName - имя файла с расширением ".CPL", которые расположены в директории %windir/system%

    Данный пример покажет все файлы с расширением ".CPL".

    Первая кнопка запускает проводник со всеми расширениями, вторая - запускает конкретный сервис.

    Добавьте 2 CommandButton и 1 FileListBox на форму. Вставьте следующий код в события формы.

    Public Sub RunControlPanelExtension(FileName As String)
    Shell "rundll32.exe shell32.dll,Control_RunDLL " & FileName, vbNormalFocus
    End Sub
    Private Sub Command2_Click()
    RunControlPanelExtension File1.FileName
    End Sub
    Private Sub Command1_Click()
    Shell "rundll32.exe shell32.dll,Control_RunDLL", vbNormalFocus
    End Sub
    Private Sub Form_Load()
    File1.Pattern = "*.CPL"
    'В Windows NT замените 'C:\Windows\SYSTEM' на 'C:\WINNT\SYSTEM32'
    File1.FileName = "C:\Windows\SYSTEM"
    End Sub

    Примеры использования:

    'Установка оборудования
    'Call Shell("rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl @1", 5)
    'Установка и удаление программ
    'Call Shell("rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,1", 5)
    'Свойства экрана
    'Call Shell("rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0", 5)
    'Настройки Интернета
    'Call Shell("rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl,,0", 5)
    'Клавиатура
    'Call Shell("rundll32.exe shell32.dll,Control_RunDLL main.cpl @1", 5)
    'Мастер установки принтера
    'Call Shell("rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL AddPrinter", vbNormalFocus)
    'Свойства модема
    'Call Shell("rundll32.exe shell32.dll,Control_RunDLL modem.cpl", 5)
    'Свойства мыши
    'Call Shell("rundll32.exe shell32.dll,Control_RunDLL main.cpl @0", 5)
    'Настройки сети
    'Call Shell("rundll32.exe shell32.dll,Control_RunDLL netcpl.cpl", 5)
    'Окно "Пароли"
    'Call Shell("rundll32.exe shell32.dll,Control_RunDLL password.cpl", 5)
    'Окно "Язык и стандарты"
    'Shell("rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,0", 5)
    'Окно "Звук"
    'Call Shell("rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl @1", 5)
    'Настройки системы
    'Call Shell("rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,0", 5)
    'Настройка даты и времени
    'Call Shell("rundll32.exe shell32.dll,Control_RunDLL timedate.cpl", 5)

    'ВАРИАНТ 2
    'С использованием ShellExecute.
    Private Declare Function GetDesktopWindow Lib "user32.dll" () As Long
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    Const SW_SHOWNORMAL = 1
    Function StartCPLApp(AppName As String) As Long
    Dim Scr_hDC As Long
    Scr_hDC = GetDesktopWindow()
    MsgBox Scr_hDC
    StartCPLApp = ShellExecute(Scr_hDC, "Open", "Control", AppName, "C:\", SW_SHOWNORMAL)
    End Function

    Private Sub Command1_Click()
    StartCPLApp "DESK.CPL"
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Mike.C

    Ответ ожидается по этому адресу

    У кого-нибудь есть документация о том как написать 3D движок на VB или исходники с подробным описанием? Я пока не собираюсь писать альтернативу DOOMIII, мне бы просто понять принципы создания 3D.
    Шлите на личный (mailto:fma_asb@uraltc.ru). Если размер до 100Kb, то можно без предупреждения (WinRAR3 имеется). Так же буду благодарен за прямые ссылки на что-нибудь по этой теме.

    Автор вопроса: Rusty Angles

    Ответ ожидается по этому адресу

    В VB6 пользовался во время оперцаии Loop, коммандой DoEvents, в результате программка не висела на паузе целиком, в VB.NET эта комманда не актуальна, как с этой проблемой бороться? Может есть альтернатива?

    Автор вопроса: Rusty Angles

    Ответ ожидается по этому адресу

    У меня вот такой вопросец (по VB.NET), создал я проект, он полностью работает, теперь решил иконку с названием программки установить, но чтобы они чередовались, добавил я несколько jpg файлов в ресурсы, не в RES файл а так, как есть.. в окошечко, что с права.. Так а как мне к этим файлам обращаться? К обычным то просто 1.****=fromfile("filename"), а тут уже не из файла вроде как, как такими ресурсами пользоваться?

    Ответы:

    Вопрос:

    Программа должна открыть файл A.TXT в своем каталоге. Как это осуществить, если путь к программе меняется?

    Ответ:

    Автор ответа: Andrey V. Shestakov

    Для определения пути к запущенному приложению есть функция App.Path, к ней необходимо добавить имя файла, начинающееся со слеша. Таким образом, переменная, в которой записывается название файла с путем будет определяться следующим образом:
    Dim sFile As String
    sFile = App.Path & "\a.txt"

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 66.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый 66-ой выпуск рассылки!!!
    Читайте!

    Содержание выпуска
    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Последние 20 тем форума на VBNet.Ru:

    12:57 / 17 июн. Программирование БД | Ответов: 0
    10:21 / 17 июн. Выбор папки | Ответов: 1
    21:42 / 16 июн. Новое сообщение без темы | Ответов: 2
    04:53 / 16 июн. И еще парачка... | Ответов: 2
    04:49 / 16 июн. Несколько вопросов | Ответов: 4
    15:04 / 15 июн. Как в RichText`е назначить фон... | Ответов: 0
    11:01 / 15 июн. DB Decimal Places | Ответов: 0
    12:41 / 14 июн. Оффтопик | Ответов: 11
    10:16 / 14 июн. IBasic | Ответов: 5
    09:38 / 14 июн. dBase PACK | Ответов: 0
    05:22 / 14 июн. ВОПРОС??? | Ответов: 0
    20:54 / 13 июн. Кто юзал Internet Transfer Control, помогите! | Ответов: 2
    17:47 / 13 июн. Internet Control | Ответов: 1
    15:53 / 13 июн. FarPoint Spread 6.0 | Ответов: 1
    15:53 / 13 июн. Новое сообщение без темы | Ответов: 0
    15:03 / 13 июн. Создание дистрибутива | Ответов: 8
    14:55 / 13 июн. Проверка на ввод текста | Ответов: 5
    07:19 / 13 июн. Help NetShareEnum again... | Ответов: 2
    18:38 / 12 июн. Winsock | Ответов: 4
    18:20 / 12 июн. Хэндл окна под курсором | Ответов: 1

    Последние поступления в Библиотеку кодов:

    наверх

    Новости сайта VBMania

    • 15.04 - В связи с резким увеличением числа вопросов, поступающих на e-mail администрации сайта, было решено не дожидаться открытия форума, и начать отвечать на вопросы прямо на главной странице. Обсуждению последней новости ответы на вопросы не помешают. Вашего совета ждут, на ваш вопрос ответят.
    • 25.01 - Сегодня открылся новый раздел, в котором вы можете найти ссылки на целую кучу книг по тематике VB и около него.
    • 22.01 - 22 января вышел второй номер он-лайн журнала о Visual Basic 'VB Мания'. В нем можно почитать авторские статьи в уже устоявшихся разделах: Технологии, Система, Графика, Профессия, Человечество и Юмор. Так же не обошлось без новшеств: появился новый раздел dotNET и особенно рецензии ActiveX-компонентов. Обязательно заходите.
    • 17.12 - В связи с тем что форум не горел желаением вести себя так, как должен обычный, порядочный форум, мы его прикрыли для проведения разъяснительных мероприятий. Надеемся, что они не затянутся и форум образумится.
    • 06.12 - С сегодняшнего дня все желающие могут добавлять свои новости и статьи в наши архивы.
      Да здраствует открытость!
    • 27.11 - Наконец-то, после долгих дней и бессонных ночей это свершилось! Сайт объявляется открытым! Непременно прочитайте первый номер нашего журнала. Оцените наши дополнительные проекты. И конечно мы ждем ваших откликов в гостевой книге и по почте.
    • 01.12 - Произошло несколько косметических улучшений, касающихся исключительно удобства работы с сайтом. Во-первых, можно видеть количество записей обсуждения новостей на главной странице; а во-вторых чуточку подправились директории.
      Оценяйте!

    наверх

    Новости сайта Азбука VB

    • 1 мая 2001 года
      Представление всех компрьютеров в сети (сетевое окружение). Показывается, как можно представить все компрьютеры в сети и сетевое окружение. Показывает все сервера, совместно используемые ресурсы и принтеры в данной сети. Используются Api-функции WNetOpenEnum, WNetEnumResource и WNetCloseEnum.
      Пример смены `Региональных Установок` с помощью Sendkeys, без применения API функций (Win95/98). Показывается, как можно произвести смену Региональных Установок с помощью Sendkeys, без применения API функций (Win95/98)
      Пример отправки сообщений в локальной сети - NT/Win2000. Показывается, как можно отправлять сообщения на компьютеры находящиеся в локальной сети. Используются API-функции NetMessageBufferSend, GetUserName, GetComputerName.
      Отправка писем с Attach и без него на основе MAPI. Отправка писем с Attach и без него на основе MAPI. Используется Microsoft MAPI Controls 6.0
      Kак в VBA сделать чтобы картинка, либо другое окно появлялось после запуска макроса и через некоторое время сама закрывалась. Показывается, как в VBA сделать чтобы картинка, либо другое окно появлялось после запуска макроса и через некоторое время сама закрывалась.
      Полоска подчеркивающая меню - 3 (динамика). Дается совет, как сделать динамическую полоску подчеркивающую меню.

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     sv

    Ответ ожидается по этому адресу

    В SysTray создал иконку, нужно, чтобы когда я форму сворачиваю, она исчезала с экрана и панели задач, а оставалась лишь иконка в SysTray. А как ???

    Автор вопроса: Pavel I.Forkin

    Ответ ожидается по этому адресу

    Как можно в форму в любое место вставить ярлык на какую-либо программу(например Internet Explorer), используя метод showopen?

    Автор вопроса: Duke Nukem

    Ответ ожидается по этому адресу

    Помогите плиз у меня такое дело мне надо узнать как скажем WAVки поигрывать со скоростью 200% или 50% от нормальной скорости. Дак как же это сделать ??? Очень прошу пишите все даже самый бред !

    Автор вопроса: Артём Иванов

    Ответ ожидается по этому адресу

    1. Купил мышь со скролингом (колёсико)-swen sww-18. Можно ли с помощью басика обрабатывать событие прокрутка колесика и нажатие на него?
    2. Как выводить компьютер из спящего режима? Хочу сделать будильник.

    Автор вопроса: Славик

    Ответ ожидается по этому адресу

    Есть два TextBox. В каждом яаписывается какое-либо время. Например:
    TextBox1.text = "01:30:25"
    TextBox2.text = "02:01:30"
    Как вычислить TextBox2.text - TextBox1.text
    Может кто сталкивался с таким, подкиньте код пожалуйста. Бывает ли переменная типа Time (не timer) и каким обраяом проияводятся вычисления со временем?

    Автор вопроса: sv

    Ответ ожидается по этому адресу

    В ListBox выбираю строку, в которой прописан путь к картинке, и Image.Picture присваиваю ее значение. Но программа пишет: несоответствие типа. Есть ли другой путь изменения картинки объекта Image?

    Автор вопроса: Diplozon

    Ответ ожидается по этому адресу

    Где в Инете можно скачать учебник для начинающего програмиста?

    Автор вопроса: Игорь с Оболони

    Ответ ожидается по этому адресу

    1)как можно в одном окне просматривать и каталоги и файлы? Типа Dir и FileBox в одном. И вообще, кто-нибудь знает где можно найти исходники простенького файл-менеджера, а то изобретать велосипед нехота, устал я что-то :-)
    2)Как можно просматривать иконки из dll-файлов?

    Автор вопроса: Илья

    Ответ ожидается по этому адресу

    Как на VB 6.0 написать программу для Windows 2000, которая меняла бы рисунок на рабочем столе?

    Автор вопроса: Grad

    Ответ ожидается по этому адресу

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

    1.Как определить в каталоге наличие файлов, и если они есть, их имена?
    2.Как воспользоваться возможностями WinRARa?

    Автор вопроса: TSV-Soft

    Ответ ожидается по этому адресу

    У меня есть два вопроса (VB6):
    1. Как можно сделать частотный анализ звука (мелодии) воспроизводимого компьютером или подскажите хотя бы ф-н API которая может это делать?
    2. Как обрабатывать аналоговый сигнал поступающий от внешнего устройства подключенного к LPT (COM) порту?

    Автор вопроса: Sergey

    Ответ ожидается по этому адресу

    Подскажите код как в VBA на форме поместить ссылку на E-mail или страничку.

    Ответы:

    Вопрос:

    В VB6 пользовался во время оперцаии Loop, коммандой DoEvents, в результате программка не висела на паузе целиком, в VB.NET эта комманда не актуальна, как с этой проблемой бороться? Может есть альтернатива?

    Ответ:

    Автор ответа: Петров Антон Михаилович

    Смотри документацию по Application.DoEvents, или System.Windows.Forms.Application.DoEvents()

    Вопрос:

    Можно ли програмно вставить сообщение в папку "Исходящие" Outlook Express(не Microsoft Outlook!)? (VB6)

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Посмотри в этой рассылке немного ранее вопрос об использовании MAPI Controls

    mpsSession.SignOn
    mpmMessage.SessionID = mpsSession.SessionID
    'Compose new message
    mpmMessage.Compose
    'Address message
    mpmMessage.RecipDisplayName = "Bla-bla-bla"
    mpmMessage.RecipAddress = "name@domain.com"
    'Create the message
    mpmMessage.MsgSubject = "some subj"
    mpmMessage.MsgNoteText = "some text"
    mpmMessage.AttachmentPathName = "c:\Status\Report.doc" 'set attachment path
    mpmMessage.Send False
    mpsSession.SignOff

    Вопрос:

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

    Ответ:

    Автор ответа: Андрей Исаков

    К видеокарте обычно прилагается API, описание, примеры... Пусть на C. Но API - он и в Африке API ;-)

    Вопрос:

    Как считать данные ия файлов dbf с помощью ADO?

    Ответ:

    Автор ответа: Alexey_Naichuk

    Когда нажмешь на кнопку данные из таблицы d:\region.dbf будут считаны в Recordset rs.

    Option Explicit
    Dim cnn As New ADODB.Connection
    Dim rs As New ADODB.Recordset

    Private Sub Command1_Click()
    Dim strSql As String
    cnn.Open "Driver={Microsoft Visual FoxPro Driver};" & _
    "SourceType=DBF;" & _
    "SourceDB= d:\a;" & _
    "Exclusive=Yes;"
    strSql = "select * from region"
    rs.Open strSql, cnn, adOpenDynamic, adLockBatchOptimistic, adCmdText
    End Sub

    Вопрос:

    Программа должна открыть файл A.TXT в своем каталоге. Как это осуществить, если путь к программе меняется?

    Ответ:

    Автор ответа: Igor

    Применяй с названием файла App.Path & "\a.txt"

    Вопрос:

    Помогите с какого сайта скачать VB6

    Ответ:

    Автор ответа: Титов Антон

    Лучше VB не качать, а купить на компакте! А если уж сильно хочется (размер ~~ 100 Мб), то www.microsoft.com. Там где-то в разделе для Девелоперов и Visual Studio.

    Вопрос:

    Луди подскажите как мне из дос в вин кодировку и обратно.

    Ответ:

    Автор ответа: Титов Антон

    API функции AnsiToOEM и OEMToAnsi

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 67.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.
Новости сайта IgorykSoft и советы по программированию

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск...
    Читайте!

    Содержание выпуска
    • Книги

    • Минимизировать все окна
    • Примеры по работе с хранителем экрана
    • Получение сведений о зарегистрированных типах файлов в системе
    • Получение списка расширений, зарегистрированных в системе файлов
    • Получить описание любого файла: exe, dll или…
    • Использование специальной клавиши клавиатуры

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Минимизировать все окна

    Положите на форму 1 CommandButton

    Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    Const VK_LWIN = &H5B
    Const KEYEVENTF_KEYUP = &H2
    Private Sub Command1_Click()
    Call keybd_event(VK_LWIN, 0, 0, 0)
    Call keybd_event(&H4D, 0, 0, 0)
    Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)
    End Sub

    наверх

    Примеры по работе с хранителем экрана

    Данный пример покажет, как можно определить "Загружен ли в данный момент хранитель экрана", а также запустить хранитель экрана. Данный пример еще можно дополнить ответом на вопрос "А как программно отключить хранитель экрана?". Я пока ответа не знаю.     Если вы знаете ответ, напишите мне

    Расположите на форме 3 элемента CommandButton, элемент Timer.

    Нажмите на кнопку 2. Через несколько секунд запустится хранитель экрана. Через 6 секунд пошевелите мышкой, хранитель экрана закроется. И вы увидите на форме MsgBox с сообщением, была загружена заставка. При нажатии на кнопку 3 вы получите время, через которое запускается хранитель экрана.

    Const SPI_GETSCREENSAVEACTIVE = 16
    Const SPI_GETSCREENSAVETIMEOUT = 14
    Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long) As Long

    '6 нижеследующих строчек нужны для запуска хранителя экрана
    Const WM_SYSCOMMAND = &H112&
    Const SC_SCREENSAVE = &HF140&
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Private Sub Command2_Click()
    Call SendMessage(Me.hWnd, WM_SYSCOMMAND, SC_SCREENSAVE, 0&)
    End Sub

    'нажав на кнопку при незапущенном хранителе экрана вы получите сообщение "False"
    Private Sub Command1_Click()
    Dim blnReturn As Boolean
    Dim blnActive As Boolean
    Call SystemParametersInfo(SPI_GETSCREENSAVEACTIVE, vbNull, blnReturn, 0)
    blnActive = blnReturn
    MsgBox blnActive
    Timer1.Enabled = False 'выключить таймер
    End Sub

    Private Sub Form_Load()
    Timer1.Interval = 5000 'установить временной интервал таймера 5 секунд
    Timer1.Enabled = True 'включить таймер
    End Sub

    Private Sub Timer1_Timer()
    Command1_Click 'имитурем нажатие на клавишу 1
    End Sub

    Private Sub Command3_Click()
    Dim intValue As Integer
    Call SystemParametersInfo(SPI_GETSCREENSAVETIMEOUT, vbNull, intValue, 0)
    MsgBox ("Скринсэйвер включается через " & intValue & " секунд.")
    End Sub

    наверх

    Получение сведений о зарегистрированных типах файлов в системе

    Данный пример позволяет узнать о всех зарегистрированных типов файлов в системе, а также получить рисунок иконки, присущий данному типу файлов

    Расположите на форме элемент ListBox и элемент PictureBox. Для более наглядного отображения информации установите свойство .Sorted элемента ListBox как True.

    Option Explicit
    'Aaron Young http://www.pressenter.com/~ajyoung
    Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
    Private Declare Function RegEnumKey Lib "advapi32.dll" Alias "RegEnumKeyA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, ByVal cbName As Long) As Long
    Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
    Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
    Private Declare Function DrawIconEx Lib "user32" (ByVal hdc As Long, ByVal xLeft As Long, ByVal yTop As Long, ByVal hIcon As Long, ByVal cxWidth As Long, ByVal cyWidth As Long, ByVal istepIfAniCur As Long, ByVal hbrFlickerFreeDraw As Long, ByVal diFlags As Long) As Long
    Private Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long
    Private Const HKEY_CLASSES_ROOT = &H80000000
    Private aIcons() As String

    Private Sub Form_Load()
    Dim sType As String
    Dim sName As String
    Dim sFile As String
    Dim iIndex As Integer
    Dim lRegKey As Long
    Dim iFoundCount As Integer
    iIndex = 1
    iFoundCount = 1
    sType = Space(255)
    'Перечисление всех расширений
    Do While RegEnumKey(HKEY_CLASSES_ROOT, iIndex, ByVal sType, 255) = 0
    If Left(sType, 1) <> "." Then
    Else
    'Сохранение информации об иконке
    ReDim Preserve aIcons(iIndex - 1)
    sType = Left(sType, InStr(sType, Chr(0)) - 1)
    'Получить имя расширения, (к примеру - .zip = WinZip)
    If RegOpenKey(HKEY_CLASSES_ROOT, ByVal sType, lRegKey) = 0 Then
    sName = Space(255)
    Call RegQueryValueEx(lRegKey, ByVal "", 0&, 1, ByVal sName, 255)
    If InStr(sName, Chr(0)) Then sName = Left(sName, InStr(sName, Chr(0)) - 1)
    Call RegCloseKey(lRegKey)
    If Len(Trim(sName)) Then
    'Поиск иконки по умолчанию для расширения
    If RegOpenKey(HKEY_CLASSES_ROOT, sName & "\DefaultIcon\", lRegKey) = 0 Then
    sFile = Space(255)
    Call RegQueryValueEx(lRegKey, ByVal "", 0&, 1, ByVal sFile, 255)
    If InStr(sFile, Chr(0)) Then sFile = Left(sFile, InStr(sFile, Chr(0)) - 1)
    Call RegCloseKey(lRegKey)
    aIcons(iFoundCount - 1) = sFile
    End If
    End If
    End If
    List1.AddItem Left(sType & Space(10), 10) & " - " & sName
    iFoundCount = iFoundCount + 1
    End If
    sType = Space(255)
    iIndex = iIndex + 1
    Loop
    End Sub

    Private Sub List1_Click()
    Dim sFile As String
    Dim iIndex As Integer
    Dim lIcon As Long
    Picture1.Cls
    On Error GoTo IconErr
    'Получить иконку для данного типа расширения
    sFile = Left$(aIcons(List1.ListIndex), InStr(aIcons(List1.ListIndex), ",") - 1)
    iIndex = Val(Mid$(aIcons(List1.ListIndex), InStr(aIcons(List1.ListIndex), ",") + 1))
    lIcon = ExtractIcon(App.hInstance, sFile, iIndex)
    Call DrawIconEx(Picture1.hdc, 0, 0, lIcon, 32, 32, 0, 0, 3)
    IconErr:
    End Sub

    наверх

    Получение списка расширений, зарегистрированных в системе файлов

    Данный пример выведет в ваш ComboBox список всех расширений файлов, зарегистрированных в системе

    Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
    Private Declare Function RegEnumKey Lib "advapi32.dll" Alias "RegEnumKeyA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, ByVal cbName As Long) As Long
    Function GetAllExts() As Variant
    Dim lRegResult As Long
    Dim lCounter As Long
    Dim hCurKey As Long
    Dim strBuffer As String
    Dim lDataBufferSize As Long
    Dim intZeroPos As Integer
    lCounter = 0
    lRegResult = RegOpenKey(&H80000000, "", hCurKey)
    Do
    lDataBufferSize = 255
    strBuffer = String(lDataBufferSize, " ")
    lRegResult = RegEnumKey(hCurKey, lCounter, strBuffer, lDataBufferSize)
    If lRegResult = 0& Then
    intZeroPos = InStr(strBuffer, Chr$(0))
    If Left(strBuffer, 1) = "." Then
    Form1.Combo1.AddItem LCase(Right(strBuffer, Len(strBuffer) - 1))
    End If
    lCounter = lCounter + 1
    Else
    Exit Do
    End If
    Loop
    End Function

    Private Sub Form_Load()
    GetAllExts
    End Sub

    наверх

    Получить описание любого файла: exe, dll или…

    или любого файла, если, конечно, вы сможете получить описание.

    Тестирование данного примера я провел на нескольких exe-файлах, некоторых системных библиотеках и даже обычных текстовых файлах. Для простоты проверки примера добавьте на форму элемент TextBox и элемент CommandButton. Естественно, в текстовое окно вы должны вставлять полный путь к проверяемому файлу.

    Но вот где хранятся эти описания, осталось для меня загадкой. Поиск в реестре ничего не дал...

    Вам понадобится дополнительный модуль.

    'КОД ФОРМЫ

    Private Sub Command1_Click()
    MsgBox GetFileDescription("c:\win\system\shell32.dll")
    'MsgBox GetFileDescription(Text1.Text)
    End Sub

    'КОД МОДУЛЯ

    Option Explicit
    Private Declare Function GetLocaleInfoA Lib "kernel32.dll" (ByVal lLCID As Long, ByVal lLCTYPE As Long, ByVal strLCData As String, ByVal lDataLen As Long) As Long
    Private Declare Sub lstrcpyn Lib "kernel32.dll" (ByVal strDest As String, ByVal strSrc As Any, ByVal lBytes As Long)
    Private Declare Function GetFileVersionInfoSize Lib "version.dll" Alias "GetFileVersionInfoSizeA" (ByVal sFile As String, lpLen As Long) As Long
    Private Declare Function GetFileVersionInfo Lib "version.dll" Alias "GetFileVersionInfoA" (ByVal sFile As String, ByVal lpIgnored As Long, ByVal lpSize As Long, ByVal lpBuf As Long) As Long
    Private Declare Function VerQueryValue Lib "version.dll" Alias "VerQueryValueA" (ByVal lpBuf As Long, ByVal szReceive As String, lpBufPtr As Long, lLen As Long) As Long
    Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (pDest As Any, pSource As Any, ByVal ByteLen As Long)
    Private Declare Function GetUserDefaultLCID Lib "kernel32.dll" () As Long

    Public Function StringFromBuffer(buffer As String) As String
    Dim nPos As Long
    nPos = InStr(buffer, vbNullChar)
    If nPos > 0 Then
    StringFromBuffer = Left$(buffer, nPos - 1)
    Else
    StringFromBuffer = buffer
    End If
    End Function

    Public Function GetFileDescription(ByVal sFile As String) As String
    Dim lVerSize As Long
    Dim lTemp As Long
    Dim lRet As Long
    Dim bInfo() As Byte
    Dim lpBuffer As Long
    Dim sDesc As String
    Dim sKEY As String
    lVerSize = GetFileVersionInfoSize(sFile, lTemp)
    ReDim bInfo(lVerSize)
    If lVerSize > 0 Then
    lRet = GetFileVersionInfo(sFile, lTemp, lVerSize, VarPtr(bInfo(0)))
    If lRet <> 0 Then
    sKEY = GetNLSKey(bInfo)
    lRet = VerQueryValue(VarPtr(bInfo(0)), sKEY & "\FileDescription", lpBuffer, lVerSize)
    If lRet <> 0 Then
    sDesc = Space$(lVerSize)
    lstrcpyn sDesc, lpBuffer, lVerSize
    GetFileDescription = StringFromBuffer(sDesc)
    End If
    End If
    End If
    End Function

    Public Function GetNLSKey(byteVerData() As Byte) As String
    Static strLANGCP As String
    Dim lpBufPtr As Long
    Dim strNLSKey As String
    Dim fGotNLSKey As Integer
    Dim intOffset As Integer
    Dim lVerSize As Long
    Dim lTmp As Long
    Dim lBufLen As Long
    Dim lLCID As Long
    Dim strTmp As String
    On Error GoTo GNLSKCleanup
    If VerQueryValue(VarPtr(byteVerData(0)), "\VarFileInfo\Translation", lpBufPtr, lVerSize) <> 0 Then
    If Len(strLANGCP) = 0 Then
    lLCID = GetUserDefaultLCID()
    If lLCID > 0 Then
    strTmp = Space$(8)
    GetLocaleInfoA lLCID, 11, strTmp, 8
    strLANGCP = StringFromBuffer(strTmp)
    Do While Len(strLANGCP) < 4
    strLANGCP = "0" & strLANGCP
    Loop
    GetLocaleInfoA lLCID, 9, strTmp, 8
    strLANGCP = StringFromBuffer(strTmp) & strLANGCP
    Do While Len(strLANGCP) < 8
    strLANGCP = "0" & strLANGCP
    Loop
    End If
    End If
    If VerQueryValue(VarPtr(byteVerData(0)), strLANGCP, lTmp, lBufLen) <> 0 Then
    strNLSKey = strLANGCP
    Else
    For intOffset = 0 To lVerSize - 1 Step 4
    CopyMemory lTmp, ByVal lpBufPtr + intOffset, 4
    strTmp = Hex$(lTmp)
    Do While Len(strTmp) < 8
    strTmp = "0" & strTmp
    Loop
    strNLSKey = "\StringFileInfo\" & Right$(strTmp, 4) & Left$(strTmp, 4)
    If VerQueryValue(VarPtr(byteVerData(0)), strNLSKey, lTmp, lBufLen) <> 0 Then
    fGotNLSKey = True
    Exit For
    End If
    Next
    If Not fGotNLSKey Then
    strNLSKey = "\StringFileInfo\040904E4"
    If VerQueryValue(VarPtr(byteVerData(0)), strNLSKey, lTmp, lBufLen) <> 0 Then
    fGotNLSKey = True
    End If
    End If
    End If
    End If
    GNLSKCleanup:
    If fGotNLSKey Then
    GetNLSKey = strNLSKey
    End If
    End Function

    наверх

    Использование специальной клавиши клавиатуры

    На многих клавиатурах есть специальная кнопка со значком WINDOWS. Данный пример с помощью API функции эмулирует нажатие на эту клавишу и дополнительную клавишу, вызывая определенную процедуру в системе.

    В событии Form_Load() показан один пример: эмулирование нажатие клавиши ПУСК. В качестве параметра функции Launch вы можете использовать любую константу из StartMenuItems.

    Private Declare Sub keybd_event Lib "User32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    Const VK_LWIN = &H5B, KEYEVENTF_KEYUP = &H2, VK_APPS = &H5D

    Public Enum StartMenuItems
    strtExplorer 'запустить ПРОВОДНИК
    strtFind 'окно "ПОИСК ФАЙЛОВ"
    strtMinimize 'минимизировать все окна
    strtRun 'вызвать окно "ЗАПУСК ПРОГРАММ" (ПУСК | ВЫПОЛНИТЬ...)
    strtStartMenu 'эмулировать нажатие клавиши ПУСК
    strtHelp 'вызвать справочную систему
    End Enum

    Public Sub Launch(func As StartMenuItems)
    Dim VK_ACTION As Long
    Select Case func
    Case strtExplorer: VK_ACTION = &H45
    Case strtFind: VK_ACTION = &H46
    Case strtMinimize: VK_ACTION = &H4D
    Case strtRun: VK_ACTION = &H52
    Case strtStartMenu: VK_ACTION = &H5B
    Case strtHelp: VK_ACTION = &H70
    End Select
    Call keybd_event(VK_LWIN, 0, 0, 0)
    Call keybd_event(VK_ACTION, 0, 0, 0)
    Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)
    End Sub

    Private Sub Form_Load()
    Call Launch(strtStartMenu)
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     darknez@mail.kz

    Ответ ожидается по этому адресу

    Такой код для добавления hotkey:

    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
    Private Declare Function DefWindowProc Lib "user32" Alias "DefWindowProcA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Private Const WM_SETHOTKEY = &H32
    Private Const WM_SHOWWINDOW = &H18
    Private Const HK_SHIFTA = &H141 'Shift + A
    Private Const HK_SHIFTB = &H142 'Shift + B
    Private Const HK_CONTROLA = &H241 'Control + A
    Private Const HK_ALTZ = &H45A
    Private Sub Form_Load()
    'Позволить узнать windows какая горячая клавиша в вашем приложении
    erg& = SendMessage(Me.hwnd, WM_SETHOTKEY, HK_ALTZ, 0)
    If erg& <> 1 Then MsgBox "You need another hotkey", vbOKOnly, "Error"
    'Сказать windows что делать при нажатии на hotkey
    'в данном случае - показать окно программы
    erg& = DefWindowProc(Me.hwnd, WM_SHOWWINDOW, 0, 0)
    End Sub

    Так вот, я прячу программу через form.hide и показываю значок в трее, и этот hotkey не работает. А просто так, когда форма не спрятана, а просто неактивна, то какое сообщение не пиши в DefWindowProc, форма просто становится активной. Объясните, пожалуйста, что здесь можно исправить или подскажите другой способ.

    Автор вопроса: Миша

    Ответ ожидается по этому адресу

    В Delphi есть Qreport есть ли что-то подобное в VB?

    Автор вопроса: Vlad Lagutin

    Ответ ожидается по этому адресу

    Подскажите ,при создании нового проекта, ASP.NET WEBApplication указываю адрес http://localhost/WebApplication1 ,но NET выдает сообщение "Web Access Failed, " вобщем не может создать проект, может кто-то сталкивался с подобным ?

    Автор вопроса: Винокуров К

    Ответ ожидается по этому адресу

    Подскажите, как сделать чтобы на одной вкладке TabStrip была например кнопка, а на другой вкладке TextBox?

    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

    Kак добавить ярлык в деректорию "Создать" в меню Windows.

    Автор вопроса: Passat

    Ответ ожидается по этому адресу

    ПОМОГИТЕ РАЗОБРАТЬСЯ С MSDN !!!
    У меня Visual Basic 6.0 и при попытке вызвать Справку выдает, что надо типа установить MSDN Library. Долго искал всеми расхваливаемый MSDN на CD-дисках и, наконец, купил на 3-х дисках. И что же?!!?! Они друг друга НЕ ВИДЯТ. VB6.0 при попытке установить ему МСДН говорит, что это не тот диск. А запуская Setup с дисков MSDN (даже после полной установке! - это около 2-х гигов), этот "товарищ" к VB не цепляется! Как мне их установить, чтоб в VB нормально справка работатала?!?!?

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    как при помоши BitBlt вставить рисунок не в picture a в image или как в Picture увеличить или уменьшить рисунок.

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    Как яяделать библеотеку так чтобы я набрав слово например abs. после точки выскочило меню с всеми процедурами и функциями. У меня получается так только когда я делаю Public классу и функции. Но мне не надо что бы это было Public , а только после набратия слова abs.

    Ответы:

    Вопрос:

    В SysTray создал иконку, нужно, чтобы когда я форму сворачиваю, она исчезала с экрана и панели задач, а оставалась лишь иконка в SysTray. А как ???

    Ответ:

    Автор ответа: slavik

    Form1.ShowInTaskbar=False

    Вопрос:

    В SysTray создал иконку, нужно, чтобы когда я форму сворачиваю, она исчезала с экрана и панели задач, а оставалась лишь иконка в SysTray. А как ???

    Ответ:

    Автор ответа: Rafis

    Это можно сделать отслеживая состояние формы. Ниже описан пример, когда форма сварачивается, то она станоовиться невидимой в Tra-e. вставьте в форму Timer и напишите следующий код:

    Private Sub Timer1_Timer()
    Timer1.Interval = 100
    If Form1.WindowState = 1 Then Form1.Visible = False
    End Sub

    Вопрос:

    В SysTray создал иконку, нужно, чтобы когда я форму сворачиваю, она исчезала с экрана и панели задач, а оставалась лишь иконка в SysTray. А как ???

    Ответ:

    Автор ответа: shuric

    Код модуля:

    Public Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As dwMess, lpData As NOTIFYICONDATA) As Long

    Public Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long

    Public Enum dwMess
    NIM_ADD = &H0 ' Добавление иконки
    NIM_DELETE = &H2 ' Удаление иконки
    NIM_MODIFY = &H1 ' Изменение параметров иконки
    End Enum

    Type NOTIFYICONDATA
    cbSize As Long ' Размер переменной типа NOTIFYICONDATA
    hwnd As Long ' Указатель окна создающего иконку
    uID As Long ' Указатель на иконку в пределах приложения
    uFlags As uF ' Маска для следующих параметров
    uCallbackMessage As CallMess ' Возвращаемое событие
    hIcon As Long ' Указатель на изображение для иконки
    szTip As String * 64 ' Всплывающий над иконкой текст
    End Type

    Public Enum uF
    NIF_MESSAGE = &H1 ' Значение имеет uCallbackMessage
    NIF_ICON = &H2 ' Значение имеет hIcon
    NIF_TIP = &H4 ' Значение имеет szTip
    End Enum

    Public Enum CallMess
    WM_MOUSEMOVE = &H200
    WM_LBUTTONDOWN = &H201
    WM_LBUTTONUP = &H202
    WM_LBUTTONDBLCLK = &H203
    WM_RBUTTONDOWN = &H204
    WM_RBUTTONUP = &H205
    WM_RBUTTONDBLCLK = &H206
    WM_MBUTTONDOWN = &H207
    WM_MBUTTONUP = &H208
    WM_MBUTTONDBLCLK = &H209
    WM_SETFOCUS = &H7
    WM_KEYDOWN = &H100
    WM_KEYFIRST = &H100
    WM_KEYLAST = &H108
    WM_KEYUP = &H101
    End Enum

    Код формы:
    Необходимо добавить кнопку

    Dim NID As NOTIFYICONDATA
    Sub AddIcon()
    Dim IDLib As Long ' Указатель на библиотеку
    Dim IDIcon As Long ' Указатель на иконку
    Const IDMyIcon = 101 ' Идентификатор иконки внутри приложения
    Dim AddResult As Long ' Результат добавления иконки
    IDLib = GetModuleHandle("Project1.exe") ' Получаем hInstanse
    IDIcon = Me.Icon
    ' Заполняем структуру NID типа NOTIFYICONDATA
    NID.cbSize = Len(NID) ' Размер структуры
    NID.hwnd = Form1.hwnd ' Указатель на форму
    NID.uID = IDMyIcon ' Идентификатор иконки
    NID.uFlags = NIF_MESSAGE + NIF_ICON + NIF_TIP 'Указываем, что действующими являются поля uCallBackMessage, hIcon и szTip.
    NID.uCallbackMessage = WM_LBUTTONDOWN ' Указываем, что событием возвращаемым в форму является MouseDown с параметром Button = 2
    NID.hIcon = IDIcon ' Указатель на иконку в файле
    NID.szTip = Left$("MyIcon", 63) & Chr(0) ' Передаем всплывающую фразу "MyIcon", при этом обрезаем ее до 63 символов и добавляем 64-й символ с кодом ноль
    AddResult = Shell_NotifyIcon(NIM_ADD, NID) ' Вызываем функцию, через параметр dwMessage указываем, что следует добавить иконку, и передаем заполненный NID
    Me.Visible = False
    End Sub

    Sub DeleteIcon()
    Dim DeletResult As Long
    DeleteResult = Shell_NotifyIcon(NIM_DELETE, NID) ' Вызываем функцию, через dwMessage указываем, что следует удалить иконку, при этом, раз переменная NID описана на уровне модуля, не следует заполнять ее заново
    End Sub

    Private Sub Command1_Click()
    Call AddIcon
    End Sub

    Private Sub Form_Mousedown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Static bPressed As Boolean
    If X = 7695 Then ' SysTray Icon Events
    Shell_NotifyIcon NIM_DELETE, NID
    Form1.Visible = True
    End If
    End Sub

    Вопрос:

    В SysTray создал иконку, нужно, чтобы когда я форму сворачиваю, она исчезала с экрана и панели задач, а оставалась лишь иконка в SysTray. А как ???

    Ответ:

    Автор ответа: СЗШ ?7

    Для свойства ShowInTaskbar в форме задай значение False. А если нужно чтобы при старте форма на экране не отображалась то:

    Private Sub Form_Load()
    Me.Hide
    ' и помещаем иконку в SysTray
    ....
    End Sub

    Вопрос:

    Есть два TextBox. В каждом яаписывается какое-либо время. Например:
    TextBox1.text = "01:30:25"
    TextBox2.text = "02:01:30"
    Как вычислить TextBox2.text - TextBox1.text
    Может кто сталкивался с таким, подкиньте код пожалуйста. Бывает ли переменная типа Time (не timer) и каким обраяом проияводятся вычисления со временем?

    Ответ:

    Автор ответа: Vlad Lagutin

    Есть 2 способа:

    1. конвертировать время в формат datetime (1990.01.01 02.01.30 - 1990.01.01 01.30.25) получишь искомый результат

    2. перевод в минуты(секунды если есть сек.) после разницы обратно. например
    Time1 = "01:30"
    Time2 = "02:01"

    time2=(int(time2)*60 + (time2-int(time2) ) - перевод в минуты,
    time1=(int(time1)*60 + (time1-int(time1) )
    result=time2-time1
    result=int(result/60)+ (result-int(result/60)*60) /100

    Вопрос:

    Есть два TextBox. В каждом яаписывается какое-либо время. Например:
    TextBox1.text = "01:30:25"
    TextBox2.text = "02:01:30"
    Как вычислить TextBox2.text - TextBox1.text
    Может кто сталкивался с таким, подкиньте код пожалуйста. Бывает ли переменная типа Time (не timer) и каким обраяом проияводятся вычисления со временем?

    Ответ:

    Автор ответа: Rafis

    Вообще есть в ВБ6.0 функция TimeValue которая преобразовывает строку в формат времени. Вот ниже код который, который вычисляет сколько времени прошло.

    a="01:00:25"
    b="20:00:25"
    c= -TimeValue(b)+TimeValue(a)
    Msgbox c

    Внимание!!!! Ни в коем случае в 3 строке не меняйте значенеия TimeValue местами,например, следующий код уже небудет работать

    c=TimeValue(a) -TimeValue(b)

    Вопрос:

    Есть два TextBox. В каждом яаписывается какое-либо время. Например:
    TextBox1.text = "01:30:25"
    TextBox2.text = "02:01:30"
    Как вычислить TextBox2.text - TextBox1.text
    Может кто сталкивался с таким, подкиньте код пожалуйста. Бывает ли переменная типа Time (не timer) и каким обраяом проияводятся вычисления со временем?

    Ответ:

    Автор ответа: Alex

    Лови примерчик. На форме - две кнопки и текстбокс. Давишь сначала первую, с каким-то интервалом - вторую. В текстбоксе - интервал в секундах.

    Dim t As Date

    Private Sub Command1_Click()
    t = Time
    End Sub

    Private Sub Command2_Click()
    Text1 = Str((Time - t1) / 1000)
    End Sub

    Вопрос:

    В ListBox выбираю строку, в которой прописан путь к картинке, и Image.Picture присваиваю ее значение. Но программа пишет: несоответствие типа. Есть ли другой путь изменения картинки объекта Image?

    Ответ:

    Автор ответа: Rafis

    Просто ты неправильно присваиваешь путь к файлу.
    Надо не так:

    Image.Picture=("Путь_к_файлу")

    а вот так:

    Image.Picture = LoadPicture("Путь_к_файлу")

    Вопрос:

    В ListBox выбираю строку, в которой прописан путь к картинке, и Image.Picture присваиваю ее значение. Но программа пишет: несоответствие типа. Есть ли другой путь изменения картинки объекта Image?

    Ответ:

    Автор ответа: Alex

    Image1.Picture = LoadPicture(<путь к картинке>) End Sub

    Комментарии нужны? :)

    Вопрос:

    Где в Инете можно скачать учебник для начинающего програмиста?

    Ответ:

    Автор ответа: slavik

    Учебник целиком вряд ли, а вот почитать и поизучать исходники можно где угодно.
    Сходи сюда:
    http://vbrussian.com/VBR_Sites.asp

    Вопрос:

    1)как можно в одном окне просматривать и каталоги и файлы? Типа Dir и FileBox в одном. И вообще, кто-нибудь знает где можно найти исходники простенького файл-менеджера, а то изобретать велосипед нехота, устал я что-то :-)
    2)Как можно просматривать иконки из dll-файлов?

    Ответ:

    Автор ответа: Alex

    FileView X v1.0.0.7 For Visual Basic 6

    FolderView X v1.0.0.10 For Visual Basic 6

    это почти полный аналог (даже лучше:) виндового эксплорера и браузера, но в кодах (правда, с привлечением ocx их собственной разработки). Если не найдешь где скачать - пиши, я намылю. Они в развернутом состоянии кил по 700. А если ужать...

    Вопрос:

    Подскажите код как в VBA на форме поместить ссылку на E-mail или страничку.

    Ответ:

    Автор ответа: Игорь

    Вот ссылки:

    http://progs.biz/vb/samples/axlink/axlink01.shtml
    http://progs.biz/vb/samples/axlink/lessons/001.shtml
    ...
    http://progs.biz/vb/samples/axlink/lessons/006.shtml

    Там как раз подробно обсуждается, как написать ActiveX, кооторый будет действовать как гиперссылка.
    Если же создаветь ActiveX не хочется, то см.

    http://progs.biz/vb/api/lessons/005.shtml

    Там о создании гиперссылки с помощью API-функции ShellExecute.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 68.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый 68-ой выпуск рассылки!!!
    Читайте!

    Содержание выпуска
    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 23.06.2002 20:33 | Раздел: Примеры кода | Автор: Беляев Данила

    DllView - Пример как посмотреть что внутри DLL либо EXE. В общем все что Вы хотели знать о исполняемом файле, но боялись спросить ;-)... или просто не знали у кого спросить. Пример, честно говоря, потрясающий! Тут тебе и заголовок файла и точка входа и т.д. и т.п.

    Дата: 23.06.2002 04:42 | Раздел: Статьи по VB | Автор: Колесов Андрей

    Basic - этапы большого пути - Еще каких-нибудь несколько лет назад упоминание Basic в качестве языка программирования вызывало лишь снисходительную усмешку у большинства профессиональных разработчиков ПО. Объяснялось это так: "Да, есть такой язык, которым пользуются любители (чтобы не сказать "чайники"). Но ставить "Васик" в один ряд с настоящими средствами программирования - это просто смешно".

    Дата: 21.06.2002 09:32 | Раздел: Примеры кода | Автор: JEDI

    FadeJEDI - Пример на тему затемнения экрана. Запускаешь, а экран плавно начинает гаснуть. Используется библиотека для работы с портами. В общем посмотрите кому нужно.

    Дата: 21.06.2002 04:39 | Раздел: Статьи по VB | Автор: Сурменок Павел

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

    Дата: 19.06.2002 19:44 | Раздел: Примеры кода | Автор: Шатрыкин Иван

    SysMonitor - Программи следит за работой других программ. Записывает время старта и время окончания работы программ. Очень полезный пример для тех, кто хочет научиться работать с окнами Windows. В примере применяется устаревшая методика, которая, впрочем, работает хорошо.

    Последние 20 тем форума на VBNet.Ru:

    04:22 / 23 июн. add button to IE's toolbar | Ответов: 1
    21:56 / 22 июн. Новое сообщение без темы | Ответов: 3
    21:44 / 21 июн. Active X | Ответов: 0
    15:03 / 21 июн. Коллекция | Ответов: 2
    14:32 / 21 июн. Как получить образ части экрана? | Ответов: 4
    14:04 / 21 июн. Вопрос тем, кто знает, что такое DKOI-8... | Ответов: 1
    13:01 / 21 июн. VB-прога как Explorer (ПРОБЛЕМА) | Ответов: 6
    12:57 / 21 июн. Поиск слов, символов и т. д. | Ответов: 2
    11:37 / 21 июн. VB & SNMP | Ответов: 0
    11:19 / 21 июн. Книга жалоб и предложений | Ответов: 5
    10:31 / 21 июн. Перевод бинарного файла в текстовый | Ответов: 1
    10:17 / 21 июн. Передать ссылку на массив | Ответов: 6
    06:20 / 21 июн. Как можно отправить е-mail ? | Ответов: 2
    06:12 / 21 июн. Помогите, пожалуйста! | Ответов: 0
    23:26 / 20 июн. Как сделать PopUp menu? | Ответов: 3
    14:53 / 20 июн. Админам | Ответов: 0
    14:44 / 20 июн. Проверка | Ответов: 2
    12:51 / 20 июн. Элемент итипа Excel... | Ответов: 1
    00:35 / 20 июн. Контролы графиков | Ответов: 1
    23:07 / 19 июн. Чат | Ответов: 1

    Последние поступления в Библиотеку кодов:

    наверх

    Новости сайта VBMania

    • 15.04 - В связи с резким увеличением числа вопросов, поступающих на e-mail администрации сайта, было решено не дожидаться открытия форума, и начать отвечать на вопросы прямо на главной странице. Обсуждению последней новости ответы на вопросы не помешают. Вашего совета ждут, на ваш вопрос ответят.
    • 25.01 - Сегодня открылся новый раздел, в котором вы можете найти ссылки на целую кучу книг по тематике VB и около него.
    • 22.01 - 22 января вышел второй номер он-лайн журнала о Visual Basic 'VB Мания'. В нем можно почитать авторские статьи в уже устоявшихся разделах: Технологии, Система, Графика, Профессия, Человечество и Юмор. Так же не обошлось без новшеств: появился новый раздел dotNET и особенно рецензии ActiveX-компонентов. Обязательно заходите.
    • 17.12 - В связи с тем что форум не горел желаением вести себя так, как должен обычный, порядочный форум, мы его прикрыли для проведения разъяснительных мероприятий. Надеемся, что они не затянутся и форум образумится.
    • 06.12 - С сегодняшнего дня все желающие могут добавлять свои новости и статьи в наши архивы.
      Да здраствует открытость!
    • 27.11 - Наконец-то, после долгих дней и бессонных ночей это свершилось! Сайт объявляется открытым! Непременно прочитайте первый номер нашего журнала. Оцените наши дополнительные проекты. И конечно мы ждем ваших откликов в гостевой книге и по почте.
    • 01.12 - Произошло несколько косметических улучшений, касающихся исключительно удобства работы с сайтом. Во-первых, можно видеть количество записей обсуждения новостей на главной странице; а во-вторых чуточку подправились директории.
      Оценяйте!

    наверх

    Новости сайта Азбука VB

    • 1 мая 2001 года
      Представление всех компрьютеров в сети (сетевое окружение). Показывается, как можно представить все компрьютеры в сети и сетевое окружение. Показывает все сервера, совместно используемые ресурсы и принтеры в данной сети. Используются Api-функции WNetOpenEnum, WNetEnumResource и WNetCloseEnum.
      Пример смены `Региональных Установок` с помощью Sendkeys, без применения API функций (Win95/98). Показывается, как можно произвести смену Региональных Установок с помощью Sendkeys, без применения API функций (Win95/98)
      Пример отправки сообщений в локальной сети - NT/Win2000. Показывается, как можно отправлять сообщения на компьютеры находящиеся в локальной сети. Используются API-функции NetMessageBufferSend, GetUserName, GetComputerName.
      Отправка писем с Attach и без него на основе MAPI. Отправка писем с Attach и без него на основе MAPI. Используется Microsoft MAPI Controls 6.0
      Kак в VBA сделать чтобы картинка, либо другое окно появлялось после запуска макроса и через некоторое время сама закрывалась. Показывается, как в VBA сделать чтобы картинка, либо другое окно появлялось после запуска макроса и через некоторое время сама закрывалась.
      Полоска подчеркивающая меню - 3 (динамика). Дается совет, как сделать динамическую полоску подчеркивающую меню.

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     ALEX

    Ответ ожидается по этому адресу

    Как спрятать программу в SysTray и сделать для не? там иконку?

    Автор вопроса: DedMorozzz

    Ответ ожидается по этому адресу

    У меня есть MDI форма, у которой есть дочерняя форма с расположенным на ней элементом Data. Мне нужно, чтобы при загрузке программы была видна только MDI форма. Но как только я присваиваю программным путем свойству DataBaseName какое-то значение, то дочерняя форма тут же выскакивает на экран. Как от этого избавиться?

    Автор вопроса: виктор

    Ответ ожидается по этому адресу

    Подскажите как остановить таймер,что бы он сработал один раз или два и остановился.

    Автор вопроса: samit

    Ответ ожидается по этому адресу

    Уважаемые программисты, подскажите каким способом лучше всего разбить ботьшой файл на маленькие, размером 1,44 Mb средствами VB 6.0 а затем их же склеить! Спасибо!

    Автор вопроса: samit

    Ответ ожидается по этому адресу

    Нужна помощь! У меня такой вопрос: в моей программе есть форма с настройками и при нажатии кнопки применить происходит следущее:

    Private Sub Command2_Click()
    If Check1.Value = 1 Then cbdend = 1 'открыть вначале работы
    If Check2.Value = 1 Then cbdtim = 1 'открыть в конце работы
    sbdh = Text2.Text 'имя
    sbdm = Text3.Text 'фамилия
    If Check3.Value = 1 Then arcpro = 1 'есть архив
    If Check4.Value = 1 Then arcend = 1 'нет архива
    pathbd = Text1.Text 'путь к файлам
    End Sub

    Вот так формируются переменные на основе моих настроек и как их теперь записать в файл "setup.ini" в дирректории моей программы, а потом считать их оттуда при следующей загрузке программы? Спасибо!

    Автор вопроса: Spart51

    Ответ ожидается по этому адресу

    При записи информации в файл (методом Put) выводится сообщение "Неправильная длина строки" (если объём информации большой). Что делать? (И кто виноват? :)

    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

    Подскажите пожалуйста, можно ли передать ссылку на массив (находящийся в программе) в раярабатываемый мною ActiveX Control, чтобы этот (именно_этот)массив был доступен в любых процедурах внутри Control?

    Автор вопроса: Виталий Венгров

    Ответ ожидается по этому адресу

    Как изменить яркость картинки ?
    В NT добиваюсь результата с помощью API- функций StretchBlt, SetStretchBltMode, GetColorAdjustment, SetColorAdjustment, GetStretchBltMode
    А в Win9x/ME функции GetColorAdjustment, SetColorAdjustment не поддерживаются.
    Кто нибудь знает как обойтись без них?

    Автор вопроса: Andrey

    Ответ ожидается по этому адресу

    Есть программка рассылки почты. Используется MAPI Controls 6.0. В Outlook Express работает идеально. В Outlook 2000 (не Express) некорректно пристегиваются аттачменты. Т.е. в объем сообщения они попадают, у себя в папке "Отправленные" я их открыть могу, а получатель после пересылки, у себя на машине - нет. Протокол соответственно SMTP.
    Если создавать сообщение вручную - все нормально.

    Автор вопроса: Vladimir

    Ответ ожидается по этому адресу

    Как можно с помощью MAPI Controls отправить письмо в формате HTML? Точнее Какой параметр нужен для MAPIMessages?

    Ответы:

    Вопрос:

    В Delphi есть Qreport есть ли что-то подобное в VB?

    Ответ:

    Автор ответа: DedMorozzz

    Да, в VB есть замечательный генератор отчетов Data Report. Для того, чтобы его добавить к проекту, нужно щелкнуть по проекту правой клавишей в окне с его структурой и выбрать Добавить -> Data Report. Еще понядобится Data Environment (добавляется также).

    Вопрос:

    Подскажите, как сделать чтобы на одной вкладке TabStrip была например кнопка, а на другой вкладке TextBox?

    Ответ:

    Автор ответа: Andrey

    Используй лучше Project-Components-Microsoft Tabbed Dialog Control

    Вопрос:

    Подскажите, как сделать чтобы на одной вкладке TabStrip была например кнопка, а на другой вкладке TextBox?

    Ответ:

    Автор ответа: Ted

    Пользуйся Microsoft Tabbed Dialog Control, в нем все проще.

    Вопрос:

    Kак добавить ярлык в деректорию "Создать" в меню Windows.

    Ответ:

    Автор ответа: Андрей Исаков

    CrystalReport. Даже в 5.0. На счет более раггих не знаю...

    Вопрос:

    ПОМОГИТЕ РАЗОБРАТЬСЯ С MSDN !!!
    У меня Visual Basic 6.0 и при попытке вызвать Справку выдает, что надо типа установить MSDN Library. Долго искал всеми расхваливаемый MSDN на CD-дисках и, наконец, купил на 3-х дисках. И что же?!!?! Они друг друга НЕ ВИДЯТ. VB6.0 при попытке установить ему МСДН говорит, что это не тот диск. А запуская Setup с дисков MSDN (даже после полной установке! - это около 2-х гигов), этот "товарищ" к VB не цепляется! Как мне их установить, чтоб в VB нормально справка работатала?!?!?

    Ответ:

    Автор ответа: StarLink (Grodno)

    Попробуй перед установкой MSDN удалить с диска файл hhcolreg.dat (он где-то в \windows\... лежит). Мне помогло.

    Вопрос:

    ПОМОГИТЕ РАЗОБРАТЬСЯ С MSDN !!!
    У меня Visual Basic 6.0 и при попытке вызвать Справку выдает, что надо типа установить MSDN Library. Долго искал всеми расхваливаемый MSDN на CD-дисках и, наконец, купил на 3-х дисках. И что же?!!?! Они друг друга НЕ ВИДЯТ. VB6.0 при попытке установить ему МСДН говорит, что это не тот диск. А запуская Setup с дисков MSDN (даже после полной установке! - это около 2-х гигов), этот "товарищ" к VB не цепляется! Как мне их установить, чтоб в VB нормально справка работатала?!?!?

    Ответ:

    Автор ответа: Андрей Исаков

    Поищи VisualStudio 98. На 6-ти CD.

    Вопрос:

    Как яяделать библеотеку так чтобы я набрав слово например abs. после точки выскочило меню с всеми процедурами и функциями. У меня получается так только когда я делаю Public классу и функции. Но мне не надо что бы это было Public , а только после набратия слова abs.

    Ответ:

    Автор ответа: Василий Шашенок

    Не совсем понял вопрос. Если ты делаешь библиотеку и перечень процедур и функций выскакивал при написании программы с этим модулем, то ничего кроме Public не могу посоветовать. Почему? А зачем в подсказке программисту нужны процедуры и функции, к которым он не может обратиться!

    Вопрос:

    1. Купил мышь со скролингом (колёсико)-swen sww-18. Можно ли с помощью басика обрабатывать событие прокрутка колесика и нажатие на него?
    2. Как выводить компьютер из спящего режима? Хочу сделать будильник.

    Ответ:

    Автор ответа: Duke

    Ну не знаю что на счет прокручивания но клик на него равен нажатию на среднюю клавишу т.е. если у тебя мышь не с колесом а с 3 кнопками то нажатие на колесо равно нажатию на среднею клавишу мыши пример:

    'нужна форма и 1 лабел
    Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = vbMiddleButton Then MsgBox "", , ""
    End Sub

    Вопрос:

    Есть два TextBox. В каждом яаписывается какое-либо время. Например:
    TextBox1.text = "01:30:25"
    TextBox2.text = "02:01:30"
    Как вычислить TextBox2.text - TextBox1.text
    Может кто сталкивался с таким, подкиньте код пожалуйста. Бывает ли переменная типа Time (не timer) и каким обраяом проияводятся вычисления со временем?

    Ответ:

    Автор ответа: Vadim

    Воспользуйся функцией TimeValue(string).Она преобразует строку в тип Data. Присвой разницу переменной типа Date.

    Вопрос:

    Где в Инете можно скачать учебник для начинающего програмиста?

    Ответ:

    Автор ответа: Сергей

    Зайди на сайт http://softsware.narod.ru это сайт я недавно открыл и там вразделе "про Visual Basic" найдёшь архивы статей и учебников.

    Вопрос:

    Как на VB 6.0 написать программу для Windows 2000, которая меняла бы рисунок на рабочем столе?

    Ответ:

    Автор ответа: Сергей

    Добавьте на форму 2 CommandButton. Первая кнопка помещает на рабочий стол любой ваш рисунок, вторая - убирает этот рисунок.

    Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As String, ByVal fuWinIni As Long) As Long
    Const SPI_SETDESKWALLPAPER = 20

    Private Sub Command1_Click()
    SystemParametersInfo SPI_SETDESKWALLPAPER, 0, "D:\Basic\tmpProj\Load.bmp", True
    'Заменить путь D:\Basic\tmpProj\Load.bmp на нужный вам файл рисунка в формате bmp
    End Sub

    Private Sub Command2_Click()
    SystemParametersInfo SPI_SETDESKWALLPAPER, 0, 0, False
    End Sub

    Вопрос:

    Подскажите код как в VBA на форме поместить ссылку на E-mail или страничку.

    Ответ:

    Автор ответа: Сергей

    Private Declare Function ShellExecute& Lib "shell32.dll" _
    Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal _
    lpOperation As String, ByVal lpFile As String, ByVal _
    lpParameters As String, ByVal lpDirectory As String, _
    ByVal nShowCmd As Long)
    Private Const SW_SHOW = 5

    'E-mail

    Call ShellExecute(0&, "Open", "mailto:" + softsware@narod.ru + _
    "?Subject=" + "Re: VitalTime", "", "", 1)

    'web

    Call Navigate(Me, "http://softsware.narod.ru/")

    Вопрос:

    Можно ли програмно вставить сообщение в папку "Исходящие" Outlook Express(не Microsoft Outlook!)? (VB6)

    Ответ:

    Автор ответа: A012@yandex.ru

    Используй Microsoft MAPI Control 6.0
    Он вставляет сообщения в "Исходящие" текущего почтовика по default.

    Вопрос:

    Как использовать параметры в командной строке при загрузке программы, откомпилированной в EXE файл?

    Ответ:

    Автор ответа: Roman Yuakovlev

    ловить и парсить с помощью Command$...

    Вопрос:

    Как можно программу сделать невидимой для Ctrl+Alt+Delete

    Ответ:

    Автор ответа: Виталий Анисимов

    Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
    Private Declare Function RegisterServiceProcess Lib "kernel32" (ByVal dwProcessID As Long, ByVal dwType As Long) As Long
    Const RSP_SIMPLE_SERVICE = 1
    Const RSP_UNREGISTER_SERVICE = 0
    Public Sub MakeMeService()
    'Чтобы убрать вашу программу из списка Ctrl+Alt+Delete, используйте процедуру MakeMeService:
    Dim pid As Long
    Dim reserv As Long
    pid = GetCurrentProcessId()
    regserv = RegisterServiceProcess(pid, RSP_SIMPLE_SERVICE)
    End Sub
    'Чтобы показать вашу программу в списке Ctrl+Alt+Delete, используйте процедуру UnMakeMeService:
    Public Sub UnMakeMeService()
    Dim pid As Long
    Dim reserv As Long
    pid = GetCurrentProcessId()
    regserv = RegisterServiceProcess(pid, RSP_UNREGISTER_SERVICE)
    End Sub
    Private Sub Command1_Click()
    MakeMeService
    End Sub
    Private Sub Command2_Click()
    UnMakeMeService
    End Sub

    '---------------------------------------------------------------
    'Обязательно
    Private Sub Form_Unload(Cancel As Integer)
    UnMakeMeService
    End Sub
    '---------------------------------------------------------------

    Обязательно

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 69.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.
Новости сайта IgorykSoft и советы по программированию

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск...
    Читайте!

    Содержание выпуска
    • Книги

    • Определить, использует ли компьютер большие или маленькие шрифты
    • Получить имя шрифта заголовка активного окна
    • Как узнать значения кодовых таблиц
    • Получить список запущенных приложений
    • Получить список запущенных процессов
    • Использование функции Environ

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Определить, использует ли компьютер большие или маленькие шрифты

    Данный пример покажет, какой размер шрифта установлен в настройках экрана. Данные опции устанавливаются через Панель Управления - Свойства Экрана - вкладка Настройка - кнопка Дополнительно - РазмерШрифта.

    Private Declare Function GetDesktopWindow Lib "user32" () As Long
    Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function GetTextMetrics Lib "gdi32" Alias "GetTextMetricsA" (ByVal hdc As Long, lpMetrics As TEXTMETRIC) As Long
    Private Declare Function SetMapMode Lib "gdi32" (ByVal hdc As Long, ByVal nMapMode As Long) As Long
    Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long
    Private Const MM_TEXT = 1
    Private Type TEXTMETRIC
    tmHeight As Integer
    tmAscent As Integer
    tmDescent As Integer
    tmInternalLeading As Integer
    tmExternalLeading As Integer
    tmAveCharWidth As Integer
    tmMaxCharWidth As Integer
    tmWeight As Integer
    tmItalic As String * 1
    tmUnderlined As String * 1
    tmStruckOut As String * 1
    tmFirstChar As String * 1
    tmLastChar As String * 1
    tmDefaultChar As String * 1
    tmBreakChar As String * 1
    tmPitchAndFamily As String * 1
    tmCharSet As String * 1
    tmOverhang As Integer
    tmDigitizedAspectX As Integer
    tmDigitizedAspectY As Integer
    End Type

    Public Function SmallFonts() As Boolean
    Dim hdc As Long
    Dim hwnd As Long
    Dim PrevMapMode As Long
    Dim tm As TEXTMETRIC
    SmallFonts = True
    hwnd = GetDesktopWindow()
    hdc = GetWindowDC(hwnd)
    If hdc Then
    PrevMapMode = SetMapMode(hdc, MM_TEXT)
    GetTextMetrics hdc, tm
    PrevMapMode = SetMapMode(hdc, PrevMapMode)
    ReleaseDC hwnd, hdc
    If tm.tmHeight > 16 Then SmallFonts = False
    End If
    End Function

    Private Sub Form_Load()
    'В случае маленького фрифта вы получите сообщение "TRUE", иначе получите сообщение "FALSE".
    MsgBox SmallFonts
    End Sub

    наверх

    Получить имя шрифта заголовка активного окна

    Private Const LF_FACESIZE = 32
    Private Const SPI_GETNONCLIENTMETRICS = 41
    Private Type LOGFONT
    lfHeight As Long
    lfWidth As Long
    lfEscapement As Long
    lfOrientation As Long
    lfWeight As Long
    lfItalic As Byte
    lfUnderline As Byte
    lfStrikeOut As Byte
    lfCharSet As Byte
    lfOutPrecision As Byte
    lfClipPrecision As Byte
    lfQuality As Byte
    lfPitchAndFamily As Byte
    lfFaceName(1 To LF_FACESIZE) As Byte
    End Type
    Private Type NONCLIENTMETRICS
    cbSize As Long
    iBorderWidth As Long
    iScrollWidth As Long
    iScrollHeight As Long
    iCaptionWidth As Long
    iCaptionHeight As Long
    lfCaptionFont As LOGFONT
    iSMCaptionWidth As Long
    iSMCaptionHeight As Long
    lfSMCaptionFont As LOGFONT
    iMenuWidth As Long
    iMenuHeight As Long
    lfMenuFont As LOGFONT
    lfStatusFont As LOGFONT
    lfMessageFont As LOGFONT
    End Type
    Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByRef lpvParam As Any, ByVal fuWinIni As Long) As Long
    Public Function ActiveTitleBarFontName()
    Dim s As String
    Dim i As Byte
    Dim ncm As NONCLIENTMETRICS
    Dim sdfont As StdFont
    ncm.cbSize = Len(ncm)
    If SystemParametersInfo(41, ncm.cbSize, ncm, 0) Then
    s = StrConv(ncm.lfCaptionFont.lfFaceName, vbUnicode)
    i = InStr(s, vbNullChar)
    If i > 0 Then s = Left(s, i - 1)
    End If
    ActiveTitleBarFontName = s
    End Function

    Private Sub Form_Load()
    MsgBox ActiveTitleBarFontName
    End Sub

    наверх

    Как узнать значения кодовых таблиц

    Как известно, Windows использует в своей работе две кодовые таблицы, которые мы обычно называем DOS и Windows, но формально они именуются OEM и ANSI. Довольно многие функции обработки строковых переменных зависят от значения кодовых таблиц, установленных при инсталляции системы, которые можно определить с помощью функций API:

    Private Declare Function GetACP Lib "kernel32" () As Long
    Private Declare Function GetOEMCP Lib "kernel32" () As Long
    Private Sub Form_Load()
    MsgBox "ACP = " & GetACP & vbCrLf & "OEMCP = " & GetOEMCP
    End Sub

    В принципе значения кодовых таблиц можно менять уже после инсталляции Windows. Мы не советуем злоупотреблять этим, но такая коррекция может быть полезной при тестировании и анализе работы программ. Параметры ACP и OEMCP хранятся в разделе HKEY_Local_Machine/System/CurrentControlSet/Control/Nls/Codepage файла Реестра и редактируются с помощью утилиты REGEDIT.EXE. Для их активизации нужно перезагрузить Windows.

    Номера таблиц, которые могут понадобиться:

    OEMCP = 866 (Russian), 437 (US — default), 850 (International), 855 (Cyrilic)
    ACP = 1250 (Eastern European), 1251 (Cyrilic & Russian), 1252 (US & Western European), 1200 (Unicode)

    © 1999, Андрей Колесов, Ольга Павлова

    'КОД ФОРМЫ

    Private Sub Command1_Click()
    MsgBox GetFileDescription("c:\win\system\shell32.dll")
    'MsgBox GetFileDescription(Text1.Text)
    End Sub

    'КОД МОДУЛЯ

    Option Explicit
    Private Declare Function GetLocaleInfoA Lib "kernel32.dll" (ByVal lLCID As Long, ByVal lLCTYPE As Long, ByVal strLCData As String, ByVal lDataLen As Long) As Long
    Private Declare Sub lstrcpyn Lib "kernel32.dll" (ByVal strDest As String, ByVal strSrc As Any, ByVal lBytes As Long)
    Private Declare Function GetFileVersionInfoSize Lib "version.dll" Alias "GetFileVersionInfoSizeA" (ByVal sFile As String, lpLen As Long) As Long
    Private Declare Function GetFileVersionInfo Lib "version.dll" Alias "GetFileVersionInfoA" (ByVal sFile As String, ByVal lpIgnored As Long, ByVal lpSize As Long, ByVal lpBuf As Long) As Long
    Private Declare Function VerQueryValue Lib "version.dll" Alias "VerQueryValueA" (ByVal lpBuf As Long, ByVal szReceive As String, lpBufPtr As Long, lLen As Long) As Long
    Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (pDest As Any, pSource As Any, ByVal ByteLen As Long)
    Private Declare Function GetUserDefaultLCID Lib "kernel32.dll" () As Long

    Public Function StringFromBuffer(buffer As String) As String
    Dim nPos As Long
    nPos = InStr(buffer, vbNullChar)
    If nPos > 0 Then
    StringFromBuffer = Left$(buffer, nPos - 1)
    Else
    StringFromBuffer = buffer
    End If
    End Function

    Public Function GetFileDescription(ByVal sFile As String) As String
    Dim lVerSize As Long
    Dim lTemp As Long
    Dim lRet As Long
    Dim bInfo() As Byte
    Dim lpBuffer As Long
    Dim sDesc As String
    Dim sKEY As String
    lVerSize = GetFileVersionInfoSize(sFile, lTemp)
    ReDim bInfo(lVerSize)
    If lVerSize > 0 Then
    lRet = GetFileVersionInfo(sFile, lTemp, lVerSize, VarPtr(bInfo(0)))
    If lRet <> 0 Then
    sKEY = GetNLSKey(bInfo)
    lRet = VerQueryValue(VarPtr(bInfo(0)), sKEY & "\FileDescription", lpBuffer, lVerSize)
    If lRet <> 0 Then
    sDesc = Space$(lVerSize)
    lstrcpyn sDesc, lpBuffer, lVerSize
    GetFileDescription = StringFromBuffer(sDesc)
    End If
    End If
    End If
    End Function

    Public Function GetNLSKey(byteVerData() As Byte) As String
    Static strLANGCP As String
    Dim lpBufPtr As Long
    Dim strNLSKey As String
    Dim fGotNLSKey As Integer
    Dim intOffset As Integer
    Dim lVerSize As Long
    Dim lTmp As Long
    Dim lBufLen As Long
    Dim lLCID As Long
    Dim strTmp As String
    On Error GoTo GNLSKCleanup
    If VerQueryValue(VarPtr(byteVerData(0)), "\VarFileInfo\Translation", lpBufPtr, lVerSize) <> 0 Then
    If Len(strLANGCP) = 0 Then
    lLCID = GetUserDefaultLCID()
    If lLCID > 0 Then
    strTmp = Space$(8)
    GetLocaleInfoA lLCID, 11, strTmp, 8
    strLANGCP = StringFromBuffer(strTmp)
    Do While Len(strLANGCP) < 4
    strLANGCP = "0" & strLANGCP
    Loop
    GetLocaleInfoA lLCID, 9, strTmp, 8
    strLANGCP = StringFromBuffer(strTmp) & strLANGCP
    Do While Len(strLANGCP) < 8
    strLANGCP = "0" & strLANGCP
    Loop
    End If
    End If
    If VerQueryValue(VarPtr(byteVerData(0)), strLANGCP, lTmp, lBufLen) <> 0 Then
    strNLSKey = strLANGCP
    Else
    For intOffset = 0 To lVerSize - 1 Step 4
    CopyMemory lTmp, ByVal lpBufPtr + intOffset, 4
    strTmp = Hex$(lTmp)
    Do While Len(strTmp) < 8
    strTmp = "0" & strTmp
    Loop
    strNLSKey = "\StringFileInfo\" & Right$(strTmp, 4) & Left$(strTmp, 4)
    If VerQueryValue(VarPtr(byteVerData(0)), strNLSKey, lTmp, lBufLen) <> 0 Then
    fGotNLSKey = True
    Exit For
    End If
    Next
    If Not fGotNLSKey Then
    strNLSKey = "\StringFileInfo\040904E4"
    If VerQueryValue(VarPtr(byteVerData(0)), strNLSKey, lTmp, lBufLen) <> 0 Then
    fGotNLSKey = True
    End If
    End If
    End If
    End If
    GNLSKCleanup:
    If fGotNLSKey Then
    GetNLSKey = strNLSKey
    End If
    End Function

    наверх

    Получить список запущенных приложений

    Расположите на форме элемент CommandButton и элемент ListBox.

    Const TH32CS_SNAPPROCESS As Long = 2&
    Const MAX_PATH As Integer = 260
    Private Type PROCESSENTRY32
    dwSize As Long
    cntUsage As Long
    th32ProcessID As Long
    th32DefaultHeapID As Long
    th32ModuleID As Long
    cntThreads As Long
    th32ParentProcessID As Long
    pcPriClassBase As Long
    dwFlags As Long
    szExeFile As String * MAX_PATH
    End Type
    Private Declare Function CreateToolhelpSnapshot Lib "Kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
    Private Declare Function ProcessFirst Lib "Kernel32" Alias "Process32First" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
    Private Declare Function ProcessNext Lib "Kernel32" Alias "Process32Next" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
    Private Declare Sub CloseHandle Lib "Kernel32" (ByVal hPass As Long)

    Private Sub Command1_Click()
    List1.Clear
    Dim hSnapShot As Long
    Dim uProcess As PROCESSENTRY32
    Dim r As Long
    hSnapShot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0&)
    If hSnapShot = 0 Then
    Exit Sub
    End If
    uProcess.dwSize = Len(uProcess)
    r = ProcessFirst(hSnapShot, uProcess)
    Do While r
    List1.AddItem uProcess.szExeFile
    r = ProcessNext(hSnapShot, uProcess)
    Loop
    Call CloseHandle(hSnapShot)
    End Sub

    наверх

    Получить список запущенных процессов

    Расположите на форме 2 элемента CommandButton и элемент ListBox.

    ВАЖНОЕ ПРИМЕЧАНИЕ: БУДЬТЕ АККУРАТНЫ ПРИ ИСПОЛЬЗОВАНИИ ЭТОГО ПРИМЕРА

    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
    Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
    Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
    Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Const GW_HWNDFIRST = 0
    Const GW_HWNDNEXT = 2
    Const WM_CLOSE = &H10
    Const WM_QUIT = &H12
    Dim CurrWnd As String
    Dim ListItem As String
    Dim Length As String

    Sub GetTaskList()
    CurrWnd = GetWindow(Me.hwnd, GW_HWNDFIRST)
    Do While CurrWnd <> 0
    Length = GetWindowTextLength(CurrWnd)
    ListItem = Space(Length + 1)
    Length = GetWindowText(CurrWnd, ListItem, Length + 1)
    If Length <> 0 Then
    List1.AddItem ListItem
    End If
    CurrWnd = GetWindow(CurrWnd, GW_HWNDNEXT)
    DoEvents
    Loop
    End Sub

    Private Sub Command1_Click()
    List1.Clear
    GetTaskList
    End Sub

    Private Sub Command2_Click()
    hW = FindWindow(vbNullString, List1.Text & Chr(0))
    PostMessage hW, WM_QUIT, 0, 0
    End Sub

    Private Sub Form_Load()
    Left = (Screen.Width - Width) \ 2
    Top = (Screen.Height - Height) \ 2
    GetTaskList
    Command1.Caption = "получить список"
    Command2.Caption = "Закрыть приложение"
    End Sub

    наверх

    Использование функции Environ

    В Бэйсике есть одна ОЧЕНЬ полезная, но многими забытая функция Environ! Она возвращает имена и содержание всех переменных среды операционной системы!!! Так, например, чтобы получить директорию Windows, совсем не надо прибегать к API-функции GetWindowsDirectory!!!!!! А получить её можно так:
    A = Environ ("windir")
    Но и это ещё не всё! Также можно получить следующие перменные:

    A = Environ ("TMP") 'директория временных файлов TEMP
    A = Environ ("BLASTER") 'координаты звуковой карты
    A = Environ ("PATH") 'пути, объявленные в autoexec.bat

    НО И ЭТО ВСЁ ЕЩЁ НЕ ВСЁ!!!

    'Добавьте на форму элементы TextBox (установите свойство Multiline=True) и CommandButton. Скопируйте следующий код, запустите программу, нажмите на кнопку...

    Private Sub Command1_Click()
    m = 1
    Do
    EnvString = Environ(m)
    Text1.Text = Text1.Text & vbNewLine & Environ(m)
    m = m + 1
    Loop Until EnvString = ""
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Владимир

    Ответ ожидается по этому адресу

    Есть код работы с базой открытой таким образом

    Dim db1 As Database
    Dim rs1 As Recordset

    Dim strDBName1 As String
    Dim strRSName1 As String

    strDBName1 = App.Path & "\фигня.mdb"
    strRSName1 = "фигня1"

    Set db1 = DBEngine.OpenDatabase(strDBName1)
    Set rs1 = db1.OpenRecordset(strRSName1, dbOpenDynaset)

    таблица Фигня1 имеет пару полей
    Хочу чтобы при выборе в Combobox на форме значения, оно находилось в таблице и к другому числовому полю таблицы добавлялось число из текстбокса лежащего на форме

    Автор вопроса: Артем Белоусов

    Ответ ожидается по этому адресу

    Подскажите пожалуйста, как проверить есть ли связь с интернет

    Автор вопроса: Геннадий

    Ответ ожидается по этому адресу

    Как из VB поменять screensaver (из имеющихся)

    Автор вопроса: Krab

    Ответ ожидается по этому адресу

    Подскажите, пожалуйста, как программно отключиться от интернета.

    Автор вопроса: P@Ssword

    Ответ ожидается по этому адресу

    Можно ли уянать яначения свойств контролов на форме, получаемые ими при яагруяке, после ияменения этих самых яначений, но бея переяагруяки формы?

    Автор вопроса: P@Ssword

    Ответ ожидается по этому адресу

    Как уянать, что по такому-то IP-адресу на таком-то порту висит моя программа?

    Автор вопроса: @LEXis

    Ответ ожидается по этому адресу

    В текстовом документе нужно от определенного слова до еще одного слова выделить этот блок и скопировать в буфер. Как это осуществить?

    Автор вопроса: Иван

    Ответ ожидается по этому адресу

    Вояможно ли программно соядать файл MS Access? Если можно, то как? И как соядавать в ней таблицы?

    Автор вопроса: Анатолий

    Ответ ожидается по этому адресу

    У меня есть главная форма, на ней две подч-ые формы. При перемещении по записям 1-й подч. формы скрытое поле имеет данные [поле14]=Forms![Должности]![пф Должности].[Form]![Номер]и показывает номер текущей записи. Этот номер используется для сортировки 2-й подч-й формы, которая имеет подчиненное поле с главной формой (чтобы включить автоподстановку).Проблема: Вначале происходит событие Enter 1-й подч-й формы, где у меня есть Requery 2-й подч-й формы. Не работает, т.к. [поле14]обновляется после того, как обновилась 2-я п.ф. (события Enter 1-й пф.) Пробовал поле14 cделать свободным, а в макрос 1-й пф формы вставить me.поле14=...(все, как выше). Далее на событие Changе [поле14] в макрос написал Requery 2-й подч-й формы. Т.е. теперь вначале обновляем поле14 (номер записи), а затем пф2. ... Не работает!

    Ответы:

    Вопрос:

    Как спрятать программу в SysTray и сделать для не? там иконку?

    Ответ:

    Автор ответа: Duke

    Ну не знаю как делают все ,а я пользуюсь контролом (systray.ocx). Если надо напиши я дам, или найди в инете там их туевы хучи. А вообще это все через API.

    Вопрос:

    У меня есть MDI форма, у которой есть дочерняя форма с расположенным на ней элементом Data. Мне нужно, чтобы при загрузке программы была видна только MDI форма. Но как только я присваиваю программным путем свойству DataBaseName какое-то значение, то дочерняя форма тут же выскакивает на экран. Как от этого избавиться?

    Ответ:

    Автор ответа: ALEX

    Попробуй после присвоения значения свойству DataBaseName написать

    имя_дочерней_формы.hide

    (у меня работает)

    Вопрос:

    Подскажите как остановить таймер,что бы он сработал один раз или два и остановился.

    Ответ:

    Автор ответа: Kurt Haeldar

    При запуске проги можно инициализировать какую-либо переменную, а затем в событии таймера увеличивать ее значение на 1. Там же нужно проверять это значение. Если оно равно нужному количеству запусков таймера, то этот таймер отключется.
    Если все это написать как код, то получится вроде этого:

    Private sub Timer1_Timer()
    k = k + 1
    if k = 2 then Timer1.Enabled = False
    End Sub

    Вопрос:

    Подскажите как остановить таймер,что бы он сработал один раз или два и остановился.

    Ответ:

    Автор ответа: Rafis

    Используй у таймера свойство Enabled=False

    Вопрос:

    Подскажите как остановить таймер,что бы он сработал один раз или два и остановился.

    Ответ:

    Автор ответа: Duke

    Напиши в таймере после всех действий timer1.enabled=false т.е. 1 раз исполняет и останавливается. А чтобы 2 раза делал напиши следующее

    Dim a as byte' может в VB раньш 6 версии нет типа BYTE тогда пиши INTEGER

    Private Sub Timer1_Timer()
    'твой код вставляй сюда
    a=a+1
    if a =2 then timer1.enabled=false
    'При следующем запуске надо a = 0
    End Sub

    Вопрос:

    Подскажите как остановить таймер,что бы он сработал один раз или два и остановился.

    Ответ:

    Автор ответа: Rutshtein Alex

    Option Explicit

    Dim Counter As Integer

    Private Sub Timer1_Timer()

    If Counter > 2 Then
    Timer1.Enabled = False
    Exit Sub
    End If
    Counter = Counter + 1

    End Sub

    Вопрос:

    Подскажите как остановить таймер,что бы он сработал один раз или два и остановился.

    Ответ:

    Автор ответа: P@Ssword

    В событии Timer пишешь:

    Static Count As Long
    Count = Count + 1
    if Count > 2 Then Timer1.Enabled = False

    Вопрос:

    Подскажите как остановить таймер,что бы он сработал один раз или два и остановился.

    Ответ:

    Автор ответа: Медведев Эдуард

    Решение очень простое...
    в таймере пишешь:

    х=х+1
    if x=1 then timer1.interval=0' х=1 если один раз,х =2 для двух...

    или просто игнор

    if x=2 then exit sub

    Вопрос:

    Подскажите как остановить таймер,что бы он сработал один раз или два и остановился.

    Ответ:

    Автор ответа: Игорь Шаронов

    Вам придется определить какую-либо глобальную переменную в разделе Declaration или на уровне модуля. К примеру...

    Dim Check as Integer

    А в событии таймера timer1_timer()...

    Check = Check + 1
    If Check > 2 Then Timer1.Enabled = False

    Пожалуй, все!
    Советую вам посмотреть страницу, посвященную элементу Timer - http://vbnet.ru/faq/showtopic.asp?id=261

    Вопрос:

    Уважаемые программисты, подскажите каким способом лучше всего разбить ботьшой файл на маленькие, размером 1,44 Mb средствами VB 6.0 а затем их же склеить! Спасибо!

    Ответ:

    Автор ответа: P@Ssword

    Разбить можно так:

    const size as long = 1457664 ' Это длина одного блока в байтах

    sub Расчленить(File1 as string, File2 as string)
    dim ind as long
    dim buffer(0 to size - 1) as byte

    open file1 for binary as #1
    for ind = 0 to iif(lof(1) mod size, lof(1) \ size - 1, lof(1) \ size)
    get #1, , buffer
    open file2 & "." & ind for binary as #2
    put #2, , buffer
    close #2
    next ind
    close #1
    end sub

    Соответственно, объединять в обратном порядке, но здесь желательно знать кол-во фрагМЕНТОВ:

    sub Объединить(File1 as string, File2 as string, Фрагментов as long)
    dim ind as long
    dim buffer(0 to size - 1) as byte

    open file1 for binary as #1
    for ind = 0 to Фрагментов
    open file2 & "." & ind for binary as #2
    get #2, , buffer
    put #1, , buffer
    close #2
    next ind
    close #1
    end sub

    Вопрос:

    Нужна помощь! У меня такой вопрос: в моей программе есть форма с настройками и при нажатии кнопки применить происходит следущее:

    Private Sub Command2_Click()
    If Check1.Value = 1 Then cbdend = 1 'открыть вначале работы
    If Check2.Value = 1 Then cbdtim = 1 'открыть в конце работы
    sbdh = Text2.Text 'имя
    sbdm = Text3.Text 'фамилия
    If Check3.Value = 1 Then arcpro = 1 'есть архив
    If Check4.Value = 1 Then arcend = 1 'нет архива
    pathbd = Text1.Text 'путь к файлам
    End Sub

    Вот так формируются переменные на основе моих настроек и как их теперь записать в файл "setup.ini" в дирректории моей программы, а потом считать их оттуда при следующей загрузке программы? Спасибо!

    Ответ:

    Автор ответа: Rutshtein Alex

    Поместить в модуль!!!

    'Работа с INI-файлами
    '====================

    'Для чтения значения из INI-файла вызовите функцию:
    'ReadINI(File, Heading, Section)

    'Для записи значения в INI-файл вызовите функцию:
    'WriteINI(File, Heading, Section, Value)

    'File - путь к INI-файлу
    'Heading - название раздела
    'Section - название параметра
    'Value - значение параметра

    Option Explicit

    Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationname As String, ByVal lpKeyName As Any, ByVal lsString As Any, ByVal lplFilename As String) As Long
    Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPriviteProfileIntA" (ByVal lpApplicationname As String, ByVal lpKeyName As String, ByVal nDefault As Long, ByVal lpFileName As String) As Long
    Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationname As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

    Global File
    Global ApplicName
    Global Keyname
    Global Value

    Public Function WriteINI(File As String, Heading As String, Section As String, Value As String)

    On Error Resume Next

    Dim lpApplicName As String, lpFileName As String, lpKeyName As String, lpString As String
    Dim U As Long

    lpApplicName = Heading
    lpKeyName = Section
    lpString = Value
    lpFileName = File
    U = WritePrivateProfileString(lpApplicName, lpKeyName, lpString, lpFileName)
    If U <> 0 Then
    Store = "Success"
    End If

    End Function

    Public Function ReadINI(File As String, Heading As String, Section As String)

    On Error Resume Next

    Dim X As Long
    Dim Temp As String * 50
    Dim lpApplicName As String, lpKeyName As String, lpDefault As String, lpFileName As String

    lpApplicName = Heading
    lpKeyName = Section
    lpDefault = no
    lpFileName = File
    X = GetPrivateProfileString(lpApplicName, lpKeyName, lpDefault, Temp, Len(Temp), lpFileName)

    If X <> 0 Then
    ReadINI = GetInput(Trim(Temp))
    End If

    End Function

    Public Function GetInput(Inp As String) As String

    On Error Resume Next

    Dim P As Integer
    P = InStr(1, Inp, Chr(0))
    If P <> 0 Then Inp = Left(Inp, P - 1)
    GetInput = Inp

    End Function

    Вопрос:

    Как изменить яркость картинки ?
    В NT добиваюсь результата с помощью API- функций StretchBlt, SetStretchBltMode, GetColorAdjustment, SetColorAdjustment, GetStretchBltMode
    А в Win9x/ME функции GetColorAdjustment, SetColorAdjustment не поддерживаются.
    Кто нибудь знает как обойтись без них?

    Ответ:

    Автор ответа: Duke

    Не знаю какой у тебя там win9x но в моем все прекрасно работает. Синтаксис проверь.

    Вопрос:

    Такой код для добавления hotkey:

    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
    Private Declare Function DefWindowProc Lib "user32" Alias "DefWindowProcA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Private Const WM_SETHOTKEY = &H32
    Private Const WM_SHOWWINDOW = &H18
    Private Const HK_SHIFTA = &H141 'Shift + A
    Private Const HK_SHIFTB = &H142 'Shift + B
    Private Const HK_CONTROLA = &H241 'Control + A
    Private Const HK_ALTZ = &H45A
    Private Sub Form_Load()
    'Позволить узнать windows какая горячая клавиша в вашем приложении
    erg& = SendMessage(Me.hwnd, WM_SETHOTKEY, HK_ALTZ, 0)
    If erg& <> 1 Then MsgBox "You need another hotkey", vbOKOnly, "Error"
    'Сказать windows что делать при нажатии на hotkey
    'в данном случае - показать окно программы
    erg& = DefWindowProc(Me.hwnd, WM_SHOWWINDOW, 0, 0)
    End Sub

    Так вот, я прячу программу через form.hide и показываю значок в трее, и этот hotkey не работает. А просто так, когда форма не спрятана, а просто неактивна, то какое сообщение не пиши в DefWindowProc, форма просто становится активной. Объясните, пожалуйста, что здесь можно исправить или подскажите другой способ.

    Ответ:

    Автор ответа: P@Ssword

    Есть принципиально другое предложение (ему не страшен даже form.hide - проверял):

    Private Const MOD_ALT = &H1
    Private Const MOD_CONTROL = &H2
    Private Const MOD_SHIFT = &H4
    Private Const PM_REMOVE = &H1
    Private Const WM_HOTKEY = &H312

    Private Type POINTAPI
    x As Long
    y As Long
    End Type

    Private Type Msg
    hWnd As Long
    Message As Long
    wParam As Long
    lParam As Long
    time As Long
    pt As POINTAPI
    End Type

    Private Declare Function RegisterHotKey Lib "user32" (ByVal hWnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long
    Private Declare Function UnregisterHotKey Lib "user32" (ByVal hWnd As Long, ByVal id As Long) As Long
    Private Declare Function PeekMessage Lib "user32" Alias "PeekMessageA" (lpMsg As Msg, ByVal hWnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long, ByVal wRemoveMsg As Long) As Long
    Private Declare Function WaitMessage Lib "user32" () As Long

    Private bCancel As Boolean

    Private Sub ProcessMessages()
    Dim Message As Msg
    ' повторяем до тех пор, пока переменной bCancel не будет присвоено True
    Do While Not bCancel
    ' ожидаем "оконного" события
    WaitMessage
    ' проверяем, что это HOTKEY - сообщение
    If PeekMessage(Message, Me.hWnd, WM_HOTKEY, WM_HOTKEY, PM_REMOVE)
    Then
    ' здесь включаем в дело фантазию.....
    MsgBox "Однако"
    End If
    ' обрабатываем остальные события
    DoEvents
    Loop
    End Sub

    Private Sub Form_Load()
    Dim ret As Long

    bCancel = False
    ' регистрируем горячую клавишу Ctrl-F
    ret = RegisterHotKey(Me.hWnd, &HBFFF&, MOD_CONTROL, vbKeyF)

    ' показываем форму
    Show
    ' обрабатываем сообщения горячей клавиши
    ProcessMessages
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    ' прерываем обработку сообщений
    bCancel = True
    ' отрегистрируемся от горячих клавиш :)
    UnregisterHotKey Me.hWnd, &HBFFF&
    End Sub

    Вопрос:

    Подскажите, как сделать чтобы на одной вкладке TabStrip была например кнопка, а на другой вкладке TextBox?

    Ответ:

    Автор ответа: P@Ssword

    Весь прикол в том, что TabStrip не предоставляет контейнер для элементов, он просто рисует красивую рамочку и закладочки :-) Так что есть два выхода:

    -- Выход первый. Сложнее. Продолжаем использовать TabStrip. На форму для каждого таба кладём по одному контейнеру (например, Frame). Далее в событии Click по TabStrip показываем нужный Frame, остальные при этом пряча. В общем, если с утра просто необходимо размять руки на клавиатуре, то можно сделать такой проект. Но для тех, кто занимается продуктивным трудом, а не расходом калорий, придумали другое решение. Итак, способ номер два.

    ++ Выход второй. Прошу любить и жаловать, Micro$oft Tabbed Dialog Control 6.0. Клик на нужный таб, поклали контролы, клик на следующий таб... Чертовски удобная штука. Им бы ещё раскраску изменить - вообще идеально. Да ладно, чё мечтать - MacroHard всё-таки...

    Вопрос:

    ПОМОГИТЕ РАЗОБРАТЬСЯ С MSDN !!!
    У меня Visual Basic 6.0 и при попытке вызвать Справку выдает, что надо типа установить MSDN Library. Долго искал всеми расхваливаемый MSDN на CD-дисках и, наконец, купил на 3-х дисках. И что же?!!?! Они друг друга НЕ ВИДЯТ. VB6.0 при попытке установить ему МСДН говорит, что это не тот диск. А запуская Setup с дисков MSDN (даже после полной установке! - это около 2-х гигов), этот "товарищ" к VB не цепляется! Как мне их установить, чтоб в VB нормально справка работатала?!?!?

    Ответ:

    Автор ответа: Кирилл

    Тот MSDN 2002, что ты купил предназначен для .NET и только. STUDIO 6.0 работает с MSDN 2001 года. На Митино он есть, но 450р на золоте. С 2002 работать можно, но вручную, что очень неудобно

    Вопрос:

    В SysTray создал иконку, нужно, чтобы когда я форму сворачиваю, она исчезала с экрана и панели задач, а оставалась лишь иконка в SysTray. А как ???

    Ответ:

    Автор ответа: P@Ssword

    Просто в событии формы Form_Resize проверяешь состояние формы и, если она свёрнута, убираешь её с экрана:

    if Me.WindowState = vbMinimized then
    Unload Me или Me.Visible = false
    end if

    Так же можно делать и при попытке закрытия формы (нажатия на кнопку Х):

    private sub Form_Unload(cancel as integer)
    Me.WindowState = vbMinimized ' Сворачиваем окно,
    Me.Visible = false ' затем его убираем
    end sub

    Вопрос:

    В ListBox выбираю строку, в которой прописан путь к картинке, и Image.Picture присваиваю ее значение. Но программа пишет: несоответствие типа. Есть ли другой путь изменения картинки объекта Image?

    Ответ:

    Автор ответа: P@Ssword

    Свойство Picture - это объект типа IPictureDisp, а не путь к файлу. Это кому интересно. А теперь к вопросу о слонах. Картинки из файла загружает, в частности, функция LoadPicture. Так что надо просто написать:

    Set Image1.Picture = LoadPicture("Ю:\картинка.жэпэгэ")

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 70.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый 70-ый выпуск рассылки!!!
    Читайте!

    Содержание выпуска
    • Книги

    • VBNet CD

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    VBNet CD

    Внимание!!! Вы можете приобрести уникальный компакт диск от VBNet.Ru. Он содержит:

    • Сайт VBNet.Ru – Самый большой в сайт о VB в рунете.
    • Service Pack 3 – Service Pack содержит обновления для MS Visual Studio.
    • Коллекция ActiveX контролов – Более двадцати ActiveX контролов и библиотек.
    • Утилиты – Более десяти различных утилит.
    • Personal Web Server – Веб-сервер от Microsoft. Предназначен для операционных систем Windows 9x/Me.
    • Архивы рассылок о VB – Архивы популярных почтовых рассылок о Visual Basic.
    • Книги – Несколько книг о Visual Basic в электронном виде.
    • Справочники – Несколько справочников по Visual Basic и Windows API.
    • И многое другое...

    Цена компакт диска - 60 рублей + 35 рублей за почтовые расходы = 95 рублей.
    Диск распространяется по почте нложенным платежом.
    Вы можете заказать диск в разделе "Магазин" сайта VBNet.Ru, либо заполнив следующую форму:

    Ваш заказ: VBNet CD
    Стоимость: 95 рублей
    Фамилия:
    Имя:
    Отчество:
    E-mail:
    Почтовый индекс:
    Область (край):
    Город:
    Улица, дом, квартира:

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Последние 10 тем форума на VBNet.Ru:

    13:47 / 28 июн. Требуется помощь по базам (+) | Хитов: 4 | Ответов: 0
    13:01 / 28 июн. Дата и номер BIOS | Хитов: 12 | Ответов: 1
    07:40 / 28 июн. DB FoxPro2.6 | Хитов: 18 | Ответов: 1
    18:23 / 27 июн. Как создать ярлык? | Хитов: 33 | Ответов: 1
    17:24 / 27 июн. CD-ROM | Хитов: 31 | Ответов: 3
    14:20 / 27 июн. FireWall | Хитов: 24 | Ответов: 0
    14:18 / 27 июн. Новое сообщение без темы | Хитов: 26 | Ответов: 0
    14:04 / 27 июн. Что в окне ? | Хитов: 28 | Ответов: 1
    13:30 / 27 июн. Как обойти скрытые строки в Excel? | Хитов: 24 | Ответов: 3
    20:38 / 26 июн. Как поместить один контрол в другой? | Хитов: 43 | Ответов: 1

    Последние поступления в Библиотеку кодов:

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Сергей

    Ответ ожидается по этому адресу

    Пишу

    fileno1 = FreeFile
    Open file11 For Binary As fileno1
    Do While Not EOF(fileno1)
    temp1 = String(1, " ")
    Get #fileno1, , temp1
    Loop

    т.е. открываю файл для двоичного доступа (все как в букваре) стоит WinXP,OffieXP,VB6. При запуске выдается сообщение "Ошибка времени выполнения 458 : Переменная использует тип Автоматизации, не поддерживаемый в VB". Когда стояли Win98,Office2000,VB6 все работало. В чем прикол? И как это победить?

    Автор вопроса: Vadim

    Ответ ожидается по этому адресу

    Как программно подключиться к интернету? То есть, как набрать номер я знаю, а как передать login и password?

    Автор вопроса: Rutshtein Alex

    Ответ ожидается по этому адресу

    Как в WinNT/Win2000/WinXP сделать так, чтобы при нажатии на Ctrl-Alt-Del ничего не происходило (яапретить Ctrl-Alt-Del)? Для Windows 95/98/ME подходит:

    ret = SystemParametersInfo(SPI_SCREENSAVERRUNNING, True, pOld, 0)

    , но в NT/2000/XP это не работает.

    Автор вопроса: Костя

    Ответ ожидается по этому адресу

    Как в DataReport выводить отчет на альбомный лист А4?

    Автор вопроса: Антон

    Ответ ожидается по этому адресу

    Подскажите как можно сделать маску ввода в TextBox например для даты рождения и потом в носить в баяу или маску для чего-нибудь еще.

    Автор вопроса: Марат

    Ответ ожидается по этому адресу

    Как из проги на VB создать ярлык Windows для какого либо файла???

    Автор вопроса: Андрей

    Ответ ожидается по этому адресу

    Подскажите пожалуйста, проблема такая, нужно чтоб данные записывались в файл в формате Excel, причем каждый раз данные должны добавляться в следующую колонку, я сделал так

    Option Explicit
    Private exapp As Excel.Application
    Dim a As String

    Private Sub Command1_Click()
    a = Text1.Text
    Dim wBook As Excel.Workbook ' чтобы обращаться к созданной таблице
    ' здесь я бы сделал не так:
    ' Set exapp = New Excel.Application
    ' а добавил бы возможность использовать запущенное приложение
    Dim StartedNew As Boolean ' поставим в True, если сами запустим Excel
    StartedNew = False
    On Error Resume Next
    Set exapp = GetObject(, "Excel.Application")
    If Err.Number <> 0 Then ' если нет запущенного Excel'я
    Set exapp = CreateObject("Excel.Application")
    StartedNew = True
    End If
    On Error GoTo 0
    exapp.Visible = False
    ' создаем новую таблицу
    Set wBook = exapp.Workbooks.Add
    ' издеваемся над созанной таблицей :)
    wBook.Sheets(1).Name = "MyResult"
    wBook.Sheets(1).Range("A1").Value = "Общее количество выездов (всего)"
    wBook.Sheets(1).Range("A2").Value = a
    wBook.Sheets(1).Range("A3").Value = "3"
    wBook.Sheets(1).Range("B1").Value = "4"
    ' сохраняем таблицу
    wBook.SaveAs "c:\my_table.xls"
    wBook.Close
    Set wBook = Nothing
    ' если Excel запускали мы, то надо бы его закрыть
    If StartedNew Then
    exapp.Quit
    End If
    Set exapp = Nothing
    End Sub

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

    Автор вопроса: Мунгалов Андрей

    Ответ ожидается по этому адресу

    Застрял немного. на форме есть MSFlexGrid. На экране отображаются всего строк 10 - 20 остальные ниже. к примеру я в программе выделяю 31 строку, MSFG1.Row = 31, а как прокрутить скрол до этой строки. чтобы она была в числе видимых на экране?

    Автор вопроса: Анатолий

    Ответ ожидается по этому адресу

    Можно ли и как,если можно выводить информацию, например в Textbox,которая поступает на Dos-овскую консоль?

    Автор вопроса: Jill_U

    Ответ ожидается по этому адресу

    Делаю отчет с помощью Datareport, но отчет широкий и его ориентацию нужно сменить на ландшафт. а как это сделать? у меня не получается

    Автор вопроса: Даник

    Ответ ожидается по этому адресу

    Не могу влить в TextBox текст большого объема (65кб).Текст меньшего объема вливает без проблемм.

    Автор вопроса: DDA Software

    Ответ ожидается по этому адресу

    Мне бы нуна просто посмотреть какие есть на сервере письма (считать только яаголовки всех писем - типа как делает прога The Bat) - и после найти нужное и скачать только его - а вот как это сделать так, что-б не скачивать вс? тело письма, а дать команду РОР серверу остановиться и перейти к следующему письму (если оно есть), а потом скачать нужное письмо и удалить его на серваке.
    Моя програма должна яалесть на почтовый сервер, найти письмо адрессованое ей и скачать только его. - ???? :-(

    Ответы:

    Вопрос:

    В текстовом документе нужно от определенного слова до еще одного слова выделить этот блок и скопировать в буфер. Как это осуществить?

    Ответ:

    Автор ответа: Rutshtein Alex

    Используй Text1.SelStart и Text1.SelEnd затем
    Clipboard.SetText = Text1.SelText

    Вопрос:

    Подскажите ,при создании нового проекта, ASP.NET WEBApplication указываю адрес http://localhost/WebApplication1 ,но NET выдает сообщение "Web Access Failed, " вобщем не может создать проект, может кто-то сталкивался с подобным ?

    Ответ:

    Автор ответа: samit

    Прости поставь себе сервер Apache.
    Подробные инструкции по его установке можно найти на
    http://www.tweak.tut.by

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 71.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.
Новости сайта IgorykSoft и советы по программированию

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск...
    Читайте!

    Содержание выпуска
    • Книги

    • VBNet CD

    • Как заблокировать сочетания клавиш Ctrl+Alt+Del и Alt+Tab
    • Поменять заголовки всех активных окон
    • Поиск установленных приложений из пакета MS Office
    • VBA | Word
    • VBA | Excel
    • Проиграть Avi-файл в Picture Box

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    VBNet CD

    Внимание!!! Вы можете приобрести уникальный компакт диск от VBNet.Ru. Он содержит:

    • Сайт VBNet.Ru – Самый большой в сайт о VB в рунете.
    • Service Pack 3 – Service Pack содержит обновления для MS Visual Studio.
    • Коллекция ActiveX контролов – Более двадцати ActiveX контролов и библиотек.
    • Утилиты – Более десяти различных утилит.
    • Personal Web Server – Веб-сервер от Microsoft. Предназначен для операционных систем Windows 9x/Me.
    • Архивы рассылок о VB – Архивы популярных почтовых рассылок о Visual Basic.
    • Книги – Несколько книг о Visual Basic в электронном виде.
    • Справочники – Несколько справочников по Visual Basic и Windows API.
    • И многое другое...

    Цена компакт диска - 60 рублей + 35 рублей за почтовые расходы = 95 рублей.
    Диск распространяется по почте нложенным платежом.
    Вы можете заказать диск в разделе "Магазин" сайта VBNet.Ru, либо заполнив следующую форму:

    Ваш заказ: VBNet CD
    Стоимость: 95 рублей
    Фамилия:
    Имя:
    Отчество:
    E-mail:
    Почтовый индекс:
    Область (край):
    Город:
    Улица, дом, квартира:

    наверх

    Как заблокировать сочетания клавиш Ctrl+Alt+Del и Alt+Tab

    'ВАРИАНТ 1

    Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long) As Long
    Private Const SPI_SCREENSAVERRUNNING = 97&
    Public Sub AllowKeys(bParam As Boolean)
    Dim lRetVal As Long, bOld As Boolean
    lRetVal = SystemParametersInfo(SPI_SCREENSAVERRUNNING, bParam, bOld, 0&)
    End Sub
    Private Sub Form_Load()
    Call AllowKeys(True) 'блокировка сочетаний
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    Call AllowKeys(False) 'разблокировка сочетаний
    End Sub

    'ВАРИАНТ 2

    'без дополнительной подпрограммы
    'Добавьте два элемента CommandButton. Первая кнопка блокирует сочетание клавиш, вторая - разрешает.
    Const SPI_SCREENSAVERRUNNING = 97
    Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" _
    (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long
    Private Sub Command1_Click()
    Call SystemParametersInfo(SPI_SCREENSAVERRUNNING, True, "1", 0)
    End Sub
    Private Sub Command2_Click()
    Call SystemParametersInfo(SPI_SCREENSAVERRUNNING, False, "1", 0)
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    Call SystemParametersInfo(SPI_SCREENSAVERRUNNING, False, "1", 0)
    End Sub

    наверх

    Поменять заголовки всех активных окон

    Данный пример поменяет заголовки всех активных окон, представленных на панели задач.

    Расположите на форме элемент CommandButton. Изменив в событии Command1_Click() строковое значение в скобках и нажав после запуска программы на кнопку, вы измените заголовки всех окон.

    Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long

    Public Sub WindowCaptionChangeAll(NewText As String)
    For nI = 1 To 10000
    Call SetWindowText(nI, NewText)
    Next
    End Sub

    Private Sub Command1_Click()
    WindowCaptionChangeAll ("GARIK")
    End Sub

    наверх

    Поиск установленных приложений из пакета MS Office

    Иногда для работы вашего приложения требуется знать, какие программы из пакета Microsoft Office уже установлены на клиентском компьютере. Приведенный ниже пример показывает как это сделать средствами Visual Basic.

    Private Declare Function RegOpenKey Lib "advapi32" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
    Private Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, lpReserved As Long, lptype As Long, lpData As Any, lpcbData As Long) As Long
    Private Declare Function RegCloseKey& Lib "advapi32" (ByVal hKey&)
    Private Const REG_SZ = 1
    Private Const REG_EXPAND_SZ = 2
    Private Const ERROR_SUCCESS = 0
    Const HKEY_CLASSES_ROOT = &H80000000
    Function GetRegString(hKey As Long, strSubKey As String, strValueName As String) As String
    Dim strSetting As String
    Dim lngDataLen As Long
    Dim lngRes As Long
    If RegOpenKey(hKey, strSubKey, lngRes) = ERROR_SUCCESS Then
    strSetting = Space(255)
    lngDataLen = Len(strSetting)
    If RegQueryValueEx(lngRes, strValueName, ByVal 0, REG_EXPAND_SZ, ByVal strSetting, lngDataLen) = ERROR_SUCCESS Then
    If lngDataLen > 1 Then
    GetRegString = Left(strSetting, lngDataLen - 1)
    End If
    End If
    If RegCloseKey(lngRes) <> ERROR_SUCCESS Then
    MsgBox "RegCloseKey Failed: " strSubKey, vbCritical
    End If
    End If
    End Function
    Public Function IsAppPresent(strSubKey$, strValueName$) As Boolean
    IsAppPresent = CBool(Len(GetRegString(HKEY_CLASSES_ROOT, strSubKey, strValueName)))
    End Function

    Private Sub Form_Paint()
    Print "Access " & IsAppPresent("Access.Database\CurVer", "")
    Print "Excel " & IsAppPresent("Excel.Sheet\CurVer", "")
    Print "PowerPoint " & IsAppPresent("PowerPoint.Slide\CurVer", "")
    Print "Word " & IsAppPresent("Word.Document\CurVer", "")
    End Sub

    наверх

    VBA | Word

    Как вставить строковую переменную из макроса VBA в текущий документ?

    Selection.TypeText Text:=MyStrVar 'MyStrVar - в данном случае требуемая переменная

    Как автоматически открыть документ в формате MS-Dos

    Documents.Open FileName:="C:\Мои документы\1.txt", Format:=FileConverters("MS-DOS Text with Layout").OpenFormat

    наверх

    VBA | Excel

    Выбор произвольной ячейки от текущей

    К примеру, вам необходимо переместиться вправо от текущей ячейки на три ячейчки. Для этого существует функция Offset:

    ActiveCell.Offset(0, 3).Activate

    Синтаксис функции: expression.Offset(RowOffset, ColumnOffset), где RowOffset - перемещение по вертикали, ColumnOffset - перемещение по горизонтали. Если RowOffset, ColumnOffset положительные числа - перемещение идет вниз/влево, если RowOffset, ColumnOffset отрицательные - перемещение идет вверх/вправо.

    Подсчет количества заполненных ячеек

    К примеру, у вас есть выделенный диапазон ячеек от 1 до 10. В 11-ой ячейке вам надо вывести цифру, сколько ячеек заполнено какой-либо информацией. Вызов функции(в 11-ой ячейке): =ScetE(B4:H4), где B4:H4 - диапазон подсчитываемых ячеек.

    Function ScetE(Ran As Range) As Long
    Dim cell As Object
    ScetE = 0 'обнуляем счетчик
    For Each cell In Ran 'для всех ячеек в выбранном диапазоне
    If (Not (IsEmpty(cell.Value))) Then 'Если ячейка не пустая
    ScetE = ScetE + 1 'добавляем единицу
    Else
    If IsNumeric(cell.Value) Then 'проверяем не числовое ли значение номер строки 1
    If (Not (cell.Value = 0)) Then ' а не равна ли она 0
    ScetE = ScetE + 1 'добавляем единицу
    End If
    End If ' номер строки 2
    End If
    Next cell
    End Function

    Функция для создания файла xls

    Вызов функции: Call CreateExcelFile

    Function CreateExcelFile() As Long
    On Error GoTo CatchErr
    Const LF_SYMBOL As Byte = &HA
    Const TAB_SYMBOL As Byte = &H9
    Dim szFilePath As String
    Dim szFileName As String
    Dim szDefaultBuffer As String
    Dim lFieldCount As Long
    Dim lRowCount As Long
    Dim ltempCount As Long
    Dim ltempCount2 As Long
    szFilePath = App.Path
    If Right(szFilePath, 1) <> "\" Then szFilePath = szFilePath & "\"
    szFileName = "TestExcel"
    lFieldCount = 10
    lRowCount = 10
    Open szFilePath & szFileName & ".xls" For Append As #1
    szDefaultBuffer = ""
    'save field names
    ltempCount = 1
    Do While ltempCount <= lFieldCount
    If ltempCount = 1 Then
    szDefaultBuffer = "Field" & ltempCount
    Else
    szDefaultBuffer = szDefaultBuffer & Chr(TAB_SYMBOL) & "Field" & ltempCount
    End If
    ltempCount = ltempCount + 1
    Loop
    'can be skipped because Print put that symbol
    'szDefaultBuffer=szDefaultBuffer & chr(LF_SYMBOL)
    Print #1, szDefaultBuffer
    'save field values
    ltempCount = 1
    Do While ltempCount <= lRowCount
    szDefaultBuffer = ""
    ltempCount2 = 1
    Do While ltempCount2 <= lFieldCount
    If ltempCount2 = 1 Then
    szDefaultBuffer = "Value" & ltempCount & ":" & ltempCount2
    Else
    szDefaultBuffer = szDefaultBuffer & Chr(TAB_SYMBOL) & "Value" & ltempCount & ":" & ltempCount2
    End If
    ltempCount2 = ltempCount2 + 1
    Loop
    'can be skipped because Print put that symbol
    'szDefaultBuffer=szDefaultBuffer & chr(LF_SYMBOL)
    Print #1, szDefaultBuffer
    ltempCount = ltempCount + 1
    Loop
    Close 1
    CreateExcelFile = 0
    Exit Function
    CatchErr:
    CreateExcelFile = Err.Number
    End Function

    Выбор данных из ниспадающего списка

    Вопрос: Можно ли в Excel 97/2000 сделать так, чтобы в ячейке можно было выбрать только значения, хранящиеся в определенном столбце, например, в виде выпадающего списка?

    Ответ:
    1) Создаешь список значений
    2) Выделяешь ячейку (столбец или строку), где будет производиться
    подстановка из списка
    3) Данные -> Проверка -> Параметры
    - Тип данных: "Список"
    - Источник: <указываешь на созданный список>
    4) OK
    5) При выделении ячейки справа будет появляться стрелка выпадающего списка.

    наверх

    Проиграть Avi-файл в Picture Box

    Добавьте CommandButton и PictureBox на форму

    Private Declare Function mciSendString Lib "winmm" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
    Private Declare Function mciGetErrorString Lib "winmm" Alias "mciGetErrorStringA" (ByVal dwError As Long, ByVal lpstrBuffer As String, ByVal uLength As Long) As Long
    Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
    Const WS_CHILD = &H40000000
    Sub PlayAVIPictureBox(FileName As String, ByVal Window As PictureBox)
    Dim RetVal As Long
    Dim CommandString As String
    Dim ShortFileName As String * 260
    Dim deviceIsOpen As Boolean
    'Retrieve short file name format
    RetVal = GetShortPathName(FileName, ShortFileName, Len(ShortFileName))
    FileName = Left$(ShortFileName, RetVal)
    'Open the device
    CommandString = "Open " & FileName & " type AVIVideo alias AVIFile parent " & CStr(Window.hWnd) & " style " & CStr(WS_CHILD)
    RetVal = mciSendString(CommandString, vbNullString, 0, 0&)
    If RetVal Then GoTo error
    'remember that the device is now open
    deviceIsOpen = True
    'Resize the movie to PictureBox size
    CommandString = "put AVIFile window at 0 0 " & CStr(Window.ScaleWidth / _
    Screen.TwipsPerPixelX) & " " & CStr(Window.ScaleHeight / _
    Screen.TwipsPerPixelY)
    RetVal = mciSendString(CommandString, vbNullString, 0, 0&)
    If RetVal <> 0 Then GoTo error
    'Play the file
    CommandString = "Play AVIFile wait"
    RetVal = mciSendString(CommandString, vbNullString, 0, 0&)
    If RetVal <> 0 Then GoTo error
    'Close the device
    CommandString = "Close AVIFile"
    RetVal = mciSendString(CommandString, vbNullString, 0, 0&)
    If RetVal <> 0 Then GoTo error
    Exit Sub
    error:
    'An error occurred.
    'Get the error description
    Dim ErrorString As String
    ErrorString = Space$(256)
    mciGetErrorString RetVal, ErrorString, Len(ErrorString)
    ErrorString = Left$(ErrorString, InStr(ErrorString, vbNullChar) - 1)
    'close the device if necessary
    If deviceIsOpen Then
    CommandString = "Close AVIFile"
    mciSendString CommandString, vbNullString, 0, 0&
    End If
    'raise a custom error, with the proper description
    Err.Raise 999, , ErrorString
    End Sub

    Private Sub Command1_Click()
    'replace 'c:\myfile.avi' with the name of the AVI file you want to play
    PlayAVIPictureBox "C:\Program Files\Microsoft Visual Studio\VB98\Wizards\PDWizard\Working.avi", Picture1
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Саша

    Ответ ожидается по этому адресу

    Подскажите адрес где можно прочитать как делаются DLL на VB ?

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    Как уянать сколько яакаченно и полученное байтов при работе в интернет ?

    Автор вопроса: EL

    Ответ ожидается по этому адресу

    как в WebBrowser-e выполнить поиск в загруженном файле (аналогично InternetExploreru (Меню)->Правка->Найти на этой странице).
    И еще. Где найти "хороший" ActiveX - Zmodem???

    Автор вопроса: Евгений

    Ответ ожидается по этому адресу

    Задача: Перехватывать сообщения формы или control'a VB.
    Моё решение таково. Заменить функцию окна формы на свою, а из своей вызвать заменённую.
    Подскажите, как вызвать функцию окна по тому, что вернула
    SetWidnowLong(GWL_WNDPROC....).
    Если просто использовать DefWindowProc форма становиться неживая, а control вешает VB.
    Если есть иные решения моей задачи, пишите. Буду рад.

    Автор вопроса: Rutshtein Alex

    Ответ ожидается по этому адресу

    Как перехватить нажатие клавишы, например Alt-F12, если окно программы неактивно?

    Автор вопроса: darknez@mail.kz

    Ответ ожидается по этому адресу

    Прочитал пример - добавления проги в автозапуск:

    "Private Sub Command1_Click() 'Запись в реестр
    Set Reg = CreateObject("WScript.Shell")
    Reg.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\Имя твоей проги", "Путь к твоей проге"
    End Sub

    Private Sub Command2_Click() 'Удаление из реестра
    Set Reg = CreateObject("WScript.Shell")
    Reg.RegDelete "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\Имя твоей проги"
    End Sub"

    А кто нибудь знает что можно ещё делать теперь с переменной Reg и вообще с помощью объекта "WScript.Shell"

    Автор вопроса: Роман

    Ответ ожидается по этому адресу

    Кто знает как изменить форму или рисунок кнопки?

    Ответы:

    Вопрос:

    Пишу

    fileno1 = FreeFile
    Open file11 For Binary As fileno1
    Do While Not EOF(fileno1)
    temp1 = String(1, " ")
    Get #fileno1, , temp1
    Loop

    т.е. открываю файл для двоичного доступа (все как в букваре) стоит WinXP,OffieXP,VB6. При запуске выдается сообщение "Ошибка времени выполнения 458 : Переменная использует тип Автоматизации, не поддерживаемый в VB". Когда стояли Win98,Office2000,VB6 все работало. В чем прикол? И как это победить?

    Ответ:

    Автор ответа: Dmitry Gavrilov

    Фраза 'While not end of file' переводится Prompt'ом как 'В то время как не конец файла'
    Отсюда вывод, не убрать ли тебе цикл из кода?

    Вопрос:

    Как в DataReport выводить отчет на альбомный лист А4?

    Ответ:

    Автор ответа: Игорь Кузенков

    Есть такое свойство у объекта DataReport - .Orientation, которое можно установить почему-то только программно. Желательно перед перед методом .Show, конечно ;-)

    Вопрос:

    Как в DataReport выводить отчет на альбомный лист А4?

    Ответ:

    Автор ответа: Кононенко Роман

    Для этого есть контрол от самих мелкомягких , называется PageSet, там DLL, которую регистришь в системе, добавляешь в проэкт, и перед выводом отчёта исполняешь буквально две три строки кода. если нужно конкретно, пиши мылом.

    Вопрос:

    Подскажите как можно сделать маску ввода в TextBox например для даты рождения и потом в носить в баяу или маску для чего-нибудь еще.

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Используй лучше Microsoft MaskEdit Control.
    Он как раз для этого и предназначен.

    Вопрос:

    Подскажите пожалуйста, проблема такая, нужно чтоб данные записывались в файл в формате Excel, причем каждый раз данные должны добавляться в следующую колонку, я сделал так

    Option Explicit
    Private exapp As Excel.Application
    Dim a As String

    Private Sub Command1_Click()
    a = Text1.Text
    Dim wBook As Excel.Workbook ' чтобы обращаться к созданной таблице
    ' здесь я бы сделал не так:
    ' Set exapp = New Excel.Application
    ' а добавил бы возможность использовать запущенное приложение
    Dim StartedNew As Boolean ' поставим в True, если сами запустим Excel
    StartedNew = False
    On Error Resume Next
    Set exapp = GetObject(, "Excel.Application")
    If Err.Number <> 0 Then ' если нет запущенного Excel'я
    Set exapp = CreateObject("Excel.Application")
    StartedNew = True
    End If
    On Error GoTo 0
    exapp.Visible = False
    ' создаем новую таблицу
    Set wBook = exapp.Workbooks.Add
    ' издеваемся над созанной таблицей :)
    wBook.Sheets(1).Name = "MyResult"
    wBook.Sheets(1).Range("A1").Value = "Общее количество выездов (всего)"
    wBook.Sheets(1).Range("A2").Value = a
    wBook.Sheets(1).Range("A3").Value = "3"
    wBook.Sheets(1).Range("B1").Value = "4"
    ' сохраняем таблицу
    wBook.SaveAs "c:\my_table.xls"
    wBook.Close
    Set wBook = Nothing
    ' если Excel запускали мы, то надо бы его закрыть
    If StartedNew Then
    exapp.Quit
    End If
    Set exapp = Nothing
    End Sub

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

    Ответ:

    Автор ответа: Savchuk, Andrey

    xlApp.DisplayAlerts = False

    Вопрос:

    Подскажите пожалуйста, проблема такая, нужно чтоб данные записывались в файл в формате Excel, причем каждый раз данные должны добавляться в следующую колонку, я сделал так

    Option Explicit
    Private exapp As Excel.Application
    Dim a As String

    Private Sub Command1_Click()
    a = Text1.Text
    Dim wBook As Excel.Workbook ' чтобы обращаться к созданной таблице
    ' здесь я бы сделал не так:
    ' Set exapp = New Excel.Application
    ' а добавил бы возможность использовать запущенное приложение
    Dim StartedNew As Boolean ' поставим в True, если сами запустим Excel
    StartedNew = False
    On Error Resume Next
    Set exapp = GetObject(, "Excel.Application")
    If Err.Number <> 0 Then ' если нет запущенного Excel'я
    Set exapp = CreateObject("Excel.Application")
    StartedNew = True
    End If
    On Error GoTo 0
    exapp.Visible = False
    ' создаем новую таблицу
    Set wBook = exapp.Workbooks.Add
    ' издеваемся над созанной таблицей :)
    wBook.Sheets(1).Name = "MyResult"
    wBook.Sheets(1).Range("A1").Value = "Общее количество выездов (всего)"
    wBook.Sheets(1).Range("A2").Value = a
    wBook.Sheets(1).Range("A3").Value = "3"
    wBook.Sheets(1).Range("B1").Value = "4"
    ' сохраняем таблицу
    wBook.SaveAs "c:\my_table.xls"
    wBook.Close
    Set wBook = Nothing
    ' если Excel запускали мы, то надо бы его закрыть
    If StartedNew Then
    exapp.Quit
    End If
    Set exapp = Nothing
    End Sub

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

    Ответ:

    Автор ответа: Kirill

    Ты хотя бы мои комментарии убрал бы из кода :))
    Если тебе нужно вводить данные в один и тот же файл, имя которого тебе заранее известно и известно, что файл этот никуда не денется и его не переименуют, то в коде процедуры вместо создания нового файла

    ' ...
    Set wBook = exapp.Workbooks.Add
    ' ...

    надо открывать имеющийся файл

    ' ...
    Set wBook = exapp.Workbooks.Open(<имя_файла>)
    ' добавляешь данные как тебе нужно
    ' чтоб Excel не выводил вообще никаких предупреждений
    exapp.DisplayAlerts = False
    wBook.Save ' сохраняем внесенные изменения
    wBook.Close
    ' можно вообще-то написать wBook.Close True
    ' т.е. сохранить внесенные изменения при закрытии файла
    exapp.DisplayAlerts = True ' вернем на место предупреждения
    ' ...

    Вообще в хелпе по Excel'ю все подробно описано и можно разобраться без чужих советов :)

    Вопрос:

    Застрял немного. на форме есть MSFlexGrid. На экране отображаются всего строк 10 - 20 остальные ниже. к примеру я в программе выделяю 31 строку, MSFG1.Row = 31, а как прокрутить скрол до этой строки. чтобы она была в числе видимых на экране?

    Ответ:

    Автор ответа: Данил Терновых

    Используйте свойство .TopRow
    Его как-то так запрятали, что мы тоже долго искали. :-)

    Вопрос:

    Застрял немного. на форме есть MSFlexGrid. На экране отображаются всего строк 10 - 20 остальные ниже. к примеру я в программе выделяю 31 строку, MSFG1.Row = 31, а как прокрутить скрол до этой строки. чтобы она была в числе видимых на экране?

    Ответ:

    Автор ответа: А. Малышев

    У MS FlexGrid есть свойство TopRow.
    (MSFlexGrid.TopRow=25)

    Вопрос:

    Застрял немного. на форме есть MSFlexGrid. На экране отображаются всего строк 10 - 20 остальные ниже. к примеру я в программе выделяю 31 строку, MSFG1.Row = 31, а как прокрутить скрол до этой строки. чтобы она была в числе видимых на экране?

    Ответ:

    Автор ответа: Real

    MSFlexGrid.TopRow устанавливает/возвращает видимую верхнюю строку флексгрида
    MSFlexGrid.LeftRow устанавливает/возвращает видимый левый столбец флексгрида

    Вопрос:

    Делаю отчет с помощью Datareport, но отчет широкий и его ориентацию нужно сменить на ландшафт. а как это сделать? у меня не получается

    Ответ:

    Автор ответа: Игорь Кузенков

    Есть такое свойство у объекта DataReport - .Orientation, которое можно установить почему-то только программно. Желательно перед перед методом .Show, конечно ;-)

    Вопрос:

    Не могу влить в TextBox текст большого объема (65кб).Текст меньшего объема вливает без проблемм.

    Ответ:

    Автор ответа: Rafis

    А в TextBox больше и нельзя!
    Используй RichTextBox, туда по идее можно скоко хош инфы слить.

    Вопрос:

    Не могу влить в TextBox текст большого объема (65кб).Текст меньшего объема вливает без проблемм.

    Ответ:

    Автор ответа: Sergey Y. Tkachev

    Это и есть абосолютно естественное ограничение для ТекстБокса. Для больших объемов текста Майкрософты говорят использовать RichEdit.

    Вопрос:

    Есть код работы с базой открытой таким образом

    Dim db1 As Database
    Dim rs1 As Recordset

    Dim strDBName1 As String
    Dim strRSName1 As String

    strDBName1 = App.Path & "\фигня.mdb"
    strRSName1 = "фигня1"

    Set db1 = DBEngine.OpenDatabase(strDBName1)
    Set rs1 = db1.OpenRecordset(strRSName1, dbOpenDynaset)

    таблица Фигня1 имеет пару полей
    Хочу чтобы при выборе в Combobox на форме значения, оно находилось в таблице и к другому числовому полю таблицы добавлялось число из текстбокса лежащего на форме

    Ответ:

    Автор ответа: alzhig

    Примерно так:
    'Твое начало
    .....
    WITH RS1
    .FINDFIRST "[Value]=" & me.combo1
    IF .NOMATCH THEN
    MSGBOX "Значение не найдено!"
    ....
    ELSE
    .EDIT
    !NEWValue=!NEWValue+ME.TXTBOX1
    .UPDATE
    ENDIF
    END WITH
    'Закрываем рекордсет и базу
    .....
    'Value-первое поле таблицы,где ищем значение
    'NEWValue-второе поле таблицы,где меняем значение

    Вопрос:

    Подскажите пожалуйста, как проверить есть ли связь с интернет

    Ответ:

    Автор ответа: Шатрыкин Иван

    На сайте в разделе Примеры есть пример, который определяет это дело с помощью трех различных способов. Кроме того в Библиотеке кодов есть соответствующий раздел.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 72.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый 70-ый выпуск рассылки!!!
    Читайте!

    Содержание выпуска
    • Книги

    • Итоги конкурса на лучшую статью

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Итоги конкурса на лучшую статью

    Завершен конкурс на лучшую статью. Первое место и, соответственно, книгу получает Ларин Александр за статью "Разработка нового языка программирования на Visual Basic". Александр выбрал в качестве приза книгу: Криса Касперски "Техника и философия хакерских атак". В ближайшее время книга будет выслана победителю по почте. Второе место и 50000 баннеров получает Dydl за статью "Изменение размеров элементов управления внутри форм с изменяемыми границами". Авторам направлены письма с подтверждением их победы.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 04.07.2002 19:27 | Раздел: Примеры кода | Автор: Неизвестный автор

    ResViewer - Программа для просмотра и "выдергивания" ресурсов из файлов! Все на Visual Basic с исходниками. Позволяет просмотреть и все ресурсы Windows. Теперь нет проблем с иконками, курсорами и т.п. Однако не стоит забывать, что при использовании чужих ресурсов нужно соблюдать авторские права.

    Дата: 01.07.2002 19:18 | Раздел: Примеры кода | Автор: Беляев Данила

    ScrollBarMap - Как создать ScrollBar во время выполнения программы? Элементарно! Вот пример Данилы Беляева, где все это делается на раз-два. Смотрите, изучайте - чистый API.

    Последние 20 тем форума на VBNet.Ru:

    10:52 / 7 июл. Авторские права | Хитов: 14 | Ответов: 2
    10:49 / 7 июл. Что есть DLL? | Хитов: 16 | Ответов: 1
    10:47 / 7 июл. Файлы ресурсов вне программы | Хитов: 7 | Ответов: 0
    10:45 / 7 июл. Перехват ошибок Windows | Хитов: 11 | Ответов: 0
    09:27 / 7 июл. Скан-коды | Хитов: 10 | Ответов: 1
    22:24 / 6 июл. Админам... | Хитов: 16 | Ответов: 3
    21:50 / 6 июл. Что-то типа терминала... | Хитов: 19 | Ответов: 2
    21:23 / 6 июл. Генератор случайных чисел | Хитов: 14 | Ответов: 1
    16:09 / 6 июл. База Access через ADO ? | Хитов: 14 | Ответов: 1
    15:05 / 6 июл. Шифрование базы | Хитов: 17 | Ответов: 2
    14:28 / 6 июл. Помогите с базой данных!!! | Хитов: 20 | Ответов: 4
    13:11 / 6 июл. Проблемы с обновлением данных в MSHFlexGrid | Хитов: 14 | Ответов: 0
    00:53 / 6 июл. Systray русский или английский? | Хитов: 20 | Ответов: 2
    00:29 / 6 июл. Infragistics UltraSuite 3 | Хитов: 15 | Ответов: 0
    20:38 / 5 июл. пуст ли динам. типизированый масив | Хитов: 22 | Ответов: 5
    19:40 / 5 июл. Масив | Хитов: 19 | Ответов: 0
    19:27 / 5 июл. RichTextBox | Хитов: 20 | Ответов: 3
    17:44 / 5 июл. WinSock Control | Хитов: 20 | Ответов: 3
    15:51 / 5 июл. пожалуйста помогите | Хитов: 32 | Ответов: 2
    14:37 / 5 июл. Доступ к элементам охватывающей формы | Хитов: 27 | Ответов: 1

    Последние поступления в Библиотеку кодов:

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     RAD

    Ответ ожидается по этому адресу

    Подскажите как можно убрать правую полосу прокрутки в элементе управления Webbrowser. Делую яаставку для проги и "бездействующая" полоса как-то не вписывается в дияайн.
    И кто может подскаяать код для органияации автопрокрутки в Webbrowser (c ияменением скорости прокрутки)

    Автор вопроса: Эдуард Маркелов

    Ответ ожидается по этому адресу

    Нужно присвоить некоторые значения, ещё не загруженой дочерней форме, так, чтобы она на это ни как не отриагировала, т.е. осталась не загруженой.

    Автор вопроса: LexA

    Ответ ожидается по этому адресу

    Как сделать так, чтобы при нажатии клавиш Alt+Ctrl+Del не вылетало меню, либо в списке не было моей программы?

    Автор вопроса: Роман

    Ответ ожидается по этому адресу

    Подскажите ,пожалуйста, код формы чтобы из однога окна при нажатии кнопки запускалось другое?

    Ответы:

    Вопрос:

    Кто знает как изменить форму или рисунок кнопки?

    Ответ:

    Автор ответа: Kurt Haeldar

    Для изменения формы кнопки (да и не только кнопки, но и любого объекта, у которого есть Hwnd) существуют функции

    CreateEllipticRgn
    CreatePolygonRgn
    CreateRectRgn

    Эти функции создают регионы - контуры объектов.

    CombineRgn - совмещает два региона, например можно сделать бублик.

    SetWindowRgn - применяет созданный регион к объекту. Как раз и есть смена формы кнопки.
    Если же писать код, то выглядит он так (нужна форма и на ней 2 кнопки)

    Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
    Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long

    Private Sub Command1_Click()
    Dim myrgn As Long
    myrgn = CreateEllipticRgn(0, 0, 100, 150)
    SetWindowRgn Form1.hWnd, myrgn, True
    End Sub

    Private Sub Command2_Click()
    SetWindowRgn Form1.hWnd, 0, True
    End Sub

    Этот пример изменяет форму самого окна. Только кнопки расположи поближе к левому верхнему углу формы. Если поиграться с координатами с строке CreateEllipticRgn и заменить параметр form1.hwnd на hwnd какой-нибудь кнопки, то будет меняться именно эта кнопка.
    Это, что касается фомры кнопки. А вот с ее рисунком все гораздо проще - у нее (кнопки) есть свойство Style. Поставь его в Graphical, а затем в свойство Picture внеси путь к картинке, которую надо повесить на кнопку. Если нужна будет дополнительная инфа по функциям регионов - либо пиши, отвечу, либо зайди на сайт www.allapi.net. Там прога API-GUIDE - классная вещь. Это справочник по API

    Вопрос:

    В текстовом документе нужно от определенного слова до еще одного слова выделить этот блок и скопировать в буфер. Как это осуществить?

    Ответ:

    Автор ответа: Виталий Венгров

    Если хочешь возьми мою функцию :

    Private Function Otbor(MyString As String, strBegin As String, strEnd As String)
    ' MyString - вся строка
    ' Begin - первое слово
    ' End - второе слово

    Dim NomerN&

    NomerN& = InStr(1, MyString, strBegin, 1) + Len(strBegin)
    Otbor = Mid(MyString, NomerN&, InStr(NomerN&, MyString, strEnd, 1) - NomerN&)

    ' эта функция отбирает текст между словами не захватывая их самих.
    ' Если нужно включить и их то

    ' NomerN& = InStr(1, MyString, strBegin, 1)
    ' Otbor = Mid(MyString, NomerN&, InStr(NomerN&, MyString, strEnd, 1) - NomerN& + Len(strEnd))

    End Function

    Теперь чтобы закинуть в буфер делаешь так :

    Clipboard.Clear
    Clipboard.SetText Otbor(strText, "одно слово", "другое слово")

    Вопрос:

    Вояможно ли программно соядать файл MS Access? Если можно, то как? И как соядавать в ней таблицы?

    Ответ:

    Автор ответа: Виталий Венгров

    Очень подробное описание есть по адресу http://azbukavb.narod.ru/dbdoc/dbdoc1.html
    Правда все с помощью DAO. Интересно возможно ли все это проделать с ADO.

    Вопрос:

    Нужна помощь! У меня такой вопрос: в моей программе есть форма с настройками и при нажатии кнопки применить происходит следущее:

    Private Sub Command2_Click()
    If Check1.Value = 1 Then cbdend = 1 'открыть вначале работы
    If Check2.Value = 1 Then cbdtim = 1 'открыть в конце работы
    sbdh = Text2.Text 'имя
    sbdm = Text3.Text 'фамилия
    If Check3.Value = 1 Then arcpro = 1 'есть архив
    If Check4.Value = 1 Then arcend = 1 'нет архива
    pathbd = Text1.Text 'путь к файлам
    End Sub

    Вот так формируются переменные на основе моих настроек и как их теперь записать в файл "setup.ini" в дирректории моей программы, а потом считать их оттуда при следующей загрузке программы? Спасибо!

    Ответ:

    Автор ответа: Umidjon B. Rahmonberdiev

    Это надо написать в новый модуль:

    Option Explicit

    Private Declare Function GetPrivateProfileString _
    Lib "kernel32" Alias "GetPrivateProfileStringA" ( _
    ByVal lpApplicationName As String, _
    ByVal lpKeyName As Any, _
    ByVal lpDefault As String, _
    ByVal lpReturnedString As String, _
    ByVal nSize As Long, _
    ByVal lpFileName As String) As Long

    Private Declare Function WritePrivateProfileString _
    Lib "kernel32" Alias "WritePrivateProfileStringA" ( _
    ByVal lpApplicationName As String, _
    ByVal lpKeyName As Any, _
    ByVal lpString As Any, _
    ByVal lpFileName As String) As Long

    'Writing a key and value to the INI file
    Public Sub WriteString(ByVal xAppName As String, _
    ByVal xKeyName As String, ByVal xString As String, _
    ByVal xAppPath As String)

    Dim P As Long

    P = WritePrivateProfileString(xAppName, xKeyName, _
    xString, xAppPath)

    End Sub

    Public Function ReadPrivateString _
    (ByVal xAppName As String, _
    ByVal xKeyName As String, _
    ByVal xAppPath As String) As String

    Dim N As Long
    Dim Word As String * 80

    N = GetPrivateProfileString(xAppName, xKeyName, _
    "", Word, 80, xAppPath)

    If N > 0 Then
    ReadPrivateString = Left(Word, N)
    Else
    ReadPrivateString = ""
    End If

    End Function

    А так им дальше можно пользоватся:

    S1 = название раздела в файле конфигурации
    s2 = название ключа в разделе
    s3 = значение ключа

    Писать:

    s1="Параметры"
    s2="Название автора"
    s3="Умиджон Рахмонбердиев"

    WriteString s1, s2, s3 , App.Path & "\setup.ini"

    Читать:
    S3 = ReadPrivateString(s1, s2, App.Path & "\setup.ini")

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 73.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.
Новости сайта IgorykSoft и советы по программированию

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск...
    Читайте!

    Содержание выпуска
    • Книги

    • Как воспроизвести звук и видео
    • Получить информацию из тэга MP3-файла
    • Как изменить разрешение экрана
    • Функции для работы с джойстиком
    • Пример создания базы данных кодом
    • Сохранение файла в БД и получение его обратно из БД

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Как воспроизвести звук и видео

    'Вариант 1

    Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long
    Private Sub Form_Click()
    Dim res
    res = mciExecute("Play C:\Путь_до_файла")
    End Sub
    'Вообще, для того, что бы воспроизвести аудио или видео файл, можно воспользоваться элементом управления Microsoft Multimedia Control, но при этом вместе с вашим приложением придется таскать файл MCI32.OCX, а это лишних 193 кб, приведенный же выше код гораздо меньше. Прим. все вышесказанное касается только тех случаев, когда вам необходимо просто проиграть какой-то звуковой файл из программы.

    'Вариант 2

    Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long
    Private Sub Form_Load()
    Dim x As Long
    x = PlaySound("C:\Путь_до_файла", 0, &H1 Or &H10)
    End Sub

    'Вариант 3

    Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
    Private Sub Form_Load()
    Dim x As Long
    x = sndPlaySound("C:\Путь_до_файла", &H1 Or &H10)
    End Sub

    наверх

    Получить информацию из тэга MP3-файла

    Private Sub Form_Load()
    Dim fNum As Integer
    Dim sTagIdent As String * 3
    Dim sTitle As String * 30
    Dim sArtist As String * 30
    Dim sAlbum As String * 30
    Dim sYear As String * 4
    Dim sComment As String * 30
    fNum = FreeFile
    'Замените ярлык 'c:\MySong.mp3' любым вашим файлом.
    Open "c:\MySong.mp3" For Binary As fNum
    Seek #fNum, LOF(fNum) - 127
    Get #fNum, , sTagIdent
    If sTagIdent = "TAG" Then
    Get #fNum, , sTitle
    Get #fNum, , sArtist
    Get #fNum, , sAlbum
    Get #fNum, , sYear
    Get #fNum, , sComment
    End If
    Close #fNum
    MsgBox sTitle & "," & sArtist & "," & sAlbum & "," & sYear & "," & sComment
    End Sub

    наверх

    Как изменить разрешение экрана

    Вызов функции: ChangeResolution 640, 480 (В данном случае меняется разрешение экрана на 640*480)
    Вы должны понимать, что ваш монитор должен поддерживать задаваемое разрешение

    Private Declare Function ChangeDisplaySettings Lib "user32" Alias "ChangeDisplaySettingsA" (lpDevMode As Any, ByVal dwflags As Long) As Long
    Private Declare Function EnumDisplaySettings Lib "user32" Alias "EnumDisplaySettingsA" (ByVal lpszDeviceName As Long, ByVal iModeNum As Long, lpDevMode As Any) As Boolean
    Const DM_PELSWIDTH = &H80000
    Const DM_PELSHEIGHT = &H100000
    Const CCFORMNAME = 32
    Const CCDEVICENAME = 32
    Private Type DEVMODE
    dmDeviceName As String * CCDEVICENAME
    dmSpecVersion As Integer
    dmDriverVersion As Integer
    dmSize As Integer
    dmDriverExtra As Integer
    dmFields As Long
    dmOrientation As Integer
    dmPaperSize As Integer
    dmPaperLength As Integer
    dmPaperWidth As Integer
    dmScale As Integer
    dmCopies As Integer
    dmDefaultSource As Integer
    dmPrintQuality As Integer
    dmColor As Integer
    dmDuplex As Integer
    dmYResolution As Integer
    dmTTOption As Integer
    dmCollate As Integer
    dmFormName As String * CCFORMNAME
    dmUnusedPadding As Integer
    dmBitsPerPel As Integer
    dmPelsWidth As Long
    dmPelsHeight As Long
    dmDisplayFlags As Long
    dmDisplayFrequency As Long
    End Type
    Public Sub ChangeResolution(iWidth As Single, iHeight As Single)
    Dim DevM As DEVMODE
    Dim a As Boolean
    Dim i As Long
    Dim b As Long
    i = 0
    Do
    a = EnumDisplaySettings(0&, i&, DevM)
    i = i + 1
    Loop Until (a = False)
    DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT
    DevM.dmPelsWidth = iWidth
    DevM.dmPelsHeight = iHeight
    b = ChangeDisplaySettings(DevM, 0)
    End Sub

    Private Sub Command1_Click()
    ChangeResolution 640, 480
    End Sub

    наверх

    Функции для работы с джойстиком

    В частности, этот пример покажет, есть ли у вас джойстик (1) или нет (0). Расположите на форме элемент CommandButton.

    Const JOY_BUTTON1 = &H1
    Const JOY_BUTTON2 = &H2
    Const JOY_BUTTON3 = &H4
    Const JOY_BUTTON4 = &H8

    Private Type JOYINFO
    X As Long
    Y As Long
    Z As Long
    Buttons As Long
    End Type

    Private Const JOYERR_BASE = 160
    Private Const JOYERR_NOERROR = (0)
    Private Const JOYERR_NOCANDO = (JOYERR_BASE + 6)
    Private Const JOYERR_PARMS = (JOYERR_BASE + 5)
    Private Const JOYERR_UNPLUGGED = (JOYERR_BASE + 7)
    Private Const MAXPNAMELEN = 32

    Private Type JOYCAPS
    wMid As Integer
    wPid As Integer
    szPname As String * MAXPNAMELEN
    wXmin As Long
    wXmax As Long
    wYmin As Long
    wYmax As Long
    wZmin As Long
    wZmax As Long
    wNumButtons As Long
    wPeriodMin As Long
    wPeriodMax As Long
    End Type

    Private Declare Function joyGetDevCaps Lib "winmm.dll" Alias "joyGetDevCapsA" (ByVal id As Long, lpCaps As JOYCAPS, ByVal uSize As Long) As Long
    Private Declare Function joyGetNumDevs Lib "winmm.dll" () As Long
    Private Declare Function joyGetPos Lib "winmm.dll" (ByVal uJoyID As Long, pji As JOYINFO) As Long

    Private Function GetJoyMin(ByVal joy As Integer, ji As JOYINFO) As Boolean
    Dim jc As JOYCAPS
    If joyGetDevCaps(joy, jc, Len(jc)) <> JOYERR_NOERROR Then
    GetJoyMin = False
    Else
    ji.X = jc.wXmin
    ji.Y = jc.wYmin
    ji.Z = jc.wZmin
    ji.Buttons = jc.wNumButtons
    GetJoyMin = True
    End If
    End Function

    Private Function GetJoyMax(ByVal joy As Integer, ji As JOYINFO) As Boolean
    Dim jc As JOYCAPS
    If joyGetDevCaps(joy, jc, Len(jc)) <> JOYERR_NOERROR Then
    GetJoyMax = False
    Else
    ji.X = jc.wXmax
    ji.Y = jc.wYmax
    ji.Z = jc.wZmax
    ji.Buttons = jc.wNumButtons
    GetJoyMax = True
    End If
    End Function

    Private Function GetJoystick(ByVal joy As Integer, ji As JOYINFO) As Boolean
    If joyGetPos(joy, ji) <> JOYERR_NOERROR Then
    GetJoystick = False
    Else
    GetJoystick = True
    End If
    End Function

    ' If IsConnected is False then it returns the number of
    ' joysticks the driver supports. (But may not be connected)
    ' If IsConnected is True the it returns the number of
    ' joysticks present and connected.
    ' IsConnected is true by default.
    Public Function IsJoyPresent(Optional IsConnected As Variant) As Long
    Dim ic As Boolean
    Dim i As Long
    Dim j As Long
    Dim ret As Long
    Dim ji As JOYINFO
    ic = IIf(IsMissing(IsConnected), True, CBool(IsConnected))
    i = joyGetNumDevs
    If ic Then
    j = 0
    Do While i > 0
    i = i - 1 'Joysticks id's are 0 and 1
    If joyGetPos(i, ji) = JOYERR_NOERROR Then
    j = j + 1
    End If
    Loop
    IsJoyPresent = j
    Else
    IsJoyPresent = i
    End If
    End Function

    Private Sub Command1_Click()
    MsgBox IsJoyPresent
    End Sub

    наверх

    Пример создания базы данных кодом

    Для начала вам необходимо подключить (меню Project->References) Microsoft DAO 2.5/3.51 Compatibility Library

    Вставьте следующий код, запустите проект. Если вы еще не сохранили проект, то база создаться в папке, куда вы проинсталировали VB (по умолчанию - C:\Program Files\Microsoft Visual Studio\VB98).

    Private Sub Form_Load()
    Dim dbFile As String
    ' Проверяет наличие файла, имеющего имя, которое будет присвоено новой базе данных. Если есть такая база, то новая база не создается, если нет то вызывается функция и база создается.
    If Dir(App.Path & "\kadrs.Mdb") <> "" Then
    dbFile = App.Path & "\kadrs.Mdb"
    Else:
    dbFile = dbgreit()
    End If
    End Sub
    Public Function dbgreit()
    Dim dbkadr As Database, NewWs As Workspace 'Описание БД и рабочей области
    Dim dbOpts As Long, dbName As String, tbWorker As TableDef
    Dim tbFam As TableDef, Rel1 As Relation ' Описание таблицы и отношения
    Dim Ind1, Ind2, Ind3, Ind4, Ind5 As Index'Описание индексов
    Dim Fin, Fr, Fin2, Fin3, Fr2, Fin4, Fr3, Fin5, Fr4 As Field
    Dim Fin6, Fr5, Fin7, Fr6, Fin8, Fr7, Frel As Field
    Dim Ind9 As Index, Fs1, Fs2 As Field
    ReDim F(1 To 54) As Field ' Описание полей табл. Worker
    ReDim P(1 To 10) As Field ' Описание полей табл. Family
    ' Строковая переменная, указывающая на файл БД находящийся по тому же пути, что и файл программы.
    dbName = App.Path & "\kadrs.Mdb"
    Set NewWs = DBEngine.Workspaces(0)' Создание рабочей области
    dbOpts = dbVersion35 + dnEncrypt ' Параметры БД - версия Jet-машины 3,5 и кодирование.
    Set dbkadr = NewWs.CreateDatabase(dbName, dbLangCyrillic, dbOpts) ' Создание рускоязычной БД
    ' добавление таблицы с именем Worker в БД
    Set tbWorker = dbkadr.CreateTableDef("Worker")
    ' добавление таблицы с именем Family в БД
    Set tbFam = dbkadr.CreateTableDef("Family")
    ' Создание и описание счетчика с именем Код (табл. Worker)
    Set Fin = tbWorker.CreateField("Код", dbLong) ' Создание поля в таблице с именем Код
    Set Frel = tbWorker.CreateField("Number", dbLong) ' Создаем в таблице поле связи
    Fin.Attributes = dbAutoIncrField ' Атрибуты поля - автоинкремент
    tbWorker.Fields.Append Fin ' Добавляем поля в таблицу
    tbWorker.Fields.Append Frel
    ' Первичный ключ таблицы Worker (индекс по полю Number)
    Set Ind1 = tbWorker.CreateIndex("Number")
    Ind1.Primary = True ' Устанавливаем свойство ключа - первичный ключ
    Set Frel = Ind1.CreateField("Number", dbLong) ' Создаем индексное поле аналогичное полю связи из таблицы
    Ind1.Fields.Append Frel ' Добавляем его к индексу
    tbWorker.Indexes.Append Ind1 ' Добавляем индекс к таблице

    ' Описание остальных полей (табл. Worker)
    Set F(1) = tbWorker.CreateField("Фамилия", dbText, 50) ' Создание текстового поля размером 50 символов
    Set F(2) = tbWorker.CreateField("Имя", dbText, 50)
    Set F(3) = tbWorker.CreateField("Отчество", dbText, 50)
    Set F(4) = tbWorker.CreateField("Дата рождения", dbDate) ' Создание поля даты
    Set F(5) = tbWorker.CreateField("Национальность", dbText, 50)
    Set F(6) = tbWorker.CreateField("Должность", dbText, 150)
    Set F(7) = tbWorker.CreateField("СемПоложение", dbText, 20)
    Set F(8) = tbWorker.CreateField("Телефон", dbText, 15)
    Set F(9) = tbWorker.CreateField("ДатаЗап", dbDate)
    Set F(10) = tbWorker.CreateField("Образование", dbText, 90)
    Set F(11) = tbWorker.CreateField("Телефон2", dbText, 15)
    Set F(12) = tbWorker.CreateField("Профессия", dbText, 200)
    Set F(13) = tbWorker.CreateField("Серия", dbText, 10)
    Set F(14) = tbWorker.CreateField("Номер", dbText, 10)
    Set F(15) = tbWorker.CreateField("Кем выдан", dbText, 200)
    Set F(16) = tbWorker.CreateField("ДатаВыдачи", dbDate)
    Set F(17) = tbWorker.CreateField("Место рождения", dbText, 250)
    Set F(18) = tbWorker.CreateField("Индекс", dbText, 10)
    Set F(19) = tbWorker.CreateField("Улица", dbText, 100)
    Set F(20) = tbWorker.CreateField("Город", dbText, 100)
    Set F(21) = tbWorker.CreateField("Область", dbText, 100)
    Set F(22) = tbWorker.CreateField("Район", dbText, 100)
    Set F(23) = tbWorker.CreateField("УчЗав", dbText, 200)
    Set F(24) = tbWorker.CreateField("ДатаОк1", dbDate)
    Set F(25) = tbWorker.CreateField("УчЗав2", dbText, 200)
    Set F(26) = tbWorker.CreateField("ДатаОк2", dbDate)
    Set F(27) = tbWorker.CreateField("СпецПоД", dbText, 200)
    Set F(28) = tbWorker.CreateField("Квалификация", dbText, 200)
    Set F(29) = tbWorker.CreateField("НомД", dbText, 50)
    Set F(30) = tbWorker.CreateField("УчЗван", dbText, 200)
    Set F(31) = tbWorker.CreateField("ОКОДТ", dbText, 10)
    Set F(32) = tbWorker.CreateField("ОКСО", dbText, 10)
    Set F(33) = tbWorker.CreateField("ГрУч", dbText, 30)
    Set F(34) = tbWorker.CreateField("КатУч", dbText, 30)
    Set F(35) = tbWorker.CreateField("Состав", dbText, 150)
    Set F(36) = tbWorker.CreateField("Звание", dbText, 200)
    Set F(37) = tbWorker.CreateField("ВУС", dbText, 50)
    Set F(38) = tbWorker.CreateField("Годность", dbText, 100)
    Set F(39) = tbWorker.CreateField("Военкомат", dbText, 200)
    Set F(40) = tbWorker.CreateField("СпецУч", dbText, 50)
    Set F(41) = tbWorker.CreateField("НомСтрах", dbText, 40)
    Set F(42) = tbWorker.CreateField("Date1", dbDate)
    Set F(43) = tbWorker.CreateField("Date2", dbDate)
    Set F(44) = tbWorker.CreateField("Date3", dbDate)
    Set F(45) = tbWorker.CreateField("Date4", dbDate)
    Set F(46) = tbWorker.CreateField("Date5", dbDate)
    Set F(47) = tbWorker.CreateField("Date6", dbDate)
    Set F(48) = tbWorker.CreateField("Date7", dbDate)
    Set F(49) = tbWorker.CreateField("Date8", dbDate)
    Set F(50) = tbWorker.CreateField("Date9", dbDate)
    Set F(51) = tbWorker.CreateField("Date10", dbDate)
    Set F(52) = tbWorker.CreateField("Причина", dbText, 200)
    Set F(53) = tbWorker.CreateField("Date11", dbDate)
    Set F(54) = tbWorker.CreateField("Стат", dbText, 200)

    ' Создание индекса для сортировки по фамилиям и именам (по алфавиту)
    Set Ind9 = tbWorker.CreateIndex("Name") ' Создание индекса с именем Name
    Ind9.Unique = False ' Индекс не уникальный - значения могут повторяться
    Set Fs1 = Ind9.CreateField("Фамилия")
    Set Fs2 = Ind9.CreateField("Имя")
    Ind9.Fields.Append Fs1
    Ind9.Fields.Append Fs2
    tbWorker.Indexes.Append Ind9

    ' Создание и описание счетчика с именем Код (табл. Family) аналогично таблице Worker
    Set Fin2 = tbFam.CreateField("Код", dbLong)
    Fin2.Attributes = dbAutoIncrField
    tbFam.Fields.Append Fin2

    ' Первичный ключ таблицы Family
    Set Ind2 = tbFam.CreateIndex("Код")
    Ind2.Primary = True
    Set Fin2 = Ind2.CreateField("Код", dbLong)
    Ind2.Fields.Append Fin2
    tbFam.Indexes.Append Ind2

    ' Описание остальных полей (табл. Family)
    Set P(1) = tbFam.CreateField("Номер", dbLong)
    Set P(2) = tbFam.CreateField("Кто", dbText, 20)
    Set P(3) = tbFam.CreateField("Фамилия", dbText, 50)
    Set P(4) = tbFam.CreateField("Имя", dbText, 50)
    Set P(5) = tbFam.CreateField("Отчество", dbText, 50)
    Set P(6) = tbFam.CreateField("Год рождения", dbText)

    ' Добавление полей в таблиу Worker
    For i = 1 To 54
    tbWorker.Fields.Append F(i)
    Next i

    ' Добавление полей в таблиу Family
    For i = 1 To 6
    tbFam.Fields.Append P(i)
    Next i

    ' Добавление таблицы Worker в БД
    dbkadr.TableDefs.Append tbWorker

    ' Добавление таблицы Family в БД
    dbkadr.TableDefs.Append tbFam

    ' Создание объекта Relation (связь, отношение) с именем first
    Set Rel1 = dbkadr.CreateRelation("first")
    ' Установка свойств отношения
    Rel1.Table = "Worker" ' Первичная (мастер) таблица отношения
    Rel1.ForeignTable = "Family" ' Подчиненная таблица
    Rel1.Attributes = dbRelationDeleteCascade ' Разрешить каскадное удаление данных из второй таблицы, когда удаляются связанные данные из первой
    ' Создание поля отношения и установка свойств
    Set Fr = Rel1.CreateField("Number") ' Создание поля отношения с именем Number, в первой таблице должно быть поле с таким же именем.
    Fr.ForeignName = "Номер" ' Поле отношения во второй таблице Номер.
    ' Добавление поля к объекту "отношение" и сам объект "отношение" к БД
    Rel1.Fields.Append Fr
    dbkadr.Relations.Append Rel1
    ' Закрытие БД
    dbkadr.Close
    MsgBox "Поздравляем! Вы впервые запустили программу. На Вашем диске была создана БД. Нажмите кнопку Выход, затем запустите программу снова и приступайте к работе."
    End Function

    наверх

    Сохранение файла в БД и получение его обратно из БД

    Данный пример показывает как можно сохранить двоичный файл (*.EXE, Документ MS Word и т.п.) в БД и, затем, загрузить его обратно из БД. В примере используется ADO, поэтому для работы примеру потребуется указать Reference на Microsoft Active Data Objects. Тип поля БД, в которое будет сохраняться файл, должен быть BINARY (в MS Access - OLE OBJECT).

    Public Function SaveFileToDB(ByVal FileName As String, RS As Object, FieldName As String) As Boolean
    Dim iFileNum As Integer
    Dim lFileLength As Long
    Dim abBytes() As Byte
    Dim iCtr As Integer
    On Error GoTo ErrorHandler
    If Dir(FileName) = "" Then Exit Function
    If Not TypeOf RS Is ADODB.Recordset Then Exit Function
    'считать файл в массив
    iFileNum = FreeFile
    Open FileName For Binary Access Read As #iFileNum
    lFileLength = LOF(iFileNum)
    ReDim abBytes(lFileLength)
    Get #iFileNum, , abBytes()
    'поместить содержимое массива в БД
    RS.Fields(FieldName).AppendChunk abBytes()
    Close #iFileNum
    SaveFileToDB = True
    ErrorHandler:
    End Function
    Public Function LoadFileFromDB(FileName As String, _
    RS As Object, FieldName As String) As Boolean
    Dim iFileNum As Integer
    Dim lFileLength As Long
    Dim abBytes() As Byte
    Dim iCtr As Integer
    On Error GoTo ErrorHandler
    If Not TypeOf RS Is ADODB.Recordset Then Exit Function
    iFileNum = FreeFile
    Open FileName For Binary As #iFileNum
    lFileLength = LenB(RS(FieldName))
    abBytes = RS(FieldName).GetChunk(lFileLength)
    Put #iFileNum, , abBytes()
    Close #iFileNum
    LoadFileFromDB = True
    ErrorHandler:
    End Function
    '-----------------------
    'Пример использования #1
    '-----------------------
    Dim sConn As String
    Dim oConn As New ADODB.Connection
    Dim oRs As New ADODB.Recordset
    sConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyDb.MDB;Persist Security Info=False"
    oConn.Open sConn
    oRs.Open "SELECT * FROM MYTABLE", oConn, adOpenKeyset, adLockOptimistic
    oRs.AddNew
    SaveFileToDB "C:\MyDocuments\MyDoc.Doc", oRs, "MyFieldName"
    oRs.Update
    oRs.Close
    '-----------------------
    'Пример использования #2
    '-----------------------
    Dim sConn As String
    Dim oConn As New ADODB.Connection
    Dim oRs As New ADODB.Recordset
    sConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyDb.MDB;Persist Security Info=False"
    oConn.Open sConn
    oRs.Open "SELECT * FROM MyTable", oConn, adOpenKeyset, adLockOptimistic
    LoadFileFromDB "C:\MyDocuments\MyDoc.Doc", oRs, "MyFieldName"
    oRs.Close

    Источник: http://www.relib.com/code.asp?id=444

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     SMM

    Ответ ожидается по этому адресу

    1. Есть код блокировки кнопки "Пуск":

    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
    Private Declare Function EnableWindow Lib "user32" (ByVal hwnd As Long, ByVal fEnable As Long) As Long

    Public Sub EnableStartButton(Optional Enabled As Boolean = True)
    'this will enable/disable any window with a little modifaction
    Dim lHwnd As Long
    'найти hWnd
    lHwnd& = FindWindowEx(FindWindow("Shell_TrayWnd", ""), 0&, "Button", vbNullString)
    'call the enablewindow api and do the what needs to be done
    Call EnableWindow(lHwnd&, CLng(Enabled))
    End Sub

    Private Sub Command1_Click()
    EnableStartButton False 'Кнопка ПУСК заблокирована
    End Sub
    Private Sub Command2_Click()
    EnableStartButton True 'Кнопка ПУСК не заблокирована
    End Sub

    но он не блокирует нажатие кнопки Windows и Ctrl+Esc.
    Подскажите, как это исправить.

    2. Есть две формы, как сделать, что бы первая форма появлялась внутри другой в строго определённом месте.

    Автор вопроса: EL

    Ответ ожидается по этому адресу

    Подскажите, как выполнить поиск строки в тексте HTML-я, загруженного в компонент WebBrowser. Как это делается в IE5 я уже знаю, а под 4?

    Автор вопроса: Rutshtein Alex

    Ответ ожидается по этому адресу

    Как создать на форме список, типа Alt-Tab, чтобы в нём были все запущенные программы (не процессы) и по нажатию на какой-либо элемент активной становилась указанная программа?

    Автор вопроса: Duke

    Ответ ожидается по этому адресу

    1.Как проиграть WAV и MP3 музон со скоростью 200% от нормальной (в 2 раза быстрее) и 50% скорости от нормальной (т.е. 2 раз медленнее) это надо сделать на VB6

    2.Как при помощи VB6 сохранить BMP рисунок в JPG формате

    3.У меня такая фигня: я пытался эмулировать нажатие NUMLOCK, SCROLL...,CAPS... таким образом ими мигать но шо то не робить, они не мигают, а мерцают тускло очень. Как заставить их мигать

    Автор вопроса: Rusty Angles

    Ответ ожидается по этому адресу

    Вопрос 1
    (VB.NET) Видел программу, которая используя dos-овский архиватор, находящийся в том же каталоге, распаковывала файлы, но при этом не видно было окна доса..
    Как это можно сделать?
    И еще.. как использовать DLL-библиотеки, и как узнавать ихние возможности с помошью WinDasm32?

    Вопрос 2
    (VB.NET) Добавил я в проект bmp файл, как ресурс, теперь он появился в окошке с права с верху, как его использовать, как ссылаться на него?

    Автор вопроса: Андрей

    Ответ ожидается по этому адресу

    Подскажите, для чего испольяуется модуль.

    Автор вопроса: Dimka

    Ответ ожидается по этому адресу

    Как можно использовать обхекты не стандартные в бейсике 6.0 а те которые используются в системе. допустим в ХР.
    Можно ли подключить обьекты из системы в бейсик?

    Автор вопроса: Alexander Bondarenko

    Ответ ожидается по этому адресу

    У меня на форме картинка PictureBox в ней нарисованны фигурки методами Line,Circule и.т.д я хочу програмно передвигать эти рисунки восстонавливя все то что было под ними т.е.
    1) сохраняю то, что было до рисунка
    2) рисую новый рисунок
    надо передвинуть

    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

    Как можно записать в файл открытый рисунок (в picture box) не используя функцию SavePicture, а потом его открыть. Файл должен быть примерно такого типа:
    type My_Type
    txt as string 'Для записи инфы
    pic 'Для записи картинки
    end type

    Автор вопроса: Gala

    Ответ ожидается по этому адресу

    Каким образом скопировать файл на vbscript в директорию на IIS-СЕРВЕР?
    создаю объект:
    Set fs = CreateObject "Scripting.FileSystemObject")
    теперь копирую, допустим
    fs.CopyFile "C:\org\gerb3.gif", "C:\Inetpub\wwwroot\gerb3.gif"
    но ведь мне надо указать url?

    Автор вопроса: Дина

    Ответ ожидается по этому адресу

    Где можно найти ответ, по интерфейсу Excel - ияменить подсветку активной строки в таблицах (плохо видно - бледнющая серость)

    Автор вопроса: vovan

    Ответ ожидается по этому адресу

    Подскажите плз. как из-под VB получить доступ к БД Paradox (v4.x,5.x)

    Автор вопроса: Николай

    Ответ ожидается по этому адресу

    Ищу профессионального программиста.
    Нужна программа для работы с модемом (автоответчик, баяа данных и т.д).
    Подробности и стоимость обсудим по "мылу".

    Автор вопроса: Error

    Ответ ожидается по этому адресу

    Как определть объём жесткого диска и скока на это болванчике занято места.

    Автор вопроса: Костик

    Ответ ожидается по этому адресу

    Что надо записать в коде чтобы из моей программы открывался какой-либо файл (например в формате HTML) и чтобы он открывался с любого диска, но по определённому пути.
    Например:
    Сommand1 - кнопка открывающая программу, а "Любой диск:\Мои документы\index.html" - путь к файлу

    Ответы:

    Вопрос:

    Нужно присвоить некоторые значения, ещё не загруженой дочерней форме, так, чтобы она на это ни как не отриагировала, т.е. осталась не загруженой.

    Ответ:

    Автор ответа: Sergey Y. Tkachev

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

    Допустим, у тебя есть в форме (например, frmDocument) какая-то публичная переменная, например

    Public MyVar As Integer

    Из материнской формы делаешь:

    Dim fDocument As frmDocument
    Set fDocument = New frmDocument

    Load fDocument
    fDocument.MyVar = 15
    'Форма ещё невидима!
    fDocument.Show

    Вот и всё. ТОЛЬКО!!! НЕ ЗАБУДЬ!!!
    Обязательно поставь свойство материнской формы AutoShowChildren = False
    Иначе - покажется сразу.

    Вопрос:

    Нужно присвоить некоторые значения, ещё не загруженой дочерней форме, так, чтобы она на это ни как не отриагировала, т.е. осталась не загруженой.

    Ответ:

    Автор ответа: Иван

    Если форма не загружена, то ей ничего передать нельзя.
    А данные можно получить например при загрузке формы по Form_Load.
    Пусть форма при загрузке считывает нужные переменные.
    То есть:
    ================
    ...
    'скидываем переменную в буфер
    bufVar = MyVar
    ...
    ================
    Sub Form_Load()
    ...
    'считываем из буфера
    MyFormVar = bufVar
    ...
    End Sub
    ===============

    Вопрос:

    Как сделать так, чтобы при нажатии клавиш Alt+Ctrl+Del не вылетало меню, либо в списке не было моей программы?

    Ответ:

    Автор ответа: Rafis

    Это можно сделать с помощью 2 айпияек.
    Расположи на форме 2 кнопки и напиши следующий код:

    Private Declare Function RegisterServiceProcess Lib "kernel32" (ByVal ProcessID As Long, ByVal ServiceFlags As Long) As Long
    Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long
    Private Sub Command1_Click()
    RegisterServiceProcess GetCurrentProcessId, 1 'Спрятать
    End Sub
    Private Sub Command2_Click()
    RegisterServiceProcess GetCurrentProcessId, 0 'Показать
    End Sub

    Нажатие первой кнопки прячет программу из списка, а вторая показывает.

    Вопрос:

    Как сделать так, чтобы при нажатии клавиш Alt+Ctrl+Del не вылетало меню, либо в списке не было моей программы?

    Ответ:

    Автор ответа: Kurt Haeldar

    О блокировке трех клавиш ответ прямо из предыдущего выпуска рассылки:

    'ВАРИАНТ 1

    Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long) As Long
    Private Const SPI_SCREENSAVERRUNNING = 97&
    Public Sub AllowKeys(bParam As Boolean)
    Dim lRetVal As Long, bOld As Boolean
    lRetVal = SystemParametersInfo(SPI_SCREENSAVERRUNNING, bParam, bOld, 0&)
    End Sub
    Private Sub Form_Load()
    Call AllowKeys(True) 'блокировка сочетаний
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    Call AllowKeys(False) 'разблокировка сочетаний
    End Sub

    'ВАРИАНТ 2

    'без дополнительной подпрограммы
    'Добавьте два элемента CommandButton. Первая кнопка блокирует сочетание клавиш, вторая - разрешает.
    Const SPI_SCREENSAVERRUNNING = 97
    Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" _
    (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long
    Private Sub Command1_Click()
    Call SystemParametersInfo(SPI_SCREENSAVERRUNNING, True, "1", 0)
    End Sub
    Private Sub Command2_Click()
    Call SystemParametersInfo(SPI_SCREENSAVERRUNNING, False, "1", 0)
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    Call SystemParametersInfo(SPI_SCREENSAVERRUNNING, False, "1", 0)
    End Sub

    А вот насчет скрытия проги есть API функция RegisterServiceProcess
    Объявление:
    Declare Function RegisterServiceProcess Lib "kernel32" (ByVal dwProcessID As Long, ByVal dwType As Long) As Long
    Параметры:
    dwProcessId - идентификатор процесса, который нужно скрыть или наоборот, показать. Можно поставить NULL для текущего процесса.
    dwType - само действие. Скрыть (сдеалть сервисом) или показать (сделать не-сервисом)
    Действия могут быть такими:
    RSP_SIMPLE_SERVICE - Зарегистрировать как сервис
    RSP_UNREGISTER_SERVICE - Зарегистрировать как не-сервис.

    Вопрос:

    Как сделать так, чтобы при нажатии клавиш Alt+Ctrl+Del не вылетало меню, либо в списке не было моей программы?

    Ответ:

    Автор ответа: Dmitry Gavrilov

    Взято кажется с http://www.nppdnepr.com/

    Как спрятать программу от таск мэнаджера?

    Ecли кoмy-нибyдь нyжнo пpятaть cвoи пpoгpaммы в oкнe пo Ctrl+Alt+Del, тo мoжнo вocпoльзoвaтьcя вызoвoм RegisterServiceProcess из Kernel32.dll :

    ===Cut From HELP ===
    DWORD RegisterServiceProcess( DWORD dwProcessId, DWORD dwType );

    Parameters
    dwProcessId
    Specifies the identifier of the process to register as a service process. Specifies NULL to register the current process.

    dwType
    Specifies whether the service is to be registered or unregistered. This parameter can be one of the following values.

    Value Meaning
    RSP_SIMPLE_SERVICE Registers the process as a service process.
    RSP_UNREGISTER_SERVICE Unregisters the process as a service process.

    #define RSP_SIMPLE_SERVICE 0x00000001
    #define RSP_UNREGISTER_SERVICE 0x00000000

    Return Value
    The return value is 1 if successful or 0 if an error occurs.

    ===Cut===

    Ha VB этo :

    Private Sub Form_Load()
    Dim x
    x = RegisterServiceProcess(0, 1)
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    Dim x
    x = RegisterServiceProcess(0, 0)
    End Sub

    Declare Function RegisterServiceProcess Lib "kernel32.dll" (ByVal dwProcessId As Long, ByVal dwType As Long) As Long

    Вопрос:

    Подскажите ,пожалуйста, код формы чтобы из однога окна при нажатии кнопки запускалось другое?

    Ответ:

    Автор ответа: Kurt Haeldar

    Для скрытия первой формы и показа второй есть соответственно действия hide и show.

    Private Sub Command1_Click()
    form1.hide ' скрываем первую форму
    form2.show ' показываем вторую форму
    End Sub

    Вопрос:

    Подскажите адрес где можно прочитать как делаются DLL на VB ?

    Ответ:

    Автор ответа: Носов Максим

    http://mik-seite.narod.ru/artikles/dll.htm

    Вопрос:

    Как в WinNT/Win2000/WinXP сделать так, чтобы при нажатии на Ctrl-Alt-Del ничего не происходило (яапретить Ctrl-Alt-Del)? Для Windows 95/98/ME подходит:

    ret = SystemParametersInfo(SPI_SCREENSAVERRUNNING, True, pOld, 0)

    , но в NT/2000/XP это не работает.

    Ответ:

    Автор ответа: P@Ssword

    В Win2k Ctrl-Alt-Del - это системная комбинация, которая вызывает меню блокировки, смены пароля и т.д. Кроме того, эту комбинацию надо нажимать при вводе пароля для повышения безопасности (т.е. эта комбинация монопольно используется системой), поэтому, я думаю, понятно, что заблокировать её невозможно.

    Вопрос:

    Не могу влить в TextBox текст большого объема (65кб).Текст меньшего объема вливает без проблемм.

    Ответ:

    Автор ответа: P@Ssword

    И не вольёшь. А если будешь пытаться - прорвёт (^_^). TextBox не понимает тексты длиной более (65536|32768, нужное подчеркнуть) символов. Используй RichTextBox.

    Вопрос:

    В текстовом документе нужно от определенного слова до еще одного слова выделить этот блок и скопировать в буфер. Как это осуществить?

    Ответ:

    Автор ответа: Duke

    Если я правильно понял то надо в буфер затолкать выделенный текст.
    Поставь Textbox(Text1) и Commandbutton(Command1)
    '.........
    Private Sub Command1_Click()
    Clipboard.SetText (Text1.SelText)
    End Sub
    '.........
    Если я не правильно понял напиши поподробнее.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 74.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск рассылки!!!
    Читайте!

    Содержание выпуска
    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 08.07.2002 19:28 | Раздел: Примеры кода | Автор: Ivan

    GetErrorDescription - Те кто программирует с использованием API сталкивались с проблемой когда при вызове очередной АПИ функции возникает какаянибуть ошибка, номер которой легко получить используя Err.LastDllError, однако для того чтобы узнать что именно не так приходится лезть в какойнибуть справочник и смотреть что она означает. А когда описание ошибки должно выводится пользователю, то приходится через select case описывать вручную наиболее встречающиеся ошибки. ВСЁ это муторно и ненужно! Описание ошибки легко получить используя всего ОДНУ дополнительную АПИ функицию, при этом описание будет на томже языке что сама Windows.

    Последние 20 тем форума на VBNet.Ru:

    09:30 / 13 июл. API - RegSetValueEx | Хитов: 5 | Ответов: 1
    13:47 / 12 июл. Свойство DataFormat... | Хитов: 19 | Ответов: 0
    11:37 / 12 июл. Работа с панелью MSOffice | Хитов: 21 | Ответов: 1
    10:14 / 12 июл. Отчет в Excel | Хитов: 39 | Ответов: 10
    09:04 / 12 июл. Работа со звуком... | Хитов: 25 | Ответов: 0
    08:03 / 12 июл. Новое сообщение без темы | Хитов: 26 | Ответов: 0
    07:49 / 12 июл. dsound.dll | Хитов: 14 | Ответов: 0
    05:49 / 12 июл. Файл+Моя прога=Открытие файла моей прогой | Хитов: 47 | Ответов: 4
    21:34 / 11 июл. MouseMove? | Хитов: 35 | Ответов: 1
    21:20 / 11 июл. Автозагрузка | Хитов: 43 | Ответов: 5
    17:14 / 11 июл. Plug-In | Хитов: 35 | Ответов: 1
    17:06 / 11 июл. ОПЯТЬ ПРО ТРЭЙ | Хитов: 26 | Ответов: 1
    16:44 / 11 июл. Как просмотреть точки входа в С DLL | Хитов: 29 | Ответов: 1
    14:27 / 11 июл. VBA (Excel - 97) | Хитов: 30 | Ответов: 3
    13:23 / 11 июл. ActiveX | Хитов: 30 | Ответов: 1
    13:00 / 11 июл. Замена символа в поле... | Хитов: 48 | Ответов: 7
    12:13 / 11 июл. Как Сделать системный трэй | Хитов: 32 | Ответов: 2
    11:03 / 11 июл. Вывод в com-порт | Хитов: 17 | Ответов: 0
    10:07 / 11 июл. Работа с WinZip | Хитов: 31 | Ответов: 1
    10:01 / 11 июл. Новое сообщение без темы | Хитов: 40 | Ответов: 2

    Последние поступления в Библиотеку кодов:

    наверх

    Новости сайта VBMania

    • 12.07 - Третий номер вышел! Н-да, некисленько мы заставили вас подождать третьего номера. Но наконец-то мы смогли выпустить его в свет. Читайте!

    наверх

    Новости сайта Азбука VB

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Нет вопросов.

    Ответы:

    Вопрос:

    1. Есть код блокировки кнопки "Пуск":

    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
    Private Declare Function EnableWindow Lib "user32" (ByVal hwnd As Long, ByVal fEnable As Long) As Long

    Public Sub EnableStartButton(Optional Enabled As Boolean = True)
    'this will enable/disable any window with a little modifaction
    Dim lHwnd As Long
    'найти hWnd
    lHwnd& = FindWindowEx(FindWindow("Shell_TrayWnd", ""), 0&, "Button", vbNullString)
    'call the enablewindow api and do the what needs to be done
    Call EnableWindow(lHwnd&, CLng(Enabled))
    End Sub

    Private Sub Command1_Click()
    EnableStartButton False 'Кнопка ПУСК заблокирована
    End Sub
    Private Sub Command2_Click()
    EnableStartButton True 'Кнопка ПУСК не заблокирована
    End Sub

    но он не блокирует нажатие кнопки Windows и Ctrl+Esc.
    Подскажите, как это исправить.

    2. Есть две формы, как сделать, что бы первая форма появлялась внутри другой в строго определённом месте.

    Ответ:

    Автор ответа:     Andriy Fundyur

    Для блокирования кнопок Windows и Ctrl+Esc можна использовать
    API функцию SystemParametersInfo, но предупреждаю она отключает также функции сочетания клавиш Alt + Tab и Ctrl + Alt + Del. Эта функция сообщает системе, что в данное время выпоняется Screen Saver.
    Объявим API функцию и создадим подпрограмму ChangeState:

    Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long) As Long
    Private Const SPI_SCREENSAVERRUNNING = 97
    Public Sub ChangeState(SrcSaverRunnig As Boolean)
    Dim Ret As Long
    Ret = SystemParametersInfo(SPI_SCREENSAVERRUNNING, SrcSaverRunnig, 0, 0)
    End Sub

    В параметре SrcSaverRunning передаём состояние Screen Saver (запущен или нет, соответственно и меняем состояние клавишь). Теперь добавляем пару строк в код загрузки и выгрузки формы:
    Private Sub Form_Load()
    ChangeState True
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    ChangeState False
    End Sub

    Вопрос:

    Вопрос 1
    (VB.NET) Видел программу, которая используя dos-овский архиватор, находящийся в том же каталоге, распаковывала файлы, но при этом не видно было окна доса..
    Как это можно сделать?
    И еще.. как использовать DLL-библиотеки, и как узнавать ихние возможности с помошью WinDasm32?

    Вопрос 2
    (VB.NET) Добавил я в проект bmp файл, как ресурс, теперь он появился в окошке с права с верху, как его использовать, как ссылаться на него?

    Ответ:

    Автор ответа: SINED

    h = Shell("путь_запускаемого_файла_с_параметрами", 0)

    Второй параметр определяет стиль окна запускаемого приложения. В данном случае "0" - скрыть окно.

    Вопрос:

    Каким образом скопировать файл на vbscript в директорию на IIS-СЕРВЕР?
    создаю объект:
    Set fs = CreateObject "Scripting.FileSystemObject")
    теперь копирую, допустим
    fs.CopyFile "C:\org\gerb3.gif", "C:\Inetpub\wwwroot\gerb3.gif"
    но ведь мне надо указать url?

    Ответ:

    Автор ответа: Aleksandrov Dmitry

    А на какой стороне выполняется этот VBS и из под чего?
    Варианты:
    1. Скрипт на клиенте. Задача реализуема, если это так пиши – отвечу
    2. Скрипт на сервере в виде обычного VBS файла, который работает вне ASP (т.е. просто скрипт автоматизации). Тут тоже можно подумать(по поводу как из URL получить физический путь на диске), но ничего не гарантирую
    3. Скрипт – часть ASP страницы. Тут все просто! Чтобы из URL получить реальный путь к каталогу (и подставить его в CopyFile) необходимо использовать Server.MapPath

    Например:

    fs.CopyFile "C:\org\gerb3.gif", Server.MapPath("images/gerb3.gif")

    Вопрос:

    Подскажите плз. как из-под VB получить доступ к БД Paradox (v4.x,5.x)

    Ответ:

    Автор ответа: Aleksandrov Dmitry

    К примеру через связку ODBC Driver For Paradox -> OLE DB Provider For ODBC -> ADODB

    Вопрос:

    Как определть объём жесткого диска и скока на это болванчике занято места.

    Ответ:

    Автор ответа: Rutshtein Alex

    Public Function GetDiskSpace(lpRootPathName As String, FreeSpace As Long, TotalSpace As Long) As Boolean

    Dim lpSectorsPerCluster As Long
    Dim lpBytesPerSector As Long
    Dim lpNumberOfFreeClusters As Long
    Dim lpTotalNumberOfClusters As Long

    If GetDiskFreeSpace(lpRootPathName, lpSectorsPerCluster, _
    lpBytesPerSector, lpNumberOfFreeClusters, _
    lpTotalNumberOfClusters) <> 0 Then
    FreeSpace = lpSectorsPerCluster * lpBytesPerSector * lpNumberOfFreeClusters
    TotalSpace = lpSectorsPerCluster * lpBytesPerSector * lpTotalNumberOfClusters
    GetDiskSpace = True
    Else
    GetDiskSpace = False
    End If
    End Function

    Затем вызови эту функцию:

    Dim FreeSpace As Long
    Dim TotalSpace As Long
    GetDiskSpace "C:", FreeSpace,TotalSpace

    И получишь свободное место в перем. FreeSpace, а полный объем диска - в TotalSpace

    Вопрос:

    Что надо записать в коде чтобы из моей программы открывался какой-либо файл (например в формате HTML) и чтобы он открывался с любого диска, но по определённому пути.
    Например:
    Сommand1 - кнопка открывающая программу, а "Любой диск:\Мои документы\index.html" - путь к файлу

    Ответ:

    Автор ответа: Rutshtein Alex

    'ЭТО ВСТАВЬ В МОДУЛЬ

    Option Explicit

    Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
    (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
    ByVal lpParameters As String, ByVal lpDirectory As String, _
    ByVal nShowCmd As Long) As Long

    Declare Function FindExecutable Lib "shell32.dll" Alias "FindExecutableA" _
    (ByVal lpFile As String, ByVal lpDirectory As String, _
    ByVal lpResult As String) As Long

    Public Function Execute(File As String) As String

    'Поиск и запуск приложения для открытия заданного файла
    '=======

    On Error Resume Next

    Dim FileName As String
    Dim FileNum As Integer
    Dim RetVal As Long
    Dim Dummy As String
    Dim Exec As String * 255
    Dim i As Integer
    Dim Ext As String

    For i = 1 To Len(File)
    If Mid(File, Len(File) - i, 1) = "." Then
    Ext = Right(File, i)
    Exit For
    End If
    Next

    FileName = "c:\temp." + Ext
    FileNum = FreeFile
    Exec = Space(255)
    Open FileName For Output As #FileNum
    Close #FileNum

    RetVal = FindExecutable(FileName, Dummy, Exec)
    Kill FileName

    If RetVal <= 32 Or IsEmpty(Exec) Then
    MsgBox "Программа, запускающая файлы с расширением " + Chr(34) + Ext + Chr(34) + ", не найдена!", vbExclamation
    Else
    RetVal = ShellExecute(FormPhoto.hwnd, "open", Exec, File, Dummy, 1)
    End If
    End Function

    В ПРОГРАММЕ:

    Sub Command1_Click()
    Execute("C:\Мои документы\Мама.doc")
    End Sub

    Вопрос:

    Что надо записать в коде чтобы из моей программы открывался какой-либо файл (например в формате HTML) и чтобы он открывался с любого диска, но по определённому пути.
    Например:
    Сommand1 - кнопка открывающая программу, а "Любой диск:\Мои документы\index.html" - путь к файлу

    Ответ:

    Автор ответа: SINED

    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

    Private Sub Command1_Click()
    ShellExecute 0&, "Open", "C:\Мои документы\index.html", "", vbNullString, 1
    End Sub

    Файл можно указать любой, автоматически запустится приложение, открывающее этот файл.

    Вопрос:

    Нужно присвоить некоторые значения, ещё не загруженой дочерней форме, так, чтобы она на это ни как не отриагировала, т.е. осталась не загруженой.

    Ответ:

    Автор ответа: P@Ssword

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

    Вопрос:

    Как сделать так, чтобы при нажатии клавиш Alt+Ctrl+Del не вылетало меню, либо в списке не было моей программы?

    Ответ:

    Автор ответа: P@Ssword

    Если вопрос касается ОС Win9x/ME, то скрыть прогу можно через App.TaskVisible = False. Что касается WinNT/2K/XP, то это действие скроет прогу из закладки "Приложения" Диспетчера задач, на вкладке же "Процессы" исполняемый файл программы останется.

    Вопрос:

    Подскажите ,пожалуйста, код формы чтобы из однога окна при нажатии кнопки запускалось другое?

    Ответ:

    Автор ответа: P@Ssword

    Private Sub Кнопка_Click()
    Unload Форма1
    Форма2.Show
    End Sub

    ................ Или я не понял вопроса?

    Вопрос:

    Подскажите ,пожалуйста, код формы чтобы из однога окна при нажатии кнопки запускалось другое?

    Ответ:

    Автор ответа: Duke

    Создал 2 формы, на первую налепил кнопку (Command1)
    На кнопку кликнул и написал код:

    Form2.Show

    Вопрос:

    Как из проги на VB создать ярлык Windows для какого либо файла???

    Ответ:

    Автор ответа: Клочко

    Вот так:

    ' *******************
    ' *
    ' * Создание ярлыка на рабочем столе.
    ' *

    Dim WSHShell
    Set WSHShell = WScript.CreateObject("WScript.Shell")

    Dim MyShortcut, MyDesktop, DesktopPath

    ' Получение доступа к рабочему столу используя объект WshSpecialFolders
    DesktopPath = WSHShell.SpecialFolders("Desktop")

    ' Создание ярлыка на рабочем столе
    Set MyShortcut = WSHShell.CreateShortcut(DesktopPath & "\Название ярлыка.lnk")

    ' Установка и запись свойств ярлыка
    MyShortcut.TargetPath = WSHShell.ExpandEnvironmentStrings("X:\Путь\запускаемый файл.EXT")
    MyShortcut.WorkingDirectory = WSHShell.ExpandEnvironmentStrings("X:\Путь")
    MyShortcut.WindowStyle = 4
    ' MyShortcut.Window = 1
    MyShortcut.IconLocation = WSHShell.ExpandEnvironmentStrings("X:\Путь к иконке\файл иконки.EXT")
    MyShortcut.Save

    WScript.Echo "Мессага о том что иконка создана."

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 75.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.
Новости сайта IgorykSoft и советы по программированию

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск...
    Читайте!

    Содержание выпуска
    • Книги

    • Создание базы данных (*.mdb)
    • Программное сжатие базы данных
    • Вариант решения проблемы NULL
    • Переключение в определенное окно
    • Изменение заголовка любого окна
    • Автоматическое закрытие окна

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Создание базы данных (*.mdb)

    Прежде всего установите ссылку на Microsoft DAO 2.5/3.51 Compatibility Library через меню Project | References.
    Расположите на форме элемент Microsoft Common Dialog Control 6.0 через меню Project | Components.
    Расположите на форме элемент CommandButton.

    Данный код всего лишь создаст базу в формате mdb с указанным вами именем базы.

    Private Sub Command1_Click()
    On Error GoTo procerror
    Screen.MousePointer = 11
    Dim dbname As String
    dbname = GetDBName()
    If Len(dbname) > 0 Then
    CreateDB dbname
    End If
    procexit:
    Screen.MousePointer = 0
    Exit Sub
    procerror:
    MsgBox Err.Description
    Resume procexit
    End Sub
    Public Function GetDBName() As String
    On Error GoTo procerror
    Dim filename As String
    cd.DefaultExt = "mdb"
    cd.DialogTitle = "Create Database"
    cd.Filter = "VB Databases (*.mdb)|*.mdb"
    cd.FilterIndex = 1
    cd.Flags = cdlOFNHideReadOnly Or cdlOFNOverwritePrompt Or cdlOFNPathMustExist
    cd.CancelError = True
    cd.ShowSave
    filename = cd.filename
    On Error Resume Next
    Kill filename
    procexit:
    GetDBName = filename
    Exit Function
    procerror:
    filename = ""
    Resume procexit
    End Function
    Public Sub CreateDB(dbname As String)
    Dim db As Database
    Set db = DBEngine(0).CreateDatabase(dbname, dbLangGeneral)
    End Sub

    наверх

    Программное сжатие базы данных

    При работе с Базой Данных вы записываете, удаляете, редактируете свои данные и объем вашей БД постепенно растет. Остается он неизменным, даже если вы удалите все данные, т.к. удаленные записи машина Jet превращает в пробелы (грубо говоря). Для удаления этих пробелов время от времени проводят ''сжатие'' БД и она принемает оптимальный объем. Код приводится на примере БД Biblio.mdb

    'Закрываем БД
    Data1.Database.Close
    'Вызываем метод CompactDatabase объекта DBEngine
    'для сжатия, и сжимаем БД переименовывая ее
    DBEngine.CompactDatabase "c:\biblio.mdb", "c:\new.mdb"
    'Уничтоваем старую БД
    Kill "c:\biblio.mdb"
    'Присваиваем полученной, 'сжатой' БД
    'ее прежнее имя
    Dim OldDB
    Dim NewDB
    OldDB = "c:\new.mdb"
    NewDB = "c:\biblio.mdb"
    Name OldDB As NewDB
    'Источник: http://www.relib.com/code.asp?id=402

    наверх

    Вариант решения проблемы NULL

    На одном из русских сайтов, посвященных VB, я наткнулся на целую дискуссию, посвященную тому, что делать и как бороться с Null (в частности, при работе с базами данных). Возможно, я не прав, но я всегда для этих целей пользуюсь маленькой функцией, помещенной где-нибудь в модуле:

    Public Function CheckNull(sCheck as String) as String
    If IsNul(sCheck) Then
    CheckNull = Empty
    Else
    CheckNull=Trim$(sCheck)
    End If
    End Function

    наверх

    Переключение в определенное окно

    Вы набираете в текстовом поле название окна, и если оно присутствует в системе, то вы переключитесь в него. Преимущество/недостаток: вам необходимо знать полное название хэндла окна.

    Разместите на форме CommandButton и TextBox. Набирая в текстовом поле полный заголовок окна и нажимая на кнопку, вы переключитесь в него.

    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowsName As String) As Long
    Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal cCmdShow As Long) As Long
    Private Sub Command1_Click()
    Dim lFoundWindow As Long
    Dim lOK As Long
    Dim lOK1 As Long
    Dim X As Variant
    lFoundWindow = FindWindow(vbNullString, Text1.Text)
    If lFoundWindow = 0 Then
    MsgBox ("Указанное вами окно не запущено")
    Else
    lOK = SetForegroundWindow(lFoundWindow)
    lOK1 = ShowWindow(lFoundWindow, 9)
    lOK1 = ShowWindow(lFoundWindow, 10)
    lFoundWindow = 0
    lOK = 0
    lOK1 = 0
    End If
    End Sub

    наверх

    Изменение заголовка любого окна

    Добавьте на форму 2 TextBox и 1 CommandButton. Напишите внутри TextBox1 наименование окна, которое вы хотите изменить. Напишите внутри TextBox2 новый заголовок окна.

    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
    (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
    (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Const WM_SETTEXT = &HC
    Private Sub Command1_Click()
    Dim target_hwnd As Long
    Dim target_name As String
    Dim new_caption As String
    target_name = Text1.Text
    target_hwnd = FindWindow(vbNullString, target_name)
    If target_hwnd = 0 Then
    MsgBox "Cannot find target"
    Exit Sub
    End If
    new_caption = Text2.Text
    SendMessage target_hwnd, WM_SETTEXT, 0, ByVal new_caption
    End Sub
    Private Sub Form_Load()
    Text1.Text = "Работа с текстом"
    Text2.Text = "New Caption"
    End Sub

    наверх

    Автоматическое закрытие окна

    Используется пример с автоматическим закрытием диалогового окна MsgBox. Начните новый проект. Добавите модуль в проект. Разместите на форме элемент CommandButton.

    'КОД МОДУЛЯ

    Public Declare Function SetTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
    Private Declare Function KillTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long) As Long
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function SetForegroundWindow Lib "user32" (ByVal hWnd As Long) As Long
    Public Const NV_CLOSEMSGBOX As Long = &H5000&
    Public Sub TimerProc(ByVal hWnd As Long, ByVal uMsg As Long, ByVal idEvent As Long, ByVal dwTime As Long)
    KillTimer hWnd, idEvent
    Select Case idEvent
    Case NV_CLOSEMSGBOX
    Dim hMessageBox As Long
    hMessageBox = FindWindow("#32770", "MsgBox")
    If hMessageBox Then
    Call SetForegroundWindow(hMessageBox)
    SendKeys "{enter}"
    End If
    End Select
    End Sub

    'КОД ФОРМЫ

    Private Sub Command1_Click()
    Per = 4 * 1000
    'вместо цифры 4 введите любое число, через какое время необходимо закрыть окно (в миллисекундах)
    SetTimer hWnd, NV_CLOSEMSGBOX, Per, AddressOf TimerProc
    'Если хотите изменить заголовок "MsgBox" на что-нибудь другое, то произведите
    'эту замену и в модуле в строке hMessageBox = FindWindow("#32770", "MsgBox")
    MsgBox ("Этот MsgBox Закроется через ") & Per / 1000 & (" секунд"), vbCritical, "MsgBox"
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     FAS

    Ответ ожидается по этому адресу

    Можно ли получить свободное пространство и емкость диска используя средства самого VB, а не API - функции?

    Автор вопроса: MixeR

    Ответ ожидается по этому адресу

    Как работать с TabStrip?

    Автор вопроса: Stamenov Dimitar

    Ответ ожидается по этому адресу

    Хочу отследить нажимаемые клавиши в любом запущеном редакторе (MS Office....) и при нахождении нужного слова напр. " штраф" в момент его написания выполнять какие нибудь действия(напр.выдать сообщение).
    Хочу озадачить шефа, который часто выписывает штрафы, но знаний VB6 у меня маловато.

    Автор вопроса: SMM

    Ответ ожидается по этому адресу

    Как взять пароль пользователя из TextBox, зашифровать его и записать в файл. И как его потом вытащить из файла для сверки?

    Автор вопроса: Star

    Ответ ожидается по этому адресу

    Скажите, а как в VB-редакторе соядать макрос-сортироку для Excel по цвету раяделов?
    Например:
    Раядел1
    Элемент1, Элемент2, Элемент3,Элемент4...
    Раядел2
    Элемент1, Элемент2, Элемент3, Элемент4...
    ............

    Автор вопроса: Константин

    Ответ ожидается по этому адресу

    Как вставить клип на Flash(*.swf) в файл ресурсов(*.res) и обратится к нему при необходимости. А так же как вставить в файл ресурсов файл видео (*.avi) > 65 kb и каким образом обратится к нему.

    Автор вопроса: ALEX

    Ответ ожидается по этому адресу

    Как сохранить рисунок в JPEG или BMP?

    Автор вопроса: Diplozon

    Ответ ожидается по этому адресу

    Можно ли где-то скачать учебник для начинающего програмера. Желательно в формате PDF.

    Автор вопроса: Винокуров К

    Ответ ожидается по этому адресу

    Например в файле dog.txt мне надо найти слово "собака" и яаменить его на слово "кошка". Как это сделать?

    Автор вопроса: DDT

    Ответ ожидается по этому адресу

    Как вставить в форму поле ввода времени (как в календаре), какой компонент надо использовать. Дату нашел, а время - нет :(

    Автор вопроса: LexA

    Ответ ожидается по этому адресу

    Как сделать так, чтобы при нажатии на правую кнопку мышки не вылетало меню (как его заблокировать)?

    Автор вопроса: Sergey

    Ответ ожидается по этому адресу

    Как в VBA скомпилить MDE ия MDB?

    Ответы:

    Вопрос:

    1. Есть код блокировки кнопки "Пуск":

    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
    Private Declare Function EnableWindow Lib "user32" (ByVal hwnd As Long, ByVal fEnable As Long) As Long

    Public Sub EnableStartButton(Optional Enabled As Boolean = True)
    'this will enable/disable any window with a little modifaction
    Dim lHwnd As Long
    'найти hWnd
    lHwnd& = FindWindowEx(FindWindow("Shell_TrayWnd", ""), 0&, "Button", vbNullString)
    'call the enablewindow api and do the what needs to be done
    Call EnableWindow(lHwnd&, CLng(Enabled))
    End Sub

    Private Sub Command1_Click()
    EnableStartButton False 'Кнопка ПУСК заблокирована
    End Sub
    Private Sub Command2_Click()
    EnableStartButton True 'Кнопка ПУСК не заблокирована
    End Sub

    но он не блокирует нажатие кнопки Windows и Ctrl+Esc.
    Подскажите, как это исправить.

    2. Есть две формы, как сделать, что бы первая форма появлялась внутри другой в строго определённом месте.

    Ответ:

    Автор ответа: darknez@mail.kz

    Можно блокировать все системные клавиши таким кодом:

    Public Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long) As Long

    Public lReturn As Long
    Public lBool As Long
    lReturn = SystemParametersInfo(97, False, lBool,vbNull)'Менять False/True

    Но тогда нельзя будет пользоваться вообще никакими горячими клавишами

    Вопрос:

    Как создать на форме список, типа Alt-Tab, чтобы в нём были все запущенные программы (не процессы) и по нажатию на какой-либо элемент активной становилась указанная программа?

    Ответ:

    Автор ответа: Vasia

    Посмотри на http://www.thescarms.com/
    Сайт англоязычный, но 100% там был пример такой проги.

    Вопрос:

    Вопрос 1
    (VB.NET) Видел программу, которая используя dos-овский архиватор, находящийся в том же каталоге, распаковывала файлы, но при этом не видно было окна доса..
    Как это можно сделать?
    И еще.. как использовать DLL-библиотеки, и как узнавать ихние возможности с помошью WinDasm32?

    Вопрос 2
    (VB.NET) Добавил я в проект bmp файл, как ресурс, теперь он появился в окошке с права с верху, как его использовать, как ссылаться на него?

    Ответ:

    Автор ответа: Dilon

    Ответ на второй вопрос:
    Что бы загрузить .bmp фаил из ресурса нужно использовать функцию picture= LoadResFile(имя картинки в ресурсе,тип рисунка) picture - это объект куда ты хочешь поместить рисунок. тип рисунка может быть: vbResBitmap или vbResCursor или vbResIcon это всё.

    Вопрос:

    Подскажите, для чего испольяуется модуль.

    Ответ:

    Автор ответа: Vasia

    В основном модуль используют для объявления глобальных переменных, функций, т.е. значения соответствующим образом объявленных переменных будут доступны из любой формы, процедуры и т.д. программы.

    Вопрос:

    Как можно использовать обхекты не стандартные в бейсике 6.0 а те которые используются в системе. допустим в ХР.
    Можно ли подключить обьекты из системы в бейсик?

    Ответ:

    Автор ответа: Иван

    А как же!
    Неужели не заглядывал в Components.../References... в пункте меню Project Всякую нечисть подсоединяют через эти места. Через Components... можно подключать всякие компоненты, (наверное все ActiveX которые есть в системе) (плюс любой ActiveX, который раздобудешь в виде файла) а через References... можно подключить всякие библиотеки (типа ADO, MSOffice...)
    Только учти - все эти прибамбасы в EXE не вставляются, и при переносе проги на другой комп чего-нибудь может не хватить.

    Вопрос:

    Каким образом скопировать файл на vbscript в директорию на IIS-СЕРВЕР?
    создаю объект:
    Set fs = CreateObject "Scripting.FileSystemObject")
    теперь копирую, допустим
    fs.CopyFile "C:\org\gerb3.gif", "C:\Inetpub\wwwroot\gerb3.gif"
    но ведь мне надо указать url?

    Ответ:

    Автор ответа: Иван

    Не уловил суть вопроса: а сервер-то где???
    1) сервер интернетный тут ничего не поможет кроме FTP а это совсем другой вопрос
    2) Сервер сетевой нужен адрес к соответствующей шареной папке, а остальное - как обычно
    3) сервер собственный никакой урл не нужен вообще. просто копируй туда в wwwroot и всё!!!

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 76.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск рассылки!!!
    Читайте!

    Содержание выпуска
    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 18.07.2002 21:03 | Раздел: Примеры кода | Автор: Сенченко Анатолий

    TreeView - Иногда при работе с TreView контролом возникает очень неприятная проблема. Дело в том, что если размеры контрола небольшие, а названия нодов в нем длинные, то при использовании метода EnsureVisible для продвижения списка, ноды сдвигаются вправо, что очень неудобно. Решение этой проблемы не такое уж и простое. Этот пример демонстрирует как это можно сделать.

    Последние 20 тем форума на VBNet.Ru:

    04:01 / 21 июл. ID=Shell(..........) | Хитов: 4 | Ответов: 1
    19:56 / 20 июл. Для умных... | Хитов: 15 | Ответов: 4
    18:24 / 20 июл. Коннект Компов2 | Хитов: 7 | Ответов: 0
    15:45 / 20 июл. Sorry, But Once Again... | Хитов: 17 | Ответов: 1
    15:36 / 20 июл. Обнуление переменных уровня формы... | Хитов: 10 | Ответов: 1
    15:21 / 20 июл. Коннект комопв | Хитов: 20 | Ответов: 2
    11:24 / 20 июл. Почему не связывается с базой? | Хитов: 18 | Ответов: 3
    20:24 / 19 июл. Определение телефонного номера | Хитов: 35 | Ответов: 3
    18:40 / 19 июл. ВНИМАНИЕ! Небольшой опрос о работе форума | Хитов: 15 | Ответов: 2
    15:22 / 19 июл. Телефон... | Хитов: 25 | Ответов: 1
    14:06 / 19 июл. сообщение на пэйджер | Хитов: 20 | Ответов: 1
    13:21 / 19 июл. Помогите, нужен исходник | Хитов: 0 | Ответов: 0
    13:21 / 19 июл. Помогите, нужен исходник | Хитов: 39 | Ответов: 3
    11:10 / 19 июл. Обновление двух таблиц... | Хитов: 25 | Ответов: 1
    10:11 / 19 июл. Удаление записей | Хитов: 21 | Ответов: 1
    09:21 / 19 июл. МУХИ. Ваше мнение и все остальное | Хитов: 13 | Ответов: 0
    00:35 / 19 июл. Runtime error и Microsoft ActiveX ? | Хитов: 24 | Ответов: 1
    21:21 / 18 июл. Граждане форумяне - вопрос от админа! | Хитов: 102 | Ответов: 17
    16:40 / 18 июл. Data Environment, Relation | Хитов: 15 | Ответов: 0
    14:17 / 18 июл. Как передать параметры из VBA в Oracle ??? | Хитов: 14 | Ответов: 0

    Последние поступления в Библиотеку кодов:

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Samit

    Ответ ожидается по этому адресу

    При открытии почтового клиента хочу чтобы там соядавалось письмо такое:

    Здравствуйте, ...
    Привет вам ия ...

    Собственно вопрос: Что нужно добавить в строку
    mailto:user@server.ru?subject=Hello?body=__вот__сюда
    чтобы соядалось 2 строки в теле письма! СПАСИБО!

    Автор вопроса: Shade

    Ответ ожидается по этому адресу

    Вот был пример про то как открывать CD-Rom mciSendString("Set CDAudio Door Closed Wait", 0&, 0, 0), но вот проблема - у меня (да наверно и не только у меня) два CD-Rom'a. Что мне делать?
    Второй DVD если это имеет значение, хотя скорее всего нет

    Автор вопроса: DedMorozzz

    Ответ ожидается по этому адресу

    Как с помощью VB определить, есть ли в письме аттачмент и закачать его, а то он качает все в один файл и получается ерунда.

    Автор вопроса: Вячеслав

    Ответ ожидается по этому адресу

    Как из программы набрать телефонный номер?

    Автор вопроса: СаНеК

    Ответ ожидается по этому адресу

    Требуется, найти файл Chtoto.exe, затем записать его путь, а от ниго уже и плясать, извините, копировать туда файлы...

    Автор вопроса: Maestro Ramires

    Ответ ожидается по этому адресу

    В предыдущем выпуске рассылки (73) обсуждался вопрос о блокировке Ctrl+Alt+Del и о сокрытии проги в списке задач с помощью функций Win32API. По советам авторов ортветов всё отлично работает под Windows98, но к сожалению не под WindowsXP. Как реализовать блокировку Ctrl+Alt+Del или скрыть прогу в списке задач под Windows 2k\XP с помощью функций Win32API?

    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

    Как содержимое грида сохранить в DBF?

    Автор вопроса: Pawel

    Ответ ожидается по этому адресу

    VBScript в Outlook2K Нужна помощь.
    Система документа оборота в моей конторе построена на базе Outlook2K. В процессе создания новых форм (.oft), в которых и используется урезанный VB, столкнулся со множеством проблем...
    Из за отсутствия информации приходится использовать метод "научного тыка"...
    Подскажите где взять подробную информацию.

    Ответы:

    Вопрос:

    Можно ли получить свободное пространство и емкость диска используя средства самого VB, а не API - функции?

    Ответ:

    Автор ответа: Dilon

    Можно определить свободное место при помощи FileSystemObject. Для этого нужно вставить в меню Project->References объект Microsoft Sripting Runtime. Код,который определяет свободное место на дисках системы:
    '''''''''''''''''''''''''''''
    Option Explicit
    Dim mfsysObject As New Scripting.FileSystemObject
    Private Sub Command1_Click()
    Dim drvItem As Drive
    For Each drvItem In mfsysObject.Drives
    DoEvents
    If drvItem.IsReady Then
    txtData = txtData & drvItem.DriveLetter & vbTab & drvItem.FreeSpace & vbCrLf
    Else
    txtData = txtData & drvItem.DriveLetter & vbTab & "Диск не готов." & vbCrLf
    End If
    Next drvItem
    End Sub
    '''''''''''''''''''''''''''''

    Вопрос:

    Можно ли получить свободное пространство и емкость диска используя средства самого VB, а не API - функции?

    Ответ:

    Автор ответа: Samit

    Узнать количество свободного места на диске
    Расположите на форме элемент CommandButton

    Private Declare Function GetDiskFreeSpace Lib "kernel32" Alias "GetDiskFreeSpaceA" (ByVal lpRootPathName As String, lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, lpTtoalNumberOfClusters As Long) As Long
    Private Type DiskInformation
    lpSectorsPerCluster As Long
    lpBytesPerSector As Long
    lpNumberOfFreeClusters As Long
    lpTotalNumberOfClusters As Long
    End Type
    Dim info As DiskInformation
    Dim lAnswer As Long
    Dim lpRootPathName As String
    Dim lpSectorsPerCluster As Long
    Dim lpBytesPerSector As Long
    Dim lpNumberOfFreeClusters As Long
    Dim lpTotalNumberOfClusters As Long
    Dim lBytesPerCluster As Long
    Dim lNumFreeBytes As Double
    Dim sString As String

    Private Sub Command1_Click()
    lpRootPathName = "с:\" 'вместо С вы можете использовать букву любого существующего диска в системе
    lAnswer = GetDiskFreeSpace(lpRootPathName, lpSectorsPerCluster, lpBytesPerSector, lpNumberOfFreeClusters, lpTotalNumberOfClusters)
    lBytesPerCluster = lpSectorsPerCluster * lpBytesPerSector
    lNumFreeBytes = lBytesPerCluster * lpNumberOfFreeClusters
    sString = "Number of Free Bytes : " & lNumFreeBytes & vbCr & vbLf
    sString = sString & "Number of Free Kilobytes: " & (lNumFreeBytes / 1000) & "K" & vbCr & vbLf
    sString = sString & "Number of Free Megabytes: " & Format(((lNumFreeBytes / 1000) / 1000), "0.00") & "MB"
    MsgBox sString
    End Sub

    Вопрос:

    Можно ли получить свободное пространство и емкость диска используя средства самого VB, а не API - функции?

    Ответ:

    Автор ответа: Jumanjee

    Для этого нужно использовать FileSystemObject (класс Drive свойство FreeSpace и TottalSize)
    Сначала необходимо подключить Project --> References --> Microsoft Scripting Runtime.

    Пример:

    Private Sub GetDriveInfo()
    Dim FSO as New FileSystemObject, Driver as Drive
    Set Driver = FSO.GetDrive (FSO.GetDriveName ("C:\"))
    If Driver.IsReady = True Then
    MsgBox(Driver.TotalSize / 1048576) 'Общий размер диска С: в Мб
    MsgBox(Driver.FreeSpace / 1048576) 'Свободно в Мб
    Else
    MsgBox ("Устройство не готово")
    End If
    End Sub

    При помощи FileSystemObject можно выполнять все существующие действия над файлами, папаками, и устройствами (поиск, получение атрибутов и т.д.)

    Вопрос:

    Хочу отследить нажимаемые клавиши в любом запущеном редакторе (MS Office....) и при нахождении нужного слова напр. " штраф" в момент его написания выполнять какие нибудь действия(напр.выдать сообщение).
    Хочу озадачить шефа, который часто выписывает штрафы, но знаний VB6 у меня маловато.

    Ответ:

    Автор ответа: Dilon

    Отследить нажатие клавиши в системе можно так
    1. Сначала объявим это в модуле:
    Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
    Public Const VK_END = &H23 ' это константа для End, остальные в Api-вьювере
    2. Это код события таймера (выставите ему интервал 50-100 мс)
    If GetAsyncKeyState(VK_END) Then msgboх "Не трогай клаву 8-)", vbinformation

    Вопрос:

    Хочу отследить нажимаемые клавиши в любом запущеном редакторе (MS Office....) и при нахождении нужного слова напр. " штраф" в момент его написания выполнять какие нибудь действия(напр.выдать сообщение).
    Хочу озадачить шефа, который часто выписывает штрафы, но знаний VB6 у меня маловато.

    Ответ:

    Автор ответа: Andrew Isakov

    А что мешает тебе использовать для этих целей сам WORD? Там ведь тоже VBA встроенный, к тому же заточенный именно под задачи, которые необходимо решать в WOrde, т.е. обработка текстовых документов… Внедряешь свой модуль в Normal.dot на компе шефа – и все! Все документы, создаваемые им, будут иметь такую фишку, как обработку слова «штраф».

    Вопрос:

    Как вставить клип на Flash(*.swf) в файл ресурсов(*.res) и обратится к нему при необходимости. А так же как вставить в файл ресурсов файл видео (*.avi) > 65 kb и каким образом обратится к нему.

    Ответ:

    Автор ответа: Dilon

    Попробовал вставить авишник как Custom, но воспроизвести не удалось, т.к. стандартный элемент анимации требует путь к файлу типа String, так что нужен другой контрол или как-то ухитриться обмануть имеющийся. А Flash-ролик мне кажется будет лучше зашить в элемент управления, который нужно установить. Он находится в папке C:\Program Files\Macromedia\Flash 5\Players\InstallAXFlash.exe

    Вопрос:

    Как сохранить рисунок в JPEG или BMP?

    Ответ:

    Автор ответа: Dilon

    Для сохранения файла в .bmp или в .jpg нужно просто воспользоваться методом SavePicture
    Например
    Private Sub Command1_Click()
    SavePicture Picture1.Image, "C:\sample.jpg"
    End Sub
    Обязательно использовать Picture1.Image, а не Picture1.Picture
    Но нужно чтобы picturebox показывал весь рисунок, иначе в файле будет сохранен только тот фрагмент, который виден :-)

    Вопрос:

    Можно ли где-то скачать учебник для начинающего програмера. Желательно в формате PDF.

    Ответ:

    Автор ответа: Dilon

    Для поиска и замены в VB6 используются функции InStr и Replace.Для нахождения слова 'собака' и замены его на слово 'кошка' нужен следующий код:

    Static blnReplaced As Boolean
    If InStr(Text1.Text, "собака") Then
    If Not blnReplaced Then
    Text1 = Replace(Text1.Text, "собака", "кошка")
    End If
    End If
    blnReplaced = Not blnReplaced

    В VB5 и ниже не работает

    Вопрос:

    Можно ли где-то скачать учебник для начинающего програмера. Желательно в формате PDF.

    Ответ:

    Автор ответа: Samit

    Посмотри на http://www.zarechny.by.ru в ВИРТУАЛЬНОЙ БИБЛИОТЕКЕ

    Вопрос:

    Например в файле dog.txt мне надо найти слово "собака" и яаменить его на слово "кошка". Как это сделать?

    Ответ:

    Автор ответа: P@Ssword

    dim str as string

    open "dog.txt" for binary as #1
    str = space$(lof(1))
    get #1, 1, str
    close #1

    str = replace(str, "собака", "кошка", , , vbtextcompare)

    kill "dog.txt"

    open "dog.txt" for binary as #1
    put #1, 1, str
    close #1

    Вопрос:

    Как сделать так, чтобы при нажатии на правую кнопку мышки не вылетало меню (как его заблокировать)?

    Ответ:

    Автор ответа: Dilon

    Если я правильно понял то код должен быть таким:

    Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = vbRightButton Then Exit Sub
    Form1.PopupMenu menu
    End Sub

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 77.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.
Новости сайта IgorykSoft и советы по программированию

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск...
    Читайте!

    Содержание выпуска
    • Книги

    • Получение имен классов и всех заголовков активных окон
    • Найти любое окно
    • Заблокировать/Разблокировать любое окно в Win95/98/NT
    • Поиск hwnd процесса на панели задач
    • Получение полного пути exe-файла из его хэндла
    • Использование анимационного курсора

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Получение имен классов и всех заголовков активных окон

    Даный пример покажет в окне Debug информацию о классе окон открытых приложений и текст заголовков всех активных окон

    Private Declare Function apiGetClassName Lib "user32" Alias "GetClassNameA" (ByVal Hwnd As Long, ByVal lpClassname As String, ByVal nMaxCount As Long) As Long
    Private Declare Function apiGetDesktopWindow Lib "user32" Alias "GetDesktopWindow" () As Long
    Private Declare Function apiGetWindow Lib "user32" Alias "GetWindow" (ByVal Hwnd As Long, ByVal wCmd As Long) As Long
    Private Declare Function apiGetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal Hwnd As Long, ByVal nIndex As Long) As Long
    Private Declare Function apiGetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal Hwnd As Long, ByVal lpString As String, ByVal aint As Long) As Long
    Private Const mcGWCHILD = 5
    Private Const mcGWHWNDNEXT = 2
    Private Const mcGWLSTYLE = (-16)
    Private Const mcWSVISIBLE = &H10000000
    Private Const mconMAXLEN = 255
    Function fEnumWindows()
    Dim lngx As Long, lngLen As Long
    Dim lngStyle As Long, strCaption As String
    lngx = apiGetDesktopWindow()
    'Return the first child to Desktop
    lngx = apiGetWindow(lngx, mcGWCHILD)
    Do While Not lngx = 0
    strCaption = fGetCaption(lngx)
    If Len(strCaption) > 0 Then
    lngStyle = apiGetWindowLong(lngx, mcGWLSTYLE)
    'enum visible windows only
    If lngStyle And mcWSVISIBLE Then
    Debug.Print "Class = " & fGetClassName(lngx),
    Debug.Print "Caption = " & fGetCaption(lngx)
    End If
    End If
    lngx = apiGetWindow(lngx, mcGWHWNDNEXT)
    Loop
    End Function
    Private Function fGetClassName(Hwnd As Long)
    Dim strBuffer As String
    Dim intCount As Integer
    strBuffer = String$(mconMAXLEN - 1, 0)
    intCount = apiGetClassName(Hwnd, strBuffer, mconMAXLEN)
    If intCount > 0 Then
    fGetClassName = Left$(strBuffer, intCount)
    End If
    End Function
    Private Function fGetCaption(Hwnd As Long)
    Dim strBuffer As String
    Dim intCount As Integer
    strBuffer = String$(mconMAXLEN - 1, 0)
    intCount = apiGetWindowText(Hwnd, strBuffer, mconMAXLEN)
    If intCount > 0 Then
    fGetCaption = Left$(strBuffer, intCount)
    End If
    End Function
    Private Sub Form_Load()
    Call fEnumWindows
    End Sub

    наверх

    Найти любое окно

    Данный пример покажет, как можно по любому куску текста заголовка определить номер процесса в системе, и по этому номеру можно определить полный заголовок окна

    Option Explicit
    Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
    Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
    Private Declare Function GetNextWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Long, ByVal wFlag As Long) As Long
    Public Function GetCaption(lhWnd As Long) As String
    Dim sA As String, lLen As Long
    lLen = GetWindowTextLength(lhWnd)
    sA = String(lLen, 0)
    Call GetWindowText(lhWnd, sA, lLen + 1)
    GetCaption = sA
    End Function
    Public Function DLHFindWin(frm As Form, WinTitle As String, CaseSensitive As Boolean) As Long
    Dim lhWnd As Long, sA As String
    lhWnd = frm.hwnd
    Do
    DoEvents
    If lhWnd = 0 Then Exit Do
    If CaseSensitive = False Then
    sA = LCase(GetCaption(lhWnd))
    WinTitle = LCase(WinTitle)
    Else
    sA = GetCaption(lhWnd)
    End If
    If InStr(sA, WinTitle) Then
    DLHFindWin = lhWnd
    Exit Do
    Else
    DLHFindWin = 0
    End If
    lhWnd = GetNextWindow(lhWnd, 2)
    Loop
    End Function

    Private Sub Form_Load()
    'вместо слова internet напиши любое слово или выражение,
    'содержащее в заголовке окна, которое вы ищете
    Call MsgBox(DLHFindWin(Me, "internet", False))
    Call MsgBox(GetCaption(DLHFindWin(Me, "internet", False)))
    'ПРИМЕЧАНИЕ: вы можете использовать в вашей программе как первую, так и вторую строку
    End Sub

    наверх

    Заблокировать/Разблокировать любое окно в Win95/98/NT

    Расположите на форме 2 элемента CommandButton. В коде 'Call DisWin("Form1", ...)' замените "Form1" на требуемое окно. После нажатия на кнопку в данном окне блокируются нажатия на кнопки мыши и клавиатуры. Но вы можете поставить таймер на 20 секунд и вписать в событие Timer1_Timer() код из второй кнопки.

    #If Win32 Then
    Private Declare Function EnableWindow& Lib "user32" (ByVal hWnd As Long, ByVal fEnable As Long)
    Private Declare Function FindWindow& Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String)
    #Else
    Private Declare Function EnableWindow% Lib "user" (ByVal hWnd As Integer, ByVal aBOOL As Integer)
    Private Declare Function FindWindow% Lib "user" (ByVal lpClassName As Any, ByVal lpWindowName As Any)
    #End If
    Function DisWin(WindowName$, EnabOrDisab&) 'EX: Call DisWin("mIRC32", 0)
    Dim lFndWnd As Long
    Dim lDisEnWnd As Long
    lFndWnd = FindWindow(vbNullString, WindowName$) 'Finds the Window Name
    lDisEnWnd = EnableWindow(lFndWnd, ByVal EnabOrDisab&) 'Disables all mouse and keyboard input to the specified window.
    'In ByVal EnabOrDisab& you either enter: 0 to Disable Window or 1 to Enable it.
    End Function
    Private Sub Command1_Click()
    Call DisWin("Form1", 0)
    End Sub
    Private Sub Command2_Click()
    Call DisWin("Form1", 1)
    End Sub

    наверх

    Поиск hwnd процесса на панели задач

    Данный пример покажет hwnd процесса, представленного на панели задач. В качестве входного параметра можно задавать шаблон для поиска. Честно говоря, я не совсем разобрался, как написать шаблон, однако если вам пример понравится, можете сами разобраться.

    Обязательно добавьте модуль в ваш проект. Расположите на форме элемент CommandButton.

    'КОД ФОРМЫ

    Private Sub Command1_Click()
    Debug.Print FindWindowWild("*Mi??OSoFt In[s-u]ernet*", False)
    End Sub

    'КОД МОДУЛЯ

    Private Declare Function EnumWindows& Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long)
    Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
    Private Declare Function IsWindowVisible& Lib "user32" (ByVal hwnd As Long)
    Private Declare Function GetParent& Lib "user32" (ByVal hwnd As Long)
    Dim sPattern As String, hFind As Long

    Function EnumWinProc(ByVal hwnd As Long, ByVal lParam As Long) As Long
    Dim k As Long, sName As String
    If IsWindowVisible(hwnd) And GetParent(hwnd) = 0 Then
    sName = Space$(128)
    k = GetWindowText(hwnd, sName, 128)
    If k > 0 Then
    sName = Left$(sName, k)
    If lParam = 0 Then sName = UCase(sName)
    If sName Like sPattern Then
    hFind = hwnd
    EnumWinProc = 0
    Exit Function
    End If
    End If
    End If
    EnumWinProc = 1
    End Function

    Public Function FindWindowWild(sWild As String, Optional bMatchCase As Boolean = True) As Long
    sPattern = sWild
    If Not bMatchCase Then sPattern = UCase(sPattern)
    EnumWindows AddressOf EnumWinProc, bMatchCase
    FindWindowWild = hFind
    End Function

    наверх

    Получение полного пути exe-файла из его хэндла

    Данный пример покажет полный путь к исполняемому (exe) файлу.

    Расположите на форме элемент CommandButton. В оригинальном примере в событии Command1_Click() была лишь одна строчка (та, которая не закомментирована). Но если вы добавите модуль из примера "Поиск hwnd процесса на панели задач", то вы сможете определить полный путь exe-файла программы ИнтернетЭкспорер. Не забудьте снять комментарий в событии Command1_Click().

    Const TH32CS_SNAPPROCESS As Long = 2&
    Const MAX_PATH As Long = 260

    Private Type PROCESSENTRY32
    dwSize As Long
    cntUsage As Long
    th32ProcessID As Long
    th32DefaultHeapID As Long
    th32ModuleID As Long
    cntThreads As Long
    th32ParentProcessID As Long
    pcPriClassBase As Long
    dwflags As Long
    szexeFile As String * MAX_PATH
    End Type

    Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
    Private Declare Function CreateToolhelpSnapshot Lib "Kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlgas As Long, ByVal lProcessID As Long) As Long
    Private Declare Function ProcessFirst Lib "Kernel32" Alias "Process32First" (ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long
    Private Declare Function ProcessNext Lib "Kernel32" Alias "Process32Next" (ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long
    Private Declare Sub CloseHandle Lib "Kernel32" (ByVal hPass As Long)

    Public Function GetExeFromHandle(hwnd As Long) As String
    Dim threadID As Long, processID As Long, hSnapshot As Long
    Dim uProcess As PROCESSENTRY32, rProcessFound As Long
    Dim i As Integer, szExename As String
    ' Get ID for window thread
    threadID = GetWindowThreadProcessId(hwnd, processID)
    ' Check if valid
    If threadID = 0 Or processID = 0 Then Exit Function
    ' Create snapshot of current processes
    hSnapshot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0&)
    ' Check if snapshot is valid
    If hSnapshot = -1 Then Exit Function
    'Initialize uProcess with correct size
    uProcess.dwSize = Len(uProcess)
    'Start looping through processes
    rProcessFound = ProcessFirst(hSnapshot, uProcess)
    Do While rProcessFound
    If uProcess.th32ProcessID = processID Then
    'Found it, now get name of exefile
    i = InStr(1, uProcess.szexeFile, Chr(0))
    If i > 0 Then szExename = Left$(uProcess.szexeFile, i - 1)
    Exit Do
    Else
    'Wrong ID, so continue looping
    rProcessFound = ProcessNext(hSnapshot, uProcess)
    End If
    Loop
    Call CloseHandle(hSnapshot)
    GetExeFromHandle = szExename
    End Function

    Private Sub Command1_Click()
    'снимите комментарий, если вы добавили модуль из предыдущего примера
    'MsgBox GetExeFromHandle(FindWindowWild("*Mi??OSoFt In[s-u]ernet*", False))
    MsgBox GetExeFromHandle(Me.hwnd)
    End Sub

    наверх

    Использование анимационного курсора

    Добавьте 2 CommandButton на форму

    'ПРИМЕР 1

    Const GCL_HCURSOR = -12
    Private Declare Function ClipCursor Lib "user32" (lpRect As Any) As Long
    Private Declare Function DestroyCursor Lib "user32" (ByVal hCursor As Any) As Long
    Private Declare Function LoadCursorFromFile Lib "user32" Alias "LoadCursorFromFileA" (ByVal lpFileName As String) As Long
    Private Declare Function SetClassLong Lib "user32" Alias "SetClassLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private Declare Function GetClassLong Lib "user32" Alias "GetClassLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Dim lResult As Long
    Dim mhAniCursor As Long
    Dim mhAniCursor2 As Long
    Private Sub Command1_Click()
    'Replace 'C:\windows\cursors\hourglas.ani' with your ANI Cursor
    mhAniCursor = LoadCursorFromFile("C:\windows\cursors\hourglas.ani")
    lResult = SetClassLong((hwnd), GCL_HCURSOR, mhAniCursor)
    End Sub
    Private Sub Command2_Click()
    lResult = SetClassLong((hwnd), GCL_HCURSOR, mhBaseCursor)
    lResult = DestroyCursor(mhAniCursor)
    End Sub
    Private Sub Form_Load()
    mhBaseCursor = GetClassLong((hwnd), GCL_HCURSOR)
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    lResult = SetClassLong((hwnd), GCL_HCURSOR, mhBaseCursor)
    lResult = DestroyCursor(mhAniCursor)
    End Sub

    'ПРИМЕР 2

    Private Declare Function CopyCursor Lib "user32" Alias "CopyIcon" (ByVal hcur As Long) As Long
    Private Declare Function GetCursor Lib "user32" () As Long
    Private Declare Function LoadCursorFromFile Lib "user32" Alias "LoadCursorFromFileA" (ByVal lpFileName As String) As Long
    Private Declare Function SetSystemCursor Lib "user32" (ByVal hcur As Long, ByVal id As Long) As Long
    Private Const OCR_NORMAL = 32512
    Dim hCursor As Long, hOldCursor As Long

    Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If hCursor = 0 Then
    Dim lRet As Long, a As String, hInstance As Long, hImage As Long
    'укажите правильную директорию Windows
    a = "c:\win\cursors\" & Dir$("c:\win\cursors\*.ani")
    hCursor = LoadCursorFromFile(a)
    If hCursor Then
    lRet = GetCursor()
    hOldCursor = CopyCursor(lRet)
    lRet = SetSystemCursor(hCursor, OCR_NORMAL)
    End If
    End If
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    Dim lRet As Long
    If hCursor Then
    lRet = SetSystemCursor(hOldCursor, OCR_NORMAL)
    End If
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Max

    Ответ ожидается по этому адресу

    Как прекрепить к проэкту ещё одну форму, и как Сделать так чтоб InputBox реагировал на ввод данных, и как изменить в свойствх программы "ПРОИЗВОДИТЕЛЯ"?

    Автор вопроса: Костик

    Ответ ожидается по этому адресу

    Вопрос 1:
    Как сделать так чтобы ия папки VB60, где лежит моя прога яапускающая help.hlp файл, открывался help.hlp файл?
    Вопрос 2:
    Как можно уянать что делает какой-либо dll файл?

    Автор вопроса: Шевченко Александр

    Ответ ожидается по этому адресу

    Как программно вложить файл в письмо?

    Автор вопроса: Иван

    Ответ ожидается по этому адресу

    Как узнать (программно) где лежит шаблон Normal.dot в Office 97/2000 ?

    Автор вопроса: Иван

    Ответ ожидается по этому адресу

    Как из программы на VB отправить документ Word на печать ?

    Автор вопроса: Vlad

    Ответ ожидается по этому адресу

    помогите составить оптимальный алгоритм создания дерева (treeviewer)из таблицы, в которой два основных поля - ссылка на верхний и нижний узел ( rec_up,rec_down )

    Автор вопроса: Вадим

    Ответ ожидается по этому адресу

    VB. Как писать в определенное место файла? Типа патч.
    Как найти файл и проверить (сравнить) дату и изменить ее по своему желанию?

    Автор вопроса: Ilja A. Bakhtin

    Ответ ожидается по этому адресу

    Как сделать так, чтобы программа работала в ДОСовском окне.

    Автор вопроса: daedmen

    Ответ ожидается по этому адресу

    Народ подскажите плиз как считать/записать в файл бинарный код и где мне его в VB потом хранить ведь в переменные типа iteger и long нечего не поместиться .

    Автор вопроса: Vladimir

    Ответ ожидается по этому адресу

    Как с помощью Microsoft MAPI Controls 6.0 отправить письмо в формате HTML?

    Автор вопроса: Эдуард Маркелов

    Ответ ожидается по этому адресу

    Как получить возможность, переслать тот или иной файл на FTP сервер?

    Ответы:

    Вопрос:

    При открытии почтового клиента хочу чтобы там соядавалось письмо такое:

    Здравствуйте, ...
    Привет вам ия ...

    Собственно вопрос: Что нужно добавить в строку
    mailto:user@server.ru?subject=Hello?body=__вот__сюда
    чтобы соядалось 2 строки в теле письма! СПАСИБО!

    Ответ:

    Автор ответа: P@Ssword

    Пиши:

    mailto:pas_sword@tut.by?subject=Samit,%20hi!&body=Yoy!%20Welcome%20home,%20Samit!%0D%0DBest%20Regards%0DP@Ssword,%20mailto:pas_sword@tut.by

    Проверено на MacroHard Outgluk 2OOO %-)

    Вопрос:

    Как из программы набрать телефонный номер?

    Ответ:

    Автор ответа: Rutshtein Alex

    Используй компоненту Microsoft Comm Control

    Вопрос:

    Как из программы набрать телефонный номер?

    Ответ:

    Автор ответа: Dilon

    Чтобы набрать номер надо сначала шлёпнуть на форму инструмент Microsoft Comm Control, добавить текстовое окно и кнопочку Dial.Код:
    ''''''''''''''''
    Private Sub cmdDial_Click()
    Dim strA As String
    strA = txtNumber.Text
    comOne.CommPort = 1
    comOne.Settings = "9600,N,8,1" 'укажем скорость порта , проверка четности, кол-во битов и контр бит
    comOne.PortOpen = True
    comOne.Output = "ATDT" & strA & vbCr
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    comOne.PortOpen = False
    End Sub
    ''''''''''''''''

    Вопрос:

    В предыдущем выпуске рассылки (73) обсуждался вопрос о блокировке Ctrl+Alt+Del и о сокрытии проги в списке задач с помощью функций Win32API. По советам авторов ортветов всё отлично работает под Windows98, но к сожалению не под WindowsXP. Как реализовать блокировку Ctrl+Alt+Del или скрыть прогу в списке задач под Windows 2k\XP с помощью функций Win32API?

    Ответ:

    Автор ответа: Dilon

    По-моему, что в XP блокировать комбинацию Ctrl+Alt+Del невозможно

    Вопрос:

    В предыдущем выпуске рассылки (73) обсуждался вопрос о блокировке Ctrl+Alt+Del и о сокрытии проги в списке задач с помощью функций Win32API. По советам авторов ортветов всё отлично работает под Windows98, но к сожалению не под WindowsXP. Как реализовать блокировку Ctrl+Alt+Del или скрыть прогу в списке задач под Windows 2k\XP с помощью функций Win32API?

    Ответ:

    Автор ответа: P@Ssword

    Хотя нет, можно попробовать. Просто берёшь любой постоянный процесс (чтобы всегда был открыт, например explorer.exe), создаёшь в нём поток (thread) и запускаешь в этом потоке свою прогу. Многие ведь не знают, что обычно у эксплорера Х потоков, и не заметят увеличения Х на единицу. К тому же это число постоянно меняется (напр. открытие нового окна - +1поток), так что отследить такую прогу будет очень сложно :)

    Вопрос:

    Как работать с TabStrip?

    Ответ:

    Автор ответа: Dilon

    Мне кажется, что работать с TabStrip очень неудобно(нужно создавать контейнер для элементов управления, потом это всё прописывать в коде). Лучший вариант,на мой взгляд,- использовать SSTab(Microsoft Tabbed Control). Здесь вы просто рисуете элементы управления, не заботясь о всяких там контейнерах.

    Вопрос:

    Можно ли где-то скачать учебник для начинающего програмера. Желательно в формате PDF.

    Ответ:

    Автор ответа: Dilon

    Посмотри здесь http://emanual.ru/

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 78.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск рассылки!!!
    Читайте!

    Содержание выпуска
    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 27.07.2002 18:41 | Раздел: ActiveX контролы | Автор: Yxine

    LongMathOCX - Компонент, позволяющий производить некоторые математические операции над сверхдлинными числами. Например, можно вычислить выражение: 21000 + 5467569372564975836489564385394. ActiveX-компонент написан на Visual Basic’е 6.0. Ясно, что для хранения таких больших чисел подходить лишь String-тип. Поэтому все функции этого компонента работают с числами, записанными в строковых переменных.

    Дата: 26.07.2002 08:39 | Раздел: Примеры кода | Автор: Yxine

    Like - Имплементация функции Like для VB. Внутри примера есть исходник на C++. Может кто-нибудь сможет переписать его на VB? Вообще же очень даже полезная штука.

    Дата: 25.07.2002 18:37 | Раздел: Примеры кода | Автор: Яковлев Антон

    Search - Пример поиска файлов с помощью DirListBox и FileListBox. Все очень просто, но для начинающих самое то, что надо.

    Дата: 24.07.2002 09:12 | Раздел: Примеры кода | Автор: Половый Александр

    Стрелок - Обалденная игрушка "Стрелок"! Задача игнры стрелять по мишени. Сложность в том, что мишень "дергается" и попасть в десяточку ой как сложно. Но мне удалось разок приложиться как надо!

    Последние 20 тем форума на VBNet.Ru:

    07:23 / 28 июл. Перехват ошибок Windows 98 | Хитов: 3 | Ответов: 0
    06:54 / 28 июл. $$$Админам$$$ | Хитов: 8 | Ответов: 0
    05:35 / 28 июл. Есть или не есть... пф... нету, всмысле | Хитов: 5 | Ответов: 0
    21:22 / 27 июл. Активное окно | Хитов: 4 | Ответов: 0
    13:39 / 27 июл. Как заблокировать появление контексного меню | Хитов: 9 | Ответов: 0
    10:39 / 27 июл. !Админам! | Хитов: 34 | Ответов: 5
    15:01 / 26 июл. Серийный номер диска | Хитов: 27 | Ответов: 1
    13:38 / 26 июл. Документ Project в MS Word | Хитов: 15 | Ответов: 0
    13:12 / 26 июл. Подскажите про TextBox | Хитов: 40 | Ответов: 2
    17:51 / 25 июл. Как работь с Winsock Control' ом | Хитов: 56 | Ответов: 5
    17:09 / 25 июл. Toolbox Bitmap из ocx'a... | Хитов: 38 | Ответов: 4
    15:33 / 25 июл. Не дать юзеру завершить сеанс, пока прога работает | Хитов: 46 | Ответов: 3
    14:48 / 25 июл. Лицензия COMDLG32.OCX | Хитов: 40 | Ответов: 3
    13:06 / 25 июл. как в датагриде сделать поле со списком? | Хитов: 34 | Ответов: 1
    11:00 / 25 июл. Sub Main | Хитов: 66 | Ответов: 8
    09:31 / 25 июл. Как связать два DBF файла? | Хитов: 25 | Ответов: 0
    07:17 / 25 июл. OLE объект? | Хитов: 26 | Ответов: 0
    00:04 / 25 июл. Помогите с гридом (GRID) | Хитов: 50 | Ответов: 3
    21:49 / 24 июл. 3D графика | Хитов: 114 | Ответов: 15
    21:37 / 24 июл. Я опять про своих баранов... ( MsComm32 ) | Хитов: 37 | Ответов: 2

    Последние поступления в Библиотеку кодов:

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Саша

    Ответ ожидается по этому адресу

    У меня есть нетипияированный файл (тот который открывается RANDOM) Как уянать сколько в файле яаписей ?

    Автор вопроса: Rus Kend

    Ответ ожидается по этому адресу

    Где (в Москве или в инете) можно приобрести лицензионный VB и MSDN?

    Автор вопроса: Umid

    Ответ ожидается по этому адресу

    Как не дать юзеру выключить или завершит сеанс?

    Типа, юзер нажимает на пуск-завершение сеанса, а прога говорит, "Вы не можете выйти из Виндоус, пока я работаю", и отменяет последнее действие.

    Автор вопроса: СаНеК

    Ответ ожидается по этому адресу

    Кто знает как пользоваться компонентом Direct Text-to-Speech...пожалуйста напишите...

    Автор вопроса: VES progman

    Ответ ожидается по этому адресу

    При открытии некоторых файлов MS Excel появляется сообщение - включать или невключать макросы. Когда открываешь в этих файлах редактор Visual Basic, то никаких макросов там нет. Что это может быть ?

    Автор вопроса: ALEX

    Ответ ожидается по этому адресу

    Как программно открыть файл, что б как при двойном щелчке грыяуном открывался?

    Автор вопроса: Михаил

    Ответ ожидается по этому адресу

    Господа! Какую API-функцию следует использовать для регулировки "общей громкости воспроизведения" звуковой карты? (Применение waveOutSetVolume Lib "winmm.dll" дает возможность регулировать "громкость воспроизведения звукозаписи")

    Автор вопроса: Александр

    Ответ ожидается по этому адресу

    Как программно съимитировать нажатие кнопки мыши?

    Автор вопроса: Dmitry Gavrilov

    Ответ ожидается по этому адресу

    Форму в проект можно добавить например из меню project>AddForm вызывать её из кода MyForm.Show

    Если ты вызвал InputBox то реагировать он будет по кнопке OK ;) А если у тебя на форме лежит тектовое поле и ты хочешь научить его реагировать на нажатие Enter после ввода слова в него, то тебе надо знать, что для всех контролов (которым и является текстовое поле) и для некоторых объектов есть такая фича, как "события" - код срабатывающий при выполнении с контролом заданного действия. Например если ты щёлкнешь два раза по лежащему на орме тектовому полю, то по умолчанию создасться в коде формы процедура для обработки события

    Private Sub Text1_Change()
    ....
    ....
    End Sub

    а тебе для отработки реагирования лучше наверно использовать

    Private Sub Text1_KeyPress(KeyAscii As Integer)
    ....
    ....
    End Sub

    в который тебе и надо пихать код обработки входящего параметра KeyAscii который является кодом нажатой кнопки.

    Ответы:

    Вопрос:

    Как прекрепить к проэкту ещё одну форму, и как Сделать так чтоб InputBox реагировал на ввод данных, и как изменить в свойствх программы "ПРОИЗВОДИТЕЛЯ"?

    Ответ:

    Автор ответа: Dima

    Добавить новую форму: меню Project -> Add Form или программно:

    global frmMy as Form

    set frmMy=new Form

    frmMy.Show

    Производитель меняется так: заходишь в свойства проекта, открываешь раздел Make, в окошке Version Information выбираешь Company Name и пишешь произволителя.

    Вопрос:

    Как прекрепить к проэкту ещё одну форму, и как Сделать так чтоб InputBox реагировал на ввод данных, и как изменить в свойствх программы "ПРОИЗВОДИТЕЛЯ"?

    Ответ:

    Автор ответа: Rutshtein Alex

    Форму добавляют так: меню "Разработать --> Добавить форму".
    Насчёт InputBox ничего поменять нельзя, но кто мешает Вам добавить форму и сделать там свой InputBox. А производителя меняйте здесь: меню "Разработать --> [Проект1] свойства", выберите вкладку "Make" и там все меняется.

    Вопрос:

    Как прекрепить к проэкту ещё одну форму, и как Сделать так чтоб InputBox реагировал на ввод данных, и как изменить в свойствх программы "ПРОИЗВОДИТЕЛЯ"?

    Ответ:

    Автор ответа: SINED

    1. Чтобы добавить к проекту еще одну форму можно воспользоваться меню Project->Add Form. Вывод окна на экран осуществляется командой Form2.Visible = True или Form2.Show vbModal (в этом случае нельзя переключаться в другие окна!)

    2. У TextBox есть свойство Change. Код, описанный в процедуре Private Sub Text1_Change(), будет выполняться при изменении содержимого поля ввода.

    3. Изменить производителя можно в файле *.vbp в строке VersionCompanyName="SINED".

    Вопрос:

    Как прекрепить к проэкту ещё одну форму, и как Сделать так чтоб InputBox реагировал на ввод данных, и как изменить в свойствх программы "ПРОИЗВОДИТЕЛЯ"?

    Ответ:

    Автор ответа: Dilon

    Прикрепить форму - зайти Project выбрать Add Form и все. Про Input Box - просто присваиваешь переменную box'y и записываешь её куда хочешь:

    g=inputbox("Введи чего")
    text1.text=g

    Изменить производителя - Project->Project Properties вкладка Make->Company name просто запиши туда себя любимого

    Вопрос:

    Вопрос 1:
    Как сделать так чтобы ия папки VB60, где лежит моя прога яапускающая help.hlp файл, открывался help.hlp файл?
    Вопрос 2:
    Как можно уянать что делает какой-либо dll файл?

    Ответ:

    Автор ответа: Dilon

    Для запуска .hlp нужно использовать функцию api WinHelp. Что бы узнать возможности dll подключи его через Project->References, объявим в коде переменную как

    dim p as new mydll
    p.mydllfeatures

    Вопрос:

    Как узнать (программно) где лежит шаблон Normal.dot в Office 97/2000 ?

    Ответ:

    Автор ответа: Иван

    Normal.dot всегда вроде лежит по такому адресу:
    "C:\WIN98\Application Data\Microsoft\Шаблоны\Normal.dot"
    так что единственная переменная тут это Папка виндов. Если конечно винды обычные и офис обычный.

    Вопрос:

    Как узнать (программно) где лежит шаблон Normal.dot в Office 97/2000 ?

    Ответ:

    Автор ответа: Dilon

    Ищи при помощи функции Dir

    Вопрос:

    Как из программы на VB отправить документ Word на печать ?

    Ответ:

    Автор ответа: Dilon

    Открыть его в окошке rtf и печатать сколько влезет

    Вопрос:

    Как из программы на VB отправить документ Word на печать ?

    Ответ:

    Автор ответа: Иван

    'загружаем ворд
    set wo = CreateObject("Word.Application")
    'открываем нужный документ
    'параметры по обстоятельствам
    wo.Documents.Open FileName:="JICA.doc", ConfirmConversions:=False, ReadOnly:= _
    False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:= _
    "", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="", _
    Format:=wdOpenFormatAuto
    'переправляем на печать
    wo.ActiveDocument.PrintOut

    Cовет:
    Если не знаешь как что делать из ВБ в ёкселе или ворде: запиши макрос в ёкселе/ворде где делаешь, что нужно. потом посмотри получившийся код, и прибавь ко всем функциям в начале имя объекта и пользуйся!!!

    Это был вариант первый.
    Вариант второй такой:
    Запустить Ворд с нужными параметрами DDE, как это делается по контекстному меню на файле документа в Эксплорере.
    А вот как DDE передавать я не в курсе.
    Строка запуска:
    "C:\Program Files\Microsoft Office\Office\WINWORD.EXE" /x /n
    Строка DDE
    [REM _DDE_Minimize][FileOpen("%1")][t=IsDocumentDirty()][FilePrint 0][SetDocumentDirty t][DocClose]
    Может кто другой подскажет...

    Вопрос:

    помогите составить оптимальный алгоритм создания дерева (treeviewer)из таблицы, в которой два основных поля - ссылка на верхний и нижний узел ( rec_up,rec_down )

    Ответ:

    Автор ответа: DDA

    Я однажды использовал этот компонент и написал свой алгоритм основанный на 3-х полях: 1 - Parent, 2 - Text(Текст ноды), 3 - Child. Поля Parent и Child - числовые - где Parent 2-й ноды должен совпадать с Child 1-й и т. д.
    Вот сам алгоритм (кусок из моей проги), где TMenu - это объект TreeView, dtMenu - объект Data, - сама таблица с данными, состоящая из 3-х полей, описанных выше.:

    Sub LoadMenu()
    Dim n As Long
    Dim NewNode As Node
    Dim Tchild As String, Tparent As String, Ttext As String
    On Error Resume Next

    Set NewNode = TMenu.Nodes.Add(, , "C0", "Все товары", 4)
    If dtMenu.Recordset.RecordCount = 0 Then Exit Sub
    TMenu.Visible = False

    Z1:
    dtMenu.Recordset.MoveFirst
    Do While Not dtMenu.Recordset.EOF = True
    Tparent = dtMenu.Recordset.Fields(0)
    Ttext = dtMenu.Recordset.Fields(1)
    Tchild = dtMenu.Recordset.Fields(2)

    Set NewNode = TMenu.Nodes.Add("C" & Tparent, tvwChild, "C" & Tchild, Ttext, 1)

    dtMenu.Recordset.MoveNext
    Loop
    If Err > 0 And Err.Number <> 35602 Then
    Err.Clear
    DoEvents
    GoTo Z1
    End If
    TMenu.Visible = True
    End Sub

    Так как алгоритм писался на скорую руку, он не очень быстродейственный - но зато работает безотказно! Ж:-)

    Вопрос:

    VB. Как писать в определенное место файла? Типа патч.
    Как найти файл и проверить (сравнить) дату и изменить ее по своему желанию?

    Ответ:

    Автор ответа: Dilon

    Все это можно проделать с помощью FileSistemObject, а искать DIR'ом

    Вопрос:

    Как сделать так, чтобы программа работала в ДОСовском окне.

    Ответ:

    Автор ответа: Dilon

    Версии VB 5 и 6 расчитаны на 32-разрядные приложения и заставить их работать с 16-разр нельзя. Но если есть желание написать такую прогу, то возьми VB4 или ниже

    Вопрос:

    Как сделать так, чтобы программа работала в ДОСовском окне.

    Ответ:

    Автор ответа: Иван

    Насколько я понял тебе нужно не ДОС-окошко, а так называемое консольное приложение. Просто VB - это не тот язык на котором пишут консоли. (Visual - он и есть Visual). Я пока ни одной консоли на VB не видел. Вроде и функций соответствующих нету, и в типах проектов такого нету....
    (Вот в VB.Net - может быть такое уже можно)
    А на СиБилдере, Дельфи, VC++ - только так.

    Вопрос:

    Народ подскажите плиз как считать/записать в файл бинарный код и где мне его в VB потом хранить ведь в переменные типа iteger и long нечего не поместиться .

    Ответ:

    Автор ответа: P@Ssword

    Чтобы считать/записать в файл бинарный код, надо открыть его For Binary. А хранить его лучше всего в байтовых массивах (типа Dim BinData(0 To 1023) as Byte). Чтобы считать из файла, пишешь

    Get #Номер_файла, [Адрес], BinData

    где Адрес - смещение от начала файла + 1, т.е. если надо считать с 1-го байта - ставишь 1, с 30185-го - ставишь 30185.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 79.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.
Новости сайта IgorykSoft и советы по программированию
Visual Basic.NET Уроки.
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    3 августа 2001 года вышел первый выпуск этой рассылки! Поздравляю всех с юбилеем!
    Читайте!

    Содержание выпуска
    • Книги

    • Получить время двойного клика
    • Скрыть/показать курсор мыши
    • Курсор: Перемещение, центрирование, имитация нажатия
    • "Заморозить"/"Разморозить" курсор мыши
    • Определить над каким элементом находится курсор мыши
    • Ограничить передвижение мыши

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Получить время двойного клика

    Этот пример покажет время двойного клика в миллисекундах: 1000 milliseconds=1 second.

    Значение S лежит в ключе реестра: [HKEY_CURRENT_USER\Control Panel\Mouse] - "DoubleClickSpeed"

    Private Declare Function GetDoubleClickTime Lib "user32" () As Long
    Private Sub Form_Load()
    S = GetDoubleClickTime
    MsgBox S
    End Sub

    наверх

    Скрыть/показать курсор мыши

    'Добавьте 1 CommandButton на форму. Вызов функции как ShowCursor& 0 - скроет курсор, вызов как ShowCursor& 1 - покажет курсор. Данная API-функция не всегда срабатывает. Я не знаю, почему. Если у вас есть объяснение,     напишите.

    Private Declare Function ShowCursor& Lib "user32" (ByVal bShow As Long)
    Private Sub Command1_Click()
    ShowCursor& 0 'Скрыть курсор
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    ShowCursor& 1 'Показать курсор
    End Sub

    наверх

    Курсор: Перемещение, центрирование, имитация нажатия

    В данном примеры вы можете: CenterMouseOn - центрировать курсор мыши на каком-либо элементе, MouseMove - передвигать мышь в определенную точку экрана, MouseFullClick - имитировать нажатие клавиш мыши.

    Private Const MOUSEEVENTF_ABSOLUTE = &H8000
    Private Const MOUSEEVENTF_LEFTDOWN = &H2
    Private Const MOUSEEVENTF_LEFTUP = &H4
    Private Const MOUSEEVENTF_MIDDLEDOWN = &H20
    Private Const MOUSEEVENTF_MIDDLEUP = &H40
    Private Const MOUSEEVENTF_MOVE = &H1
    Private Const MOUSEEVENTF_RIGHTDOWN = &H8
    Private Const MOUSEEVENTF_RIGHTUP = &H10

    Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cbuttons As Long, ByVal dwExtraInfo As Long)

    Private Const SM_CXSCREEN = 0
    Private Const SM_CYSCREEN = 1
    Private Const TWIPS_PER_INCH = 1440
    Private Const POINTS_PER_INCH = 72

    Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long

    Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
    End Type

    Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long

    Private Const MOUSE_MICKEYS = 65535

    Public Enum enReportStyle
    rsPixels
    rsTwips
    rsInches
    rsPoints
    End Enum

    Public Enum enButtonToClick
    btcLeft
    btcRight
    btcMiddle
    End Enum

    ' Returns the screen size in pixels or, optionally, in others scalemode styles
    Public Sub GetScreenRes(ByRef X As Long, ByRef Y As Long, Optional ByVal ReportStyle As enReportStyle)
    X = GetSystemMetrics(SM_CXSCREEN)
    Y = GetSystemMetrics(SM_CYSCREEN)
    If Not IsMissing(ReportStyle) Then
    If ReportStyle <> rsPixels Then
    X = X * Screen.TwipsPerPixelX
    Y = Y * Screen.TwipsPerPixelY
    If ReportStyle = rsInches Or ReportStyle = rsPoints Then
    X = X \ TWIPS_PER_INCH
    Y = Y \ TWIPS_PER_INCH
    If ReportStyle = rsPoints Then
    X = X * POINTS_PER_INCH
    Y = Y * POINTS_PER_INCH
    End If
    End If
    End If
    End If
    End Sub

    ' Convert's the mouses coordinate system to a pixel position.
    Public Function MickeyXToPixel(ByVal mouseX As Long) As Long
    Dim X As Long
    Dim Y As Long
    Dim tX As Single
    Dim tmouseX As Single
    Dim tMickeys As Single
    GetScreenRes X, Y
    tX = X
    tMickeys = MOUSE_MICKEYS
    tmouseX = mouseX
    MickeyXToPixel = CLng(tmouseX / (tMickeys / tX))
    End Function

    ' Converts mouse Y coordinates to pixels
    Public Function MickeyYToPixel(ByVal mouseY As Long) As Long
    Dim X As Long
    Dim Y As Long
    Dim tY As Single
    Dim tmouseY As Single
    Dim tMickeys As Single
    GetScreenRes X, Y
    tY = Y
    tMickeys = MOUSE_MICKEYS
    tmouseY = mouseY
    MickeyYToPixel = CLng(tmouseY / (tMickeys / tY))
    End Function

    ' Converts pixel X coordinates to mickeys
    Public Function PixelXToMickey(ByVal pixX As Long) As Long
    Dim X As Long
    Dim Y As Long
    Dim tX As Single
    Dim tpixX As Single
    Dim tMickeys As Single
    GetScreenRes X, Y
    tMickeys = MOUSE_MICKEYS
    tX = X
    tpixX = pixX
    PixelXToMickey = CLng((tMickeys / tX) * tpixX)
    End Function

    ' Converts pixel Y coordinates to mickeys
    Public Function PixelYToMickey(ByVal pixY As Long) As Long
    Dim X As Long
    Dim Y As Long
    Dim tY As Single
    Dim tpixY As Single
    Dim tMickeys As Single
    GetScreenRes X, Y
    tMickeys = MOUSE_MICKEYS
    tY = Y
    tpixY = pixY
    PixelYToMickey = CLng((tMickeys / tY) * tpixY)
    End Function

    Public Function CenterMouseOn(ByVal hwnd As Long) As Boolean
    Dim X As Long
    Dim Y As Long
    Dim maxX As Long
    Dim maxY As Long
    Dim crect As RECT
    Dim rc As Long
    GetScreenRes maxX, maxY
    rc = GetWindowRect(hwnd, crect)
    If rc Then
    X = crect.Left + ((crect.Right - crect.Left) / 2)
    Y = crect.Top + ((crect.Bottom - crect.Top) / 2)
    If (X >= 0 And X <= maxX) And (Y >= 0 And Y <= maxY) Then
    MouseMove X, Y
    CenterMouseOn = True
    Else
    CenterMouseOn = False
    End If
    Else
    CenterMouseOn = False
    End If
    End Function

    Public Function MouseFullClick(ByVal MBClick As enButtonToClick) As Boolean
    Dim cbuttons As Long
    Dim dwExtraInfo As Long
    Dim mevent As Long
    Select Case MBClick
    Case btcLeft
    mevent = MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP
    Case btcRight
    mevent = MOUSEEVENTF_RIGHTDOWN Or MOUSEEVENTF_RIGHTUP
    Case btcMiddle
    mevent = MOUSEEVENTF_MIDDLEDOWN Or MOUSEEVENTF_MIDDLEUP
    Case Else
    MouseFullClick = False
    Exit Function
    End Select
    mouse_event mevent, 0&, 0&, cbuttons, dwExtraInfo
    MouseFullClick = True
    End Function

    Public Sub MouseMove(ByRef xPixel As Long, ByRef yPixel As Long)
    Dim cbuttons As Long
    Dim dwExtraInfo As Long
    mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_MOVE, PixelXToMickey(xPixel), PixelYToMickey(yPixel), cbuttons, dwExtraInfo
    End Sub

    Private Sub Command1_Click()
    Call CenterMouseOn(Command1.hwnd)
    End Sub

    наверх

    "Заморозить"/"Разморозить" курсор мыши

    Расположите на форме 2 элемента CommandButton. При нажатии на первую кнопку, курсор мыши заморозится. При нажатии на вторую конпку - курсор снова будет активным. Используйте клавишу TAB для перехода с фокуса первой кнопки на фокус второй.

    Private Declare Function ClipCursor Lib "user32" (lpRect As Any) As Long
    Private Sub Command1_Click()
    ClipCursor Null
    End Sub
    Private Sub Command2_Click()
    ClipCursor ByVal 0&
    End Sub

    наверх

    Определить над каким элементом находится курсор мыши

    Добавьте на форму элемент ListBox.

    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Const LB_ITEMFROMPOINT = &H1A9
    Private Sub Form_Load()
    List1.AddItem "111"
    List1.AddItem "222"
    List1.AddItem "333"
    List1.AddItem "444"
    End Sub
    Private Sub List1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim lXPoint As Long
    Dim lYPoint As Long
    Dim lIndex As Long
    If Button = 0 Then
    lXPoint = CLng(X / Screen.TwipsPerPixelX)
    lYPoint = CLng(Y / Screen.TwipsPerPixelY)
    With List1
    lIndex = SendMessage(.hwnd, LB_ITEMFROMPOINT, 0, ByVal _
    ((lYPoint * 65536) + lXPoint))
    If (lIndex >= 0) And (lIndex <= .ListCount) Then
    ' .List(lIndex) contains the name of the item under the mouse cursor.
    ' if you want to display the item in textbox, simply write:
    ' Text1.Text =.List(lIndex)
    .ToolTipText = .List(lIndex)
    Else
    .ToolTipText = ""
    End If
    End With
    End If
    End Sub

    наверх

    Ограничить передвижение мыши

    Данный пример покажет, как можно ограничить передвижение мыши в пределах запущенной формы.
    Расположите на форме 2 элемента CommandButton.

    Private Declare Sub ClipCursor Lib "user32" (lpRect As Any)
    Private Declare Sub GetClientRect Lib "user32" (ByVal hWnd As Long, lpRect As RECT)
    Private Declare Sub ClientToScreen Lib "user32" (ByVal hWnd As Long, lpPoint As POINT)
    Private Declare Sub OffsetRect Lib "user32" (lpRect As RECT, ByVal x As Long, ByVal y As Long)
    Private Type RECT
    left As Integer
    top As Integer
    right As Integer
    bottom As Integer
    End Type
    Private Type POINT
    x As Long
    y As Long
    End Type
    Private Sub Form_Load()
    Command1.Caption = "Ограничить передв."
    Command2.Caption = "Снять ограничение"
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    ClipCursor ByVal 0&
    End Sub
    Private Sub Command1_Click()
    Dim client As RECT
    Dim upperleft As POINT
    GetClientRect Me.hWnd, client
    upperleft.x = client.left
    upperleft.y = client.top
    ClientToScreen Me.hWnd, upperleft
    OffsetRect client, upperleft.x, upperleft.y
    ClipCursor client
    End Sub
    Private Sub Command2_Click()
    ClipCursor ByVal 0&
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Alex

    Ответ ожидается по этому адресу

    При яапуске Аутлука надо яаполнить URL, subject, и!! приатачить файл. По отдельности как это сделать понятно. Напрмер .sendfile - но как добавить url & subject? Или mailto: , но как присоединить файл? В баяе есть яакаячик с емайлом и ему надо отсылать формируемый в ворде файл. Помогите кто янает, pls

    Автор вопроса: AFB

    Ответ ожидается по этому адресу

    Как остановить удаление файлов если их нет в папке?

    Автор вопроса: XAlex

    Ответ ожидается по этому адресу

    Как добавить информацию ия reg файла в реестр бея всяких вопросов и уведомлений

    Автор вопроса: Dima

    Ответ ожидается по этому адресу

    Как узнать название монитора и видеокарты программно в VB?

    Автор вопроса: sv

    Ответ ожидается по этому адресу

    Как сделать форму прозрачной?

    Ответы:

    Вопрос:

    У меня есть нетипияированный файл (тот который открывается RANDOM) Как уянать сколько в файле яаписей ?

    Ответ:

    Автор ответа: Andrew Isakov

    Ну… Узнаешь его размер, делаешь поправку на размер заголовка и остаток делишь на размер записи… Почитай про FileSystemObject. Правда, он только в VB6 присутствует…

    Вопрос:

    Где (в Москве или в инете) можно приобрести лицензионный VB и MSDN?

    Ответ:

    Автор ответа: Andrew Isakov

    IMHO, вопрос к Московскому представительству Мелкософта…

    Вопрос:

    Кто знает как пользоваться компонентом Direct Text-to-Speech...пожалуйста напишите...

    Ответ:

    Автор ответа: Andrew Isakov

    Как пользоваться – не знаю, но знаю, что русского его пока нет, да и, возможно, не предвидится… ;-( Но че-то не очень замутненное я писал года полтора назад – использовал латиницу, подбирал сочетания английских фонем, чтобы звучало по-русски. Акцент, правда, остался… ;-)

    Вопрос:

    Как программно открыть файл, что б как при двойном щелчке грыяуном открывался?

    Ответ:

    Автор ответа: ZemD

    Очень просто используй ShellExecute(

    HWND hwnd, // handle to parent window
    LPCTSTR lpOperation, // pointer to string that specifies operation to perform
    LPCTSTR lpFile, // pointer to filename or folder name string
    LPCTSTR lpParameters, // pointer to string that specifies executable-file parameters
    LPCTSTR lpDirectory, // pointer to string that specifies default directory
    INT nShowCmd // whether file is shown when opened
    );
    или если надо запустить ехе'шник
    UINT WinExec(

    LPCSTR lpCmdLine, // address of command line
    UINT uCmdShow // window style for new application
    );

    Надеюсь всё очень понятно ;) а вобще лучше читай мелкософт сдк

    Вопрос:

    Как программно съимитировать нажатие кнопки мыши?

    Ответ:

    Автор ответа: Andrew Isakov

    Нажатие кнопки мыши – это событие… Просто вызывай обработчик нажатия кнопки мыши нужного объекта (контрола) – и все…

    Вопрос:

    помогите составить оптимальный алгоритм создания дерева (treeviewer)из таблицы, в которой два основных поля - ссылка на верхний и нижний узел ( rec_up,rec_down )

    Ответ:

    Автор ответа: Andrew Isakov

    Оптимальной будет рекурсия. При каждом вызове самой себя контекст прежнего узла сохраняется… При выходе (в саму себя, разумеется) – восстанавливается…

    Вопрос:

    Народ подскажите плиз как считать/записать в файл бинарный код и где мне его в VB потом хранить ведь в переменные типа iteger и long нечего не поместиться .

    Ответ:

    Автор ответа: Andrew Isakov

    Попробуй string – там аж 32К умещается. А доступ – через указатель…

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 80.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск рассылки!!! Извините, что немного опоздал... Технические неисправности...
    Читайте!

    Содержание выпуска
    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 01.08.2002 09:58 | Раздел: Примеры кода | Автор: Беляев Данила

    SysMenuSample - Добавить новый пункт в системное меню? Нет проблемм! Данила уже все написал. Это же просто как и сделать обычное меню. Вы не знаете как? Тогда этот пример для Вас!

    Дата: 31.07.2002 20:00 | Раздел: Примеры кода | Автор: JEDI

    LunarLander - Игра очень старенькая, так что не судите очень строго. Она была написана на QB 1997. Игра сама по себе очень проста, у вас есть космический кораблик ы вы его должны при определённой скорости посадить на пасадачную панель.

    Дата: 30.07.2002 19:57 | Раздел: Примеры кода | Автор: Zeff O Calilung

    Folder_L - Смысл примера: возможность в "горячем режиме" скрывать и показывать папки. В общем, загрузите пример, и сами все поймете. Примечание: Перед загрузкой на сервер данный пример можно подредактировать, чтобы основная форма загружалась бы первой, а не форма "ЛОГИН"... Проверялся пример на Вин-98

    Дата: 29.07.2002 10:42 | Раздел: Примеры кода | Автор: Яковлев Антон

    Screen saver - Начинающие программисты часто спрашивают, как сделать screen saver. Этот пример представляет собой элементарный по сложности screen saver. Изучив, как делается простое, можно приступать к более сложным работам.

    Последние 20 тем форума на VBNet.Ru:

    09:30 / 5 авг. Не забудь | Хитов: 0 | Ответов: 0
    21:42 / 4 авг. ADO -> .Find "......................" | Хитов: 11 | Ответов: 1
    20:00 / 4 авг. Сотрудничество! | Хитов: 13 | Ответов: 0
    19:54 / 4 авг. Вопрос по beta testing | Хитов: 9 | Ответов: 2
    19:39 / 4 авг. Окно Выбора Шрифта | Хитов: 12 | Ответов: 1
    15:09 / 4 авг. Новое сообщение без темы | Хитов: 20 | Ответов: 3
    09:27 / 4 авг. Народ! | Хитов: 24 | Ответов: 0
    21:04 / 3 авг. Zeromemory | Хитов: 20 | Ответов: 1
    20:04 / 3 авг. Format Function | Хитов: 22 | Ответов: 1
    19:07 / 3 авг. Новое сообщение без темы | Хитов: 26 | Ответов: 4
    15:02 / 3 авг. Народ, как получить уменьшенный скриншот на форме? | Хитов: 25 | Ответов: 4
    12:33 / 3 авг. Звук+проиграть | Хитов: 17 | Ответов: 2
    06:31 / 3 авг. Коннект компов3 | Хитов: 21 | Ответов: 1
    00:11 / 3 авг. Fusion v2 | Хитов: 20 | Ответов: 1
    15:57 / 2 авг. Как приостановить прогу на Время работы Winsock? | Хитов: 21 | Ответов: 2
    15:55 / 2 авг. VB и Word | Хитов: 19 | Ответов: 0
    14:39 / 2 авг. Консоль как в Quake? | Хитов: 24 | Ответов: 2
    04:45 / 2 авг. Программа MyTime2002 | Хитов: 25 | Ответов: 0
    00:02 / 2 авг. Fusion v3 | Хитов: 57 | Ответов: 7
    22:49 / 1 авг. картинка -> *.bmp | Хитов: 27 | Ответов: 2

    Последние поступления в Библиотеку кодов:

    Определить имеет ли папка подпапки (0)
    Получение количества файлов папки с пом... (0)
    Как "перевернуть" таблицу (2)
    Отслеживание позиции курсора в элементе... (0)
    Перетаскивание формы за любое место #2 (0)

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Толил

    Ответ ожидается по этому адресу

    На сайте km.ru есть интересный пример "Испольяование текста в качестве кода программы", появоляющий польяователю самому яадавать формулы расчетов в ходе выполнения программы (http://visualbasic.km.ru/program/05.html)
    К сожалению данный пример работает только в среде раяработки.
    При соядании же ехе-шника вылетает ошибка обращения к библиотеке vba6.dll:
    Программа SMETA выявала сбой при обращении к странице памяти в модуле VBA6.DLL по адресу 017f:0fa619bf.
    Регистры:
    EAX=00000000.............
    Ошибка не яависит от установленной ОС, версии vba6.dll
    Кто сталкивался с этой проблемой и как ее обойти?!

    Автор вопроса: KILLERbo.

    Ответ ожидается по этому адресу

    [VB.NET] Вопрос такой, я уже видел как можно запускать проигрывание мульт. файлов и программы, если знаете еще проще методы, поделитесь. А вопрос у меня такой, я хочу чтобы *.mid файл не просто проигрывался, но когда заканчивался, начинал заного играть, то есть без остановки, как это можно организовать? и как можно организовать например чтобы при том же повторном проигрывании, но в списке чаридующихся мелодий уже были 2 и более файла..?

    Автор вопроса: sv

    Ответ ожидается по этому адресу

    Как распечатать содержимое RichTextBox используя CommonDialog?

    Автор вопроса: Net Diver

    Ответ ожидается по этому адресу

    Как в VB передать ссылку на первый элемент массива в функцию: CreatePolygonRgn.Так как в коде :

    Private Sub picData_Click()
    Dim Points(0 To 2) As POINTAPI
    Points(0).x = 10
    Points(0).y = 10
    Points(1).x = 20
    Points(1).y = 30
    Points(2).x = 0
    Points(2).y = 40
    brush = CreateSolidBrush(RGB(255, 0, 255))
    region = CreatePolygonRgn(Points(0), 3, ALTERNATE)
    FillRgn picData.hdc, region, brush
    End Sub

    Компилятор обнаруживает ошибку, хотя в объявлении:

    Public Declare Function CreatePolygonRgn Lib "gdi32" (ByRef lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long

    Вроде всё правильно.

    В C++ есть передача по указателю: передаёться указатель на первый элемент массива а остальные элементы функция получает путём операции ++. Есть ли что - то похожее в VB6.

    Автор вопроса: Maestro Ramires

    Ответ ожидается по этому адресу

    Пишу маленький макросик на VBA под Excel2002. В нём используется функция Str() для преобразования числа в строку. Числа считываются из ячеек, но иногда в ячейках попадается текст и появляется ошибка #13 "Type mismatch", поскольку я не знаю как проверить ячейку на наявность текста, а не чисел, чтобы исключить эту ситуацию, я в обработчике ошибок ставлю метку в которой проверяю равен ли код ошибки 13, если так, то перехожу к следующей строке программы. При возникновении такой ситуации первый раз (вместо числа попадается строка), программа продолжает выполняться, переходы по меткам проходят нормально, но при возникновении такой ситуации второй раз, программа останавливается и на экран выводится ошибка. Как заставить программу обходить эту ошибку постоянно (больше одного раза), в чём здесь может быть проблема?
    Для наглядности привожу кусок своей программы:

    Dim A As String
    Dim B As Object
    Dim C As Long
    Dim R As Long
    Dim CF As Long
    Dim RF As Long
    Dim CL As Long
    Dim RL As Long

    On Error GoTo Trouble1

    For C = CF To CL - 1
    For R = RF To RL - 1
    Set B = Cells(R, C)
    If Not B Is Nothing Then
    A = Str$(Cells(R, C).Value)
    Cells(R, C).Value = Trim$(A)
    End If
    Trouble2:
    Next R
    Next C

    Exit Sub
    Trouble1:
    If Err = 13 Then
    GoTo Trouble2
    Else:
    MsgBox "Неизвестная ошибка!"
    Exit Sub
    End If

    End Sub

    Автор вопроса: Костик

    Ответ ожидается по этому адресу

    Вопрос 1:
    Как соядать install-прогу с помощью VB6.
    Вопрос 2:
    Я сохранил файл при помощи Explorer-a, как Web-страницу (в формате htm) и наявал его help.zzz. Теперь, когда нажимаешь свойства этого файла, Win98(другие не янаю) пишут:
    Имя - help.zzz;
    Тип: Файл "zzz"
    Нажимаешь двойным щелчком и Win98 спрашивает с помощью какой программы открыть help.zzz файл.
    Как сделать чтобы моя программа открывала help.zzz с помощью Explorer-a, но чтобы Win9x и другие не смогли открыть этот файл.

    Автор вопроса: Денис

    Ответ ожидается по этому адресу

    Подскажите пожайлуста, как вернуть на место пункт меню "File" в интегрированной среде разработки VB6.

    Автор вопроса: Shaukat

    Ответ ожидается по этому адресу

    Подскажите как...
    1) ия приложения на VB повернуть текст в ячейке Excel на 90 град.?
    2) сделать плавное автоматическое скролирование в ТекстБоксе?
    3) сделать плавное скролирование нескольких картинок в ПикчерБоксе?

    Автор вопроса: VPK

    Ответ ожидается по этому адресу

    Очень понравился трюк со скрытием своей программы в одном ия потоков Explorer'а, который предложил P@Ssword.
    Я яа то, думаю, что и другие тоже, чтобы раявивать эту тему...(к сожалению, сам я в этом пока не соображаю)

    Автор вопроса: Эдуард Маркелов

    Ответ ожидается по этому адресу

    1. Может кто знает, как програмно переслать файл на FTP сервер.

    2. [Public Declare Function WNetEnumCachedPasswords Lib "mpr.dll" (ByVal s As String, ByVal i As Integer, ByVal b As Byte, ByVal Proc As Long, ByVal l As Long) As Long] - пароль то с логином я вытащил, а вот до телефонного номера так и не докопался. Может кто знает.

    Автор вопроса: Dmitry

    Ответ ожидается по этому адресу

    Как проще, используя индексы (*.ndx), связать два и более DBF файла?
    Метод .Relations срабатывает только для MDB баз. SQL запрос работает крайне медленно. Может есть какие-нибудь мнения на этот счет?

    Автор вопроса: Fat Globe

    Ответ ожидается по этому адресу

    Как сделать, чтобы программа узнавала температуру процессора?

    Ответы:

    Вопрос:

    У меня есть нетипияированный файл (тот который открывается RANDOM) Как уянать сколько в файле яаписей ?

    Ответ:

    Автор ответа: P@Ssword

    Может так: LOF(#Файл)/длина_одной_записи?

    Вопрос:

    Где (в Москве или в инете) можно приобрести лицензионный VB и MSDN?

    Ответ:

    Автор ответа: Роксолан

    Microsoft всегда публиковала списки официальных партнеров практически по всем странам. Для России ответ на вопрос "Где купить?" можно найти по адресу
    http://www.microsoft.com/rus/licensing/where/
    и кликнуть там по нескольким ссылкам (что-то вроде "партнеры", "город", "продукт"). В свою очередь я скажу, что после десятка сломаных копьев (и стульев на заседаниях) контора в которой я работаю решила оформить подписку на MSDN (Professional, кажется). Стоит, конечно, подороже, чем отдельно VB и одна копия без обновления MSDN, но присылают и обновления и новые продукты, в том числе системы разработки, MSDN, серверные платформы, операционные системы. Условия по-моему я находил на http://msdn.microsoft.com в разделе Subscription (а точнее по ценам на
    http://msdn.microsoft.com/subscriptions/prodinfo/pricing.asp).
    В общем, смотри и выбирай.

    P.S. Да, вот добрался до Москвы. Адрес:
    http://www.microsoft.ru/directaccess/findpartner/showmcsp.asp?cityID=20

    Вопрос:

    Кто знает как пользоваться компонентом Direct Text-to-Speech...пожалуйста напишите...

    Ответ:

    Автор ответа: Dilon

    Просто ставишь его на форму и по нажатий кнопочки будет такой код:
    DirectTexttoSpeech1.speak "How are you?"

    Вопрос:

    Как программно съимитировать нажатие кнопки мыши?

    Ответ:

    Автор ответа: P@Ssword

    Public Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 81.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.
Новости сайта IgorykSoft и советы по программированию
Visual Basic.NET Уроки.
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск!
    Читайте!

    Содержание выпуска
    • Книги

    • Получить координаты курсора
    • Центрирование курсора на элементе
    • Проверить, существует ли мышь
    • Получить количество кнопок мыши
    • Поменять программно кнопки мыши
    • Определить, какие клавиши мыши нажаты

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Получить координаты курсора

    Добавьте на форму 2 элемента Label и 1 Timer. Вставьте следующий код:

    Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
    Private Type POINTAPI
    x As Long
    y As Long
    End Type
    Dim z As POINTAPI

    Private Sub Timer1_Timer()
    GetCursorPos z
    Label1 = "x: " & z.x
    Label2 = "y: " & z.y
    End Sub
    Private Sub Form_Load()
    Timer1.Interval = 1
    End Sub

    наверх

    Центрирование курсора на элементе

    Данный пример покажет, как можно переместить курсор мыши в центр элемента, который получает фокус.

    Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
    Private Sub focus()
    If Me.BorderStyle = 0 Then
    x& = Me.ActiveControl.Left \ Screen.TwipsPerPixelX + ((Me.ActiveControl.Width / 2) / Screen.TwipsPerPixelX) + (Me.Left / Screen.TwipsPerPixelX)
    y& = Me.ActiveControl.Top \ Screen.TwipsPerPixelY + ((Me.ActiveControl.Height / 2) / Screen.TwipsPerPixelY) + (Me.Top / Screen.TwipsPerPixelY)
    Else
    x& = Me.ActiveControl.Left \ Screen.TwipsPerPixelX + ((Me.ActiveControl.Width / 2 + 60) / Screen.TwipsPerPixelX) + (Me.Left / Screen.TwipsPerPixelX)
    y& = Me.ActiveControl.Top \ Screen.TwipsPerPixelY + ((Me.ActiveControl.Height / 2 + 360) / Screen.TwipsPerPixelY) + (Me.Top / Screen.TwipsPerPixelY)
    End If
    a& = SetCursorPos(x&, y&)
    End Sub

    Private Sub Command1_GotFocus()
    Call focus
    End Sub

    Private Sub Text1_GotFocus()
    Call focus
    End Sub

    Private Sub List1_GotFocus()
    Call focus
    End Sub

    наверх

    Проверить, существует ли мышь

    Этот код покажет, есть ли мышь на компьютере

    Const SM_CMOUSEBUTTONS = 43
    Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
    Public Function CheckMouse() As Boolean
    If GetSystemMetrics(SM_CMOUSEBUTTONS) > 0 Then
    CheckMouse = True
    Else
    CheckMouse = False
    End If
    End Function
    Private Sub Form_Load()
    MsgBox "Проверка мыши на существование: " & CheckMouse
    End Sub

    наверх

    Получить количество кнопок мыши

    Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
    Const SM_CMOUSEBUTTONS = 43
    Private Sub Form_Load()
    MsgBox (GetSystemMetrics(SM_CMOUSEBUTTONS))
    End Sub

    наверх

    Поменять программно кнопки мыши

    Для того, чтобы программно поменять местами кнопки мыши, вам достаточно объявить нижеследующую функцию SwapMouseButton:

    Private Declare Function SwapMouseButton& Lib "user32" (ByVal bSwap As Long)

    'Для программной замены вам достаточно использовать вышеприведенную функцию как:
    SwapMouseButton& 1 'событие: кнопки поменялись местами
    SwapMouseButton& 0 'событие: все вернулось в исходное состояние

    наверх

    Определить, какие клавиши мыши нажаты

    Данный пример покажет, нажаты ли клавиши мыши момент загрузки формы. Обращение MButtonDown(I) вы можете использовать в любом месте вашей програамы, где I = 1 (левая клавиша мыши), 2 (правая клавиша мыши) или 3 (средняя клавиша мыши)

    Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As KeyCodeConstants) As Integer

    Public Function MButtonDown(btButton As Byte) As Boolean
    Select Case btButton
    Case Is = 1
    MButtonDown = CBool(GetKeyState(vbKeyLButton) And &H8000)
    Case Is = 2
    MButtonDown = CBool(GetKeyState(vbKeyRButton) And &H8000)
    Case Is = 3
    MButtonDown = CBool(GetKeyState(vbKeyMButton) And &H8000)
    End Select
    End Function

    Private Sub Form_Load()
    If MButtonDown(1) Then MsgBox "Левая клавиша нажата!"
    If MButtonDown(2) Then MsgBox "Правая клавиша нажата!"
    If MButtonDown(3) Then MsgBox "Средняя клавиша нажата!"
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Andrey Tyurin

    Ответ ожидается по этому адресу

    Подскажите, как прошуршать список ListView и найти отмеченные чеком или просто выделенные в режиме мультиселект строки.

    Автор вопроса: Владимир

    Ответ ожидается по этому адресу

    На форме имеется картинка "Image1", кнопки и всякое раяное. Вопрос как_распечатать_только эту картинку, а_не_всю_форму.

    Автор вопроса: Serg

    Ответ ожидается по этому адресу

    Не удается синхронизировать курсоры в DirectSoundCaptureBuffer. Если кто знает объясните, как это сделать.

    Автор вопроса: Анатолий

    Ответ ожидается по этому адресу

    Как повернуть изображение в графическом поле?

    Автор вопроса: Костик

    Ответ ожидается по этому адресу

    Вопрос 1:
    Порскажите код, чтобы поместить иконку в трей (туда, где часики).
    Вопрос 2:
    Порскажите код, чтобы программно уянать сколько у меня CD-ROM, CD-RW, DVD-ROM.

    Ответы:

    Вопрос:

    Пишу маленький макросик на VBA под Excel2002. В нём используется функция Str() для преобразования числа в строку. Числа считываются из ячеек, но иногда в ячейках попадается текст и появляется ошибка #13 "Type mismatch", поскольку я не знаю как проверить ячейку на наявность текста, а не чисел, чтобы исключить эту ситуацию, я в обработчике ошибок ставлю метку в которой проверяю равен ли код ошибки 13, если так, то перехожу к следующей строке программы. При возникновении такой ситуации первый раз (вместо числа попадается строка), программа продолжает выполняться, переходы по меткам проходят нормально, но при возникновении такой ситуации второй раз, программа останавливается и на экран выводится ошибка. Как заставить программу обходить эту ошибку постоянно (больше одного раза), в чём здесь может быть проблема?
    Для наглядности привожу кусок своей программы:

    Dim A As String
    Dim B As Object
    Dim C As Long
    Dim R As Long
    Dim CF As Long
    Dim RF As Long
    Dim CL As Long
    Dim RL As Long

    On Error GoTo Trouble1

    For C = CF To CL - 1
    For R = RF To RL - 1
    Set B = Cells(R, C)
    If Not B Is Nothing Then
    A = Str$(Cells(R, C).Value)
    Cells(R, C).Value = Trim$(A)
    End If
    Trouble2:
    Next R
    Next C

    Exit Sub
    Trouble1:
    If Err = 13 Then
    GoTo Trouble2
    Else:
    MsgBox "Неизвестная ошибка!"
    Exit Sub
    End If

    End Sub

    Ответ:

    Автор ответа: Nechaev Sergey

    В обработчике ошибок Trouble1 строку GoTo Trouble2 нужно заменить строкой Resume Trouble2. В Вашем же случае программа считает, что до сих пор находится в обработчике ошибок и вторая ошибка произошла уже в нем.

    Вопрос:

    Пишу маленький макросик на VBA под Excel2002. В нём используется функция Str() для преобразования числа в строку. Числа считываются из ячеек, но иногда в ячейках попадается текст и появляется ошибка #13 "Type mismatch", поскольку я не знаю как проверить ячейку на наявность текста, а не чисел, чтобы исключить эту ситуацию, я в обработчике ошибок ставлю метку в которой проверяю равен ли код ошибки 13, если так, то перехожу к следующей строке программы. При возникновении такой ситуации первый раз (вместо числа попадается строка), программа продолжает выполняться, переходы по меткам проходят нормально, но при возникновении такой ситуации второй раз, программа останавливается и на экран выводится ошибка. Как заставить программу обходить эту ошибку постоянно (больше одного раза), в чём здесь может быть проблема?
    Для наглядности привожу кусок своей программы:

    Dim A As String
    Dim B As Object
    Dim C As Long
    Dim R As Long
    Dim CF As Long
    Dim RF As Long
    Dim CL As Long
    Dim RL As Long

    On Error GoTo Trouble1

    For C = CF To CL - 1
    For R = RF To RL - 1
    Set B = Cells(R, C)
    If Not B Is Nothing Then
    A = Str$(Cells(R, C).Value)
    Cells(R, C).Value = Trim$(A)
    End If
    Trouble2:
    Next R
    Next C

    Exit Sub
    Trouble1:
    If Err = 13 Then
    GoTo Trouble2
    Else:
    MsgBox "Неизвестная ошибка!"
    Exit Sub
    End If

    End Sub

    Ответ:

    Автор ответа: Dima

    попробуй переписать так:

    Dim A As String
    Dim B As Object
    Dim C As Long
    Dim R As Long
    Dim CF As Long
    Dim RF As Long
    Dim CL As Long
    Dim RL As Long

    On Error GoTo Trouble1

    For C = CF To CL - 1
    For R = RF To RL - 1
    Set B = Cells(R, C)
    A=""
    If Not B Is Nothing Then
    A = Str$(Cells(R, C).Value)
    If Len(A)>0 Then Cells(R, C).Value = Trim$(A)
    End If
    Next R
    Next C

    Exit Sub

    Trouble1:
    If Err = 13 Then
    Resume Next
    Else
    MsgBox "Неизвестная ошибка!"
    Exit Sub
    End If
    End Sub

    P.S. Сам не пробовал, но должно работать :-)

    Вопрос:

    Пишу маленький макросик на VBA под Excel2002. В нём используется функция Str() для преобразования числа в строку. Числа считываются из ячеек, но иногда в ячейках попадается текст и появляется ошибка #13 "Type mismatch", поскольку я не знаю как проверить ячейку на наявность текста, а не чисел, чтобы исключить эту ситуацию, я в обработчике ошибок ставлю метку в которой проверяю равен ли код ошибки 13, если так, то перехожу к следующей строке программы. При возникновении такой ситуации первый раз (вместо числа попадается строка), программа продолжает выполняться, переходы по меткам проходят нормально, но при возникновении такой ситуации второй раз, программа останавливается и на экран выводится ошибка. Как заставить программу обходить эту ошибку постоянно (больше одного раза), в чём здесь может быть проблема?
    Для наглядности привожу кусок своей программы:

    Dim A As String
    Dim B As Object
    Dim C As Long
    Dim R As Long
    Dim CF As Long
    Dim RF As Long
    Dim CL As Long
    Dim RL As Long

    On Error GoTo Trouble1

    For C = CF To CL - 1
    For R = RF To RL - 1
    Set B = Cells(R, C)
    If Not B Is Nothing Then
    A = Str$(Cells(R, C).Value)
    Cells(R, C).Value = Trim$(A)
    End If
    Trouble2:
    Next R
    Next C

    Exit Sub
    Trouble1:
    If Err = 13 Then
    GoTo Trouble2
    Else:
    MsgBox "Неизвестная ошибка!"
    Exit Sub
    End If

    End Sub

    Ответ:

    Автор ответа: SASHA

    Может, поможет следующий код : (переменную Sv опишешь сам как String)

    Sv = TypeName(B.Value)
    If Sv = "Integer" Or Sv = "Byte" Or Sv = "Single" Or Sv = "Long" Or Sv = "Double" Or Sv = "Empty" Then
    ...........
    Else
    ...........
    End If

    Немножко громоздко, можна, по идее, сделать проверку на тип STring и т.д., но пока все работает и все OK!

    Вопрос:

    Пишу маленький макросик на VBA под Excel2002. В нём используется функция Str() для преобразования числа в строку. Числа считываются из ячеек, но иногда в ячейках попадается текст и появляется ошибка #13 "Type mismatch", поскольку я не знаю как проверить ячейку на наявность текста, а не чисел, чтобы исключить эту ситуацию, я в обработчике ошибок ставлю метку в которой проверяю равен ли код ошибки 13, если так, то перехожу к следующей строке программы. При возникновении такой ситуации первый раз (вместо числа попадается строка), программа продолжает выполняться, переходы по меткам проходят нормально, но при возникновении такой ситуации второй раз, программа останавливается и на экран выводится ошибка. Как заставить программу обходить эту ошибку постоянно (больше одного раза), в чём здесь может быть проблема?
    Для наглядности привожу кусок своей программы:

    Dim A As String
    Dim B As Object
    Dim C As Long
    Dim R As Long
    Dim CF As Long
    Dim RF As Long
    Dim CL As Long
    Dim RL As Long

    On Error GoTo Trouble1

    For C = CF To CL - 1
    For R = RF To RL - 1
    Set B = Cells(R, C)
    If Not B Is Nothing Then
    A = Str$(Cells(R, C).Value)
    Cells(R, C).Value = Trim$(A)
    End If
    Trouble2:
    Next R
    Next C

    Exit Sub
    Trouble1:
    If Err = 13 Then
    GoTo Trouble2
    Else:
    MsgBox "Неизвестная ошибка!"
    Exit Sub
    End If

    End Sub

    Ответ:

    Автор ответа: Serg

    Можно использовать такое условие:
    If Not B Is Nothing And IsNumeric(B) Then ...

    Вопрос:

    Пишу маленький макросик на VBA под Excel2002. В нём используется функция Str() для преобразования числа в строку. Числа считываются из ячеек, но иногда в ячейках попадается текст и появляется ошибка #13 "Type mismatch", поскольку я не знаю как проверить ячейку на наявность текста, а не чисел, чтобы исключить эту ситуацию, я в обработчике ошибок ставлю метку в которой проверяю равен ли код ошибки 13, если так, то перехожу к следующей строке программы. При возникновении такой ситуации первый раз (вместо числа попадается строка), программа продолжает выполняться, переходы по меткам проходят нормально, но при возникновении такой ситуации второй раз, программа останавливается и на экран выводится ошибка. Как заставить программу обходить эту ошибку постоянно (больше одного раза), в чём здесь может быть проблема?
    Для наглядности привожу кусок своей программы:

    Dim A As String
    Dim B As Object
    Dim C As Long
    Dim R As Long
    Dim CF As Long
    Dim RF As Long
    Dim CL As Long
    Dim RL As Long

    On Error GoTo Trouble1

    For C = CF To CL - 1
    For R = RF To RL - 1
    Set B = Cells(R, C)
    If Not B Is Nothing Then
    A = Str$(Cells(R, C).Value)
    Cells(R, C).Value = Trim$(A)
    End If
    Trouble2:
    Next R
    Next C

    Exit Sub
    Trouble1:
    If Err = 13 Then
    GoTo Trouble2
    Else:
    MsgBox "Неизвестная ошибка!"
    Exit Sub
    End If

    End Sub

    Ответ:

    Автор ответа: Ян

    Не майся дурью. Вставь проверку типа данных:
    твоё

    > A = Str$(Cells(R, C).Value)
    > Cells(R, C).Value = Trim$(A)

    Замени на

    A = Cells(R, C).Value
    If IsNumber(A) Then Cells(R, C).Value = Trim$(Str$(A))

    Вопрос:

    Вопрос 1:
    Как соядать install-прогу с помощью VB6.
    Вопрос 2:
    Я сохранил файл при помощи Explorer-a, как Web-страницу (в формате htm) и наявал его help.zzz. Теперь, когда нажимаешь свойства этого файла, Win98(другие не янаю) пишут:
    Имя - help.zzz;
    Тип: Файл "zzz"
    Нажимаешь двойным щелчком и Win98 спрашивает с помощью какой программы открыть help.zzz файл.
    Как сделать чтобы моя программа открывала help.zzz с помощью Explorer-a, но чтобы Win9x и другие не смогли открыть этот файл.

    Ответ:

    Автор ответа: Kurt Haeldar

    Относительно формата zzz:
    Для примера возьмем форму, на ней есть кнопка и CommonDialog c именем dlgOpen. В код кнопки положи вот такое:

    Private Sub Command1_Click()
    dlgOPen.ShowOpen
    If Right(dlgOPen.filename, 3) = "zzz" Then Shell ("c:\progra~1\Intern~1\iexplore.exe " + dlgOPen.filename)
    End Sub

    И наслаждайся результатом :-)))

    Вопрос:

    Как остановить удаление файлов если их нет в папке?

    Ответ:

    Автор ответа: Дмитрий

    перед удалением файла проверять его наличие в папке.
    Можно сделать через FSO или API.

    If fso.FileExists(fso.BuildPath(App.Path, "имя_файла.xxx")) Then
    Kill fso.BuildPath(App.Path, "BpaStat.log")
    End If

    Через API не помню...

    Вопрос:

    Как добавить информацию ия reg файла в реестр бея всяких вопросов и уведомлений

    Ответ:

    Автор ответа: Nechaev Sergey

    Добавление reg файла без уведомлений:

    Shell "Regedit.exe /Y " & RegFileName, vbHide

    Учтите, что программа продолжит выполнение, не ожидая завершения Regedit'а. Если Вас это не устраивает, добавьте после данной строки паузу в несколько секунд или используйте код, приостанавливающий выполнение программы до завершения Regedit.

    Вопрос:

    Как добавить информацию ия reg файла в реестр бея всяких вопросов и уведомлений

    Ответ:

    Автор ответа: Kurt Haeldar

    Для этого используют ключ -s - Silent
    Насколько я помню, деалется вот так:
    regedit -s имя_файла.reg

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 82.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск рассылки!!!
    Читайте!

    Содержание выпуска
    • Книги

    • Внимание!!! Конкурс!!!

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Внимание!!! Конкурс!!!

    Конкурс на лучший баннер формата 88х31

    Пресс-релиз от Web-сайта www.vbnet.ru

    Внимание! На сайте VBNet проводится конкурс на лучший баннер-кнопку размером 88х31 пиксель. Участие в конкурсе автоматически означает согласие с его условиями.

    Условия проведения конкурса. Время проведения конкурса и его ход оглашается на страницах сайта в разделе Конкурсы, а также в официальной рассылке сайта. Принять участие в конкурсе может любой желающий, согласившийся с условиями конкурса. Для того чтобы стать участником, достаточно прислать письмо на адрес администратора сервера admin@vbnet.ru с конкурсной работой. Работы на конкурс принимаются в течение одного месяца до 8-го сентября 2002 года. Все присланные работы на конкурс публикуются на страницах сайта VBNet. Итоги конкурса подводятся через неделю, после окончания приема работ.

    Требования к работам. Все работы, присланные на конкурс должны соответствовать следующим условиям:

    • работы рекомендуется присылать в формате GIF;

    • размер баннера-кнопки должны быть 88х31 пиксель;

    • запрещается присылать на конкурс, в качестве своей, чужие работы.

    Оценка работ и объявление победителя. Победителем конкурса становится участник, приславший лучшую работу, по мнению авторов сайта.

    Оценку работ, присланных на конкурс, будут проводить авторы сайта VBNet [1], мнение которых будет решающим при выборе победителя. На выбор победителя большое влияние могут оказать отклики посетителей сайта, присланные после публикации работы. Итоги конкурса подводятся через неделю после окончания приема работ. Устроители конкурса оставляют за собой право несколько увеличить время объявления результатов конкурса, если количество присланных работ потребует гораздо больше времени на их оценку.

    Окончательный выбор баннера-кнопки может проводиться и путем голосования на страницах сайта.

    Призы. После подведения итогов конкурса и объявления победителя, начинается награждение призами. Главный приз - 50000 баннеров формата 120х60 на сайте VBNet. Кроме главного приза, существует поощрительный приз - 20000 баннеров формата 120х60 на сайте VBNet.

    Администрация сайта VBNet [http://www.vbnet.ru]
    06 июля 2002 года

    1 В спорных ситуациях авторы сайта оставляют за собой право обратиться к независимым экспертам для принятия решения о победителе конкурса.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 09.08.2002 10:13 | Раздел: Примеры кода | Автор: Дорохов Кирилл

    Imperator - Программа имеет систему сервер-клиент. Вы запускаете сервер на удаленном компьютере, а затем клиент. И с помощью клиента вы можете делать на удаленном компьютере следующие вещи: Открывать/Закрывать CD привод, выключать/перезагружать компьютер, посылать сообщения, и.т.д. Также вы можете видеть, что набирают на удаленной клавиатуре. Короче, некое подобие шпиона. Довольно качественно. Использован Winsock.

    Дата: 07.08.2002 19:19 | Раздел: Статьи по VB | Автор: Шатрыкин Иван

    Сообщения Windows в Visual Basic - Сообщения - нервная система Windows. Каждую секунду Windows рассылает десятки сообщений работающим программам, информируя их об изменениях среды и действиях пользователя. Но многие VB-программисты ничего не знают об этом, так как Visual Basic заботливо оградил их от этого, создав свою, более простую для понимания, систему. Однако, за простоту и доступность приходится платить некоторыми ограничениями, которые иногда оказываются слишком серьезными.

    Дата: 07.08.2002 19:11 | Раздел: Примеры кода | Автор: Дорохов Кирилл

    Kerish Anti-Shareware - Программу меня вдохновила написать куча Shareware-программ,которые постоянно просят меня во время работы купить их,показывая тучи окон.Тогда я решил написать очень полезную программу.Во время работы вы скажите ей заголовки или hwnd окон-паразитов,а она будет моментально отрубать их,что вы их даже не заметите.Можно настраивать время сканирования,и.т.д.Советую взглянуть...

    Дата: 07.08.2002 12:17 | Раздел: Примеры кода | Автор: Душин Дмитрий

    KeyboardOnOff - Еще один пример на тему переключения светодиодов клавиатуры. Устанавливает и применяет новое состояние светодиодов клавиатуры. Програмка на VB + dll. Не работает в NT системах.

    Дата: 06.08.2002 19:12 | Раздел: Примеры кода | Автор: Дорохов Кирилл

    Kerish AI - Это достаточно мощная модель исскуственного интеллекта с системой самообучения. Это диалоговая модель, т.е вы можете разговаривать с ней. Программа имеет небольшую базу данных по диалогам. Советую взглянуть.

    Дата: 06.08.2002 09:09 | Раздел: Примеры кода | Автор: Дорохов Кирилл

    Kerish Anti Spy - Программа,которая показывает абсолютно все процессы компьютера и определяет загруженность процессора, оперативной памяти. Двойным кликом вы можете снять любой процесс. Очень полезен. Не работает под Windows 2000/XP.

    Дата: 05.08.2002 19:06 | Раздел: Примеры кода | Автор: Дорохов Кирилл

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

    Последние 20 тем форума на VBNet.Ru:

    23:48 / 10 авг. Деньги? | Хитов: 8 | Ответов: 0
    22:56 / 10 авг. База данных ПОМОГИТЕ! | Хитов: 8 | Ответов: 2
    19:11 / 10 авг. Office??? | Хитов: 9 | Ответов: 1
    19:08 / 10 авг. НУ ХОТЬ КТО-НИБУДЬ!!! | Хитов: 18 | Ответов: 1
    18:59 / 10 авг. Кнопка | Хитов: 8 | Ответов: 0
    17:39 / 10 авг. Ярлык | Хитов: 11 | Ответов: 1
    10:25 / 10 авг. Как пользоваться списком в Выжал Бацике | Хитов: 19 | Ответов: 2
    09:11 / 10 авг. Тук...и стенка! | Хитов: 20 | Ответов: 0
    00:47 / 10 авг. Голосовые елементы управления | Хитов: 10 | Ответов: 0
    23:49 / 9 авг. Кто качал WinPanel (Beta-тестирование) ? | Хитов: 12 | Ответов: 2
    23:16 / 9 авг. Как считать пиксель??? | Хитов: 10 | Ответов: 1
    22:51 / 9 авг. Работа с базой данных | Хитов: 24 | Ответов: 1
    19:39 / 9 авг. !"№;%:?*( | Хитов: 25 | Ответов: 4
    19:33 / 9 авг. иконка в MsgBox | Хитов: 33 | Ответов: 6
    16:53 / 9 авг. Доступ к публичным тайм-серверам из VB | Хитов: 13 | Ответов: 0
    14:28 / 9 авг. Toolbar свойство Caption | Хитов: 29 | Ответов: 2
    13:28 / 9 авг. Вопросец ...... | Хитов: 45 | Ответов: 9
    11:42 / 9 авг. Вопрос ро св-ву DataSuorse... | Хитов: 46 | Ответов: 5
    11:42 / 9 авг. ADO SQL Запрос на изменение | Хитов: 23 | Ответов: 2
    11:04 / 9 авг. GetVolumeInformation... | Хитов: 13 | Ответов: 1

    Последние поступления в Библиотеку кодов:

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     ALEX

    Ответ ожидается по этому адресу

    Помню был выпуск с примером кода для выключения/переяагруяки компа. Если у кого этот код остался, то вышлите ПЛЫЗ на мыло.

    Автор вопроса: Rusty Angles

    Ответ ожидается по этому адресу

    VB.Net
    Вопрос такой, как можно узнать CRC код файла? то есть как его вообще подсчитать то? Какие формулы и есть ли пример какой? А то сделал инсталлятор, но хочется, чтобы он еще проверял на целостность файлы, по CRC-32 коду

    Автор вопроса: Вячеслав

    Ответ ожидается по этому адресу

    Как при использовании MS Comm Conrol 6.0 определить, что связь не была установлена (линия занята)?

    Автор вопроса: Пашнин Фёдор

    Ответ ожидается по этому адресу

    В Exele есть список примерно строк в 70. Объясните почему такой цикл:

    Dim Row, Count As Integer
    Row = 1
    Count = 100
    Do Until Cells(Row, 1).Value = "" Or Count < 1
    Row = Row + 1
    Count = Count - 1
    Loop

    заканчивается, когда доходит до конца списка, а такой:

    Dim Row, Count As Integer
    Row = 1
    Count = 100
    Do While Cells(Row, 1).Value <> "" Or Count > 0
    Row = Row + 1
    Count = Count - 1
    Loop

    , когда Count доходит до нуля?

    Автор вопроса: Oksana

    Ответ ожидается по этому адресу

    Здравствуйте, посоветуйте, значение S лежит в ключе реестра: [HKEY_CURRENT_USER\Control Panel\Mouse] - "DoubleClickSpeed" , а как этот ключ запустить, найти?

    Private Declare Function GetDoubleClickTime Lib "user32" () As Long
    Private Sub Form_Load()
    S = GetDoubleClickTime
    MsgBox S
    End Sub

    Подскажите, что это за запись, где ее искать

    Автор вопроса: LexA

    Ответ ожидается по этому адресу

    У меня несколько вопросов.
    1)Как яаблокировать кнопки (например F8) при яагруяке компа или как сделать так, чтобы нельяя было яапустить беяопасный режим в Windows98 ?
    2)Как яапустить мою программу первой при яагруяке Windows (до того, как проиграет муяыка при яагруяке Windows'а)?
    3)Как проиграть муяыку в формате MP3 ия файла ресурсов?

    Автор вопроса: Мезенцев Алексей

    Ответ ожидается по этому адресу

    1. Как в VB6 получить доступ к свойствам сетевого принтера?

    2. Как изменить печать с книжной на альбомную из программы на VB6 ?

    3. В приложении на VB6 задаётся строка:

    <Объект Crystal Report>.ParameterFields(1) = "<имя поле-параметр>;" & <значение>

    для передачи значения <значение> в report. При вып. появляется табл. с возможностью изменить передаваемое значение. Но зачем? Я же его уже задал. Как избавиться от этого запроса.

    Автор вопроса: Олег

    Ответ ожидается по этому адресу

    Как в Excel увеличить количество накладываемых фильтров в автофильтре (по умолчанию 1000)?

    Автор вопроса: Виктор

    Ответ ожидается по этому адресу

    Как перехватить системное сообщение Windows до открытия/закрытия каталога или файла т.е. как быть, если выбрана команда <ПУСК \ Документы \*.*> или <Файл \ Открыть> ну скажем в или <3ds max 4>?
    Кстати о системных сообщениях Windows при открытии/закрытии каталога или файла можно узнать как это происходит подробнее.

    Автор вопроса: Александр Иванов

    Ответ ожидается по этому адресу

    Есть ли возможность в VB построения таких структур как очередь, стек, деревья (таких как в Паскале, Си). Буду рад любой информации. Особенно по деревьям.

    Ответы:

    Вопрос:

    Подскажите, как прошуршать список ListView и найти отмеченные чеком или просто выделенные в режиме мультиселект строки.

    Ответ:

    Автор ответа: Andrew Isakov

    Вообще-то ListView (да и TreeView тоже) имеют свойство Selected – у него есть свойства Count, Items, еще какие-то… Так вот, Count в данном случае – количество выделенных элементов, а Items – список этих элементов. RTFM! – сказал апостол Петр, поглаживая библию…

    Вопрос:

    На форме имеется картинка "Image1", кнопки и всякое раяное. Вопрос как_распечатать_только эту картинку, а_не_всю_форму.

    Ответ:

    Автор ответа: SAMARA

    Printer.PaintPicture Picture1.Picture, 1000, 1000

    Вопрос:

    На форме имеется картинка "Image1", кнопки и всякое раяное. Вопрос как_распечатать_только эту картинку, а_не_всю_форму.

    Ответ:

    Автор ответа: Nechaev Sergey

    Не знаю, насколько мой способ рациональный, но другого не знаю: Надо создать пустую форму, BorderStyle=0-None и положить на нее PictureBox. Теперь при необходимости распечатать картинку просто присваиваете свежесозданному PictureBox вашу картинку и выполняете метод PrintForm новой формы.

    Вопрос:

    Вопрос 1:
    Порскажите код, чтобы поместить иконку в трей (туда, где часики).
    Вопрос 2:
    Порскажите код, чтобы программно уянать сколько у меня CD-ROM, CD-RW, DVD-ROM.

    Ответ:

    Автор ответа: Andrew Isakov

    На второй вопрос – FileSystemObject. Существует, правда, только в VB6…

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 83.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.
Новости сайта IgorykSoft и советы по программированию
Visual Basic.NET Уроки.
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск!
    Читайте!

    Содержание выпуска
    • Книги

    • Как сэмулировать нажатия определенных клавиш
    • Подсчет нажатий на кнопки мыши
    • Тип клавиатуры
    • Переключение раскладки клавиатуры (Ru-En)
    • Какая раскладка клавиатуры включена в данный момент
    • Состояние функциональных клавиш

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Как сэмулировать нажатия определенных клавиш

    Для имитации нажатия на клавишу мыши служит API-функция mouse_event

    Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)

    dwFlags - означает, какое событие в данный момент должно происходит
    dx,dy - величины, характеризующие перемещение курсора от текущего положения курсора
    dx - перемещение по горизонтали (если значение положительное - перемещение идет вправо, если отрицательно - влево)
    dy - перемещение по вертикали (если значение положительное - перемещение идет вниз, если отрицательно - вверх).

    Пример использования функции: неоходимо переместить курсор из текущей точки нахождения курсора в точку с координатами (851,143) и в этой точке имитировать нажатие левой клавиши мыши

    Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
    Private Type POINTAPI
    x As Long
    y As Long
    End Type
    Dim z As POINTAPI
    Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
    Const MOUSEEVENTF_ABSOLUTE = &H8000
    Const MOUSEEVENTF_LEFTDOWN = &H2
    Const MOUSEEVENTF_LEFTUP = &H4
    Const MOUSEEVENTF_MIDDLEDOWN = &H20
    Const MOUSEEVENTF_MIDDLEUP = &H40
    Const MOUSEEVENTF_MOVE = &H1
    Const MOUSEEVENTF_RIGHTDOWN = &H8
    Const MOUSEEVENTF_RIGHTUP = &H10
    Private Sub Form_Load()
    GetCursorPos z 'получить текущее значение местоположения курсора
    zx = (851 - z.x) / 2 'необходимо разделить полученное значение на 2. С чем это связано, я не знаю.     А вы?
    zy = (143 - z.y) / 2
    mouse_event MOUSEEVENTF_MOVE, zx, zy, 0&, 0& 'перемещение курсора
    mouse_event MOUSEEVENTF_LEFTDOWN, 0&, 0&, 0&, 0& 'нажатие на левую клавишу мыши
    mouse_event MOUSEEVENTF_LEFTUP, 0&, 0&, 0&, 0& 'отпускание левой клавиши мыши
    End Sub

    'Примеры использования

    Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx
As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Const MOUSEEVENTF_ABSOLUTE = &H8000
Const MOUSEEVENTF_LEFTDOWN = &H2
Const MOUSEEVENTF_LEFTUP = &H4
Const MOUSEEVENTF_MIDDLEDOWN = &H20
Const MOUSEEVENTF_MIDDLEUP = &H40
Const MOUSEEVENTF_MOVE = &H1
Const MOUSEEVENTF_RIGHTDOWN = &H8
Const MOUSEEVENTF_RIGHTUP = &H10

    'Имитация клика:
    mouse_event MOUSEEVENTF_LEFTDOWN, lpPoint.x, lpPoint.y, 0&, 0&
    mouse_event MOUSEEVENTF_LEFTUP, lpPoint.x, lpPoint.y, 0&, 0&

    наверх

    Подсчет нажатий на кнопки мыши

    Данный пример покажет, как можно установить глобальный хук на мышь, и ваша программа будет считать количество нажатий на клавиши мыши и на колесо прокрутки. Также ваша программа будет реагировать на нажатие любой клавиши клавиатуры.

    Также данный пример в окне DEBUG располагает информацию о местоположении курсора.

    Добавьте модуль в вашу программу и также расположите на форме 5 элементов TextBox.

    'КОД ФОРМЫ

    Private Sub Form_Load()
    Text1 = "0"
    Text2 = "0"
    Text3 = "0"
    Text4 = "0"
    Text5 = "0"
    hHook = SetWindowsHookEx(WH_JOURNALRECORD, AddressOf HookProc, 0, 0)
    End Sub

    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    Call UnhookWindowsHookEx(hHook)
    End Sub

    'КОД МОДУЛЯ

    Option Explicit
    Public Type POINTAPI
    x As Long
    y As Long
    End Type
    Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
    Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
    Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (lpDest As Any, lpSource As Any, ByVal cBytes As Long)

    Private Const WM_MOUSEMOVE = &H200
    Private Const WM_LBUTTONDOWN = &H201
    Private Const WM_LBUTTONUP = &H202
    Private Const WM_LBUTTONDBLCLK = &H203
    Private Const WM_RBUTTONDOWN = &H204
    Private Const WM_RBUTTONUP = &H205
    Private Const WM_RBUTTONDBLCLK = &H206
    Private Const WM_MBUTTONDOWN = &H207
    Private Const WM_MBUTTONUP = &H208
    Private Const WM_MBUTTONDBLCLK = &H209
    Private Const WM_MOUSEWHEEL = &H20A
    Private Const WM_KEYDOWN = &H100
    Private Const WM_KEYUP = &H101

    Public Const WH_JOURNALRECORD = 0

    Type CBTACTIVATESTRUCT
    fMouse As Long
    hWndActive As Long
    End Type
    Dim CBT As CBTACTIVATESTRUCT
    Public hHook As Long

    Public Function HookProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    CopyMemory CBT, ByVal lParam, Len(CBT)

    Select Case CBT.fMouse
    Case WM_MOUSEMOVE
    Dim CurPos As POINTAPI
    GetCursorPos CurPos
    Debug.Print "Move at pos ", CurPos.x, CurPos.y

    Case WM_KEYDOWN
    Form1.Text5 = Form1.Text5 + 1
    Case WM_KEYUP
    Debug.Print "KeyUp"

    Case WM_MOUSEWHEEL
    Form1.Text4 = Form1.Text4 + 1

    Case WM_LBUTTONDOWN
    Form1.Text1 = Form1.Text1 + 1

    Case WM_LBUTTONUP
    Debug.Print "LeftUp"

    Case WM_RBUTTONDOWN
    Form1.Text3 = Form1.Text3 + 1

    Case WM_RBUTTONUP
    Debug.Print "RightUp"

    Case WM_MBUTTONDOWN
    Form1.Text2 = Form1.Text2 + 1

    Case WM_MBUTTONUP
    Debug.Print "MiddleUp"
    End Select
    HookProc = CallNextHookEx(hHook, nCode, wParam, lParam)
    End Function

    наверх

    Тип клавиатуры

    Данный пример определит тип клавиатуры

    Private Declare Function GetKeyboardType Lib "user32" (ByVal nTypeFlag As Long) As Long
    Private Sub Form_Load()
    Dim t As String
    Dim k As Long
    k = GetKeyboardType(0)
    If k = 1 Then t = "PC or compatible 83-key keyboard"
    If k = 2 Then t = "Olivetti 102-key keyboard"
    If k = 3 Then t = "AT or compatible 84-key keyboard"
    If k = 4 Then t = "Enhanced(IBM) 101-102-key keyboard"
    If k = 5 Then t = "Nokia 1050 keyboard"
    If k = 6 Then t = "Nokia 9140 keyboard"
    If k = 7 Then t = "Japanese keyboard"
    MsgBox "Type of keyboard : " & t
    End Sub

    наверх

    Переключение раскладки клавиатуры (Ru-En)

    Расположите на форме элемент CommandButton.

    Private Declare Function ActivateKeyboardLayout Lib "user32" (ByVal HKL As Long, ByVal flags As Long) As Long
    Private Sub Command1_Click()
    ActivateKeyboardLayout 0, 0
    End Sub

    наверх

    Какая раскладка клавиатуры включена в данный момент

    Private Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long

    Private Sub Form_Load()
    Dim KeybLayoutName As String
    KeybLayoutName = String(9, 0)
    GetKeyboardLayoutName KeybLayoutName
    'Номер 409 - английская, 419 - русская
    MsgBox "Текущая раскладка номер " & CStr(CLng(Left$(KeybLayoutName, _
    InStr(1, KeybLayoutName, Chr(0)) - 1)))
    End Sub

    наверх

    Состояние функциональных клавиш

    Данный пример покажет вам состояние функциональных клавши: Ctrl Shift Alt CapsLock ScrollLock NumLock Insert Key

    Option Explicit

    Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
    Private Declare Function GetKeyboardState Lib "user32" (pbKeyState As Byte) As Long
    Private Declare Function SetKeyboardState Lib "user32" (lppbKeyState As Byte) As Long

    ' Возвращает True если клавиша Ctrl нажата
    Function CtrlKey() As Boolean
    CtrlKey = (GetAsyncKeyState(vbKeyControl) And &H8000)
    End Function

    ' Возвращает True если клавиша Shift нажата
    Function ShiftKey() As Boolean
    ShiftKey = (GetAsyncKeyState(vbKeyShift) And &H8000)
    End Function

    ' Возвращает True если клавиша Alt нажата
    Function AltKey() As Boolean
    AltKey = (GetAsyncKeyState(vbKeyMenu) And &H8000)
    End Function

    ' Возвращает True если нажаты запрашиваемые клавиши
    'MsgBox KeysPressed(vbKeyRButton) - нажата ли правая клавиша мыши?
    Function KeysPressed(ByVal KeyCode1 As KeyCodeConstants, Optional ByVal KeyCode2 As KeyCodeConstants, Optional ByVal KeyCode3 As KeyCodeConstants) As Boolean
    If GetAsyncKeyState(KeyCode1) >= 0 Then Exit Function
    If KeyCode2 = 0 Then KeysPressed = True: Exit Function
    If GetAsyncKeyState(KeyCode2) >= 0 Then Exit Function
    If KeyCode3 = 0 Then KeysPressed = True: Exit Function
    If GetAsyncKeyState(KeyCode3) >= 0 Then Exit Function
    KeysPressed = True
    End Function

    ' узнать состояние CapsLock.
    'MsgBox GetCapsLock. Если True - то включена, если False - выключена
    Function GetCapsLock() As Boolean
    Dim keystat(0 To 255) As Byte
    GetKeyboardState keystat(0)
    GetCapsLock = (keystat(vbKeyCapital) And 1)
    End Function

    ' Изменение состояния CapsLock:
    ' SetCapsLock True - включено
    ' SetCapsLock False - выключено
    Sub SetCapsLock(ByVal newValue As Boolean)
    ' get current state of all 256 virtual keys
    Dim keystat(0 To 255) As Byte
    GetKeyboardState keystat(0)
    ' modify bit 0 of the relevant item, and store back
    keystat(vbKeyCapital) = (keystat(vbKeyCapital) And &HFE) Or (newValue And 1)
    SetKeyboardState keystat(0)
    End Sub

    ' узнать состояние ScrollLock.
    'MsgBox GetScrollLock. Если True - то включена, если False - выключена
    Function GetScrollLock() As Boolean
    Dim keystat(0 To 255) As Byte
    GetKeyboardState keystat(0)
    GetScrollLock = (keystat(vbKeyScrollLock) And 1)
    End Function

    ' Изменение состояния ScrollLock.
    ' SetScrollLock True - включено
    ' SetScrollLock False - выключено
    Sub SetScrollLock(ByVal newValue As Boolean)
    Dim keystat(0 To 255) As Byte
    GetKeyboardState keystat(0)
    keystat(vbKeyScrollLock) = (keystat(vbKeyScrollLock) And &HFE) Or (newValue And 1)
    SetKeyboardState keystat(0)
    End Sub

    ' узнать состояние NumLock.
    'MsgBox GetNumLock. Если True - то включена, если False - выключена
    Function GetNumLock() As Boolean
    Dim keystat(0 To 255) As Byte
    GetKeyboardState keystat(0)
    GetNumLock = (keystat(vbKeyNumlock) And 1)
    End Function

    ' Изменение состояния NumLock
    ' SetNumLock True - включено
    ' SetNumLock False - выключено
    Sub SetNumLock(ByVal newValue As Boolean)
    Dim keystat(0 To 255) As Byte
    GetKeyboardState keystat(0)
    keystat(vbKeyNumlock) = (keystat(vbKeyNumlock) And &HFE) Or (newValue And 1)
    SetKeyboardState keystat(0)
    End Sub

    ' узнать состояние Insert Key.
    'MsgBox GetInsertKey. Если True - то включена, если False - выключена
    Function GetInsertKey() As Boolean
    Dim keystat(0 To 255) As Byte
    GetKeyboardState keystat(0)
    GetInsertKey = (keystat(vbKeyInsert) And 1)
    End Function

    ' Изменение состояния Insert Key
    ' SetInsertKey True - включено
    ' SetInsertKey False - выключено
    Sub SetInsertKey(ByVal newValue As Boolean)
    Dim keystat(0 To 255) As Byte
    GetKeyboardState keystat(0)
    keystat(vbKeyInsert) = (keystat(vbKeyInsert) And &HFE) Or (newValue And 1)
    SetKeyboardState keystat(0)
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Pasha

    Ответ ожидается по этому адресу

    Как изменить порядок отображения полей в DbGrid. DbGrid связан с Data, Data связан через ODBC или Jet с таблицей FoxPro

    Автор вопроса: ]CBK[CRaSH

    Ответ ожидается по этому адресу

    Люди как организавать прослушку компов в сети(как в quake or CS) когда жмеш REFRESH он проверяет не все IP а только, те которые находятся в сети. И как сделать с winsock.ocx чтобы к серверу могли подконектится несколько человек

    Автор вопроса: Rafis

    Ответ ожидается по этому адресу

    Как с помощью ВБ текст ия ЮНИКОДа перевести в обычный, например на русский.

    Автор вопроса: Pavel I.Forkin

    Ответ ожидается по этому адресу

    При создании текстового редактора с использованием RichTextBox необходимо сделать 4 кнопки.
    1. По левому краю
    2. По центру
    3. По правому краю
    4. По ширине
    Первые три я делаю без проблем.
    Не подскажите как сделать четвертую.

    Автор вопроса: Евгений

    Ответ ожидается по этому адресу

    Как можно управлять Active Directory в Win2K программным пут?м, т.е.: соядать польяователя, удалить польяователя, сменить ему пароль, ияменить данные и настройки также, как в Active Directory.

    Автор вопроса: Винокуров К

    Ответ ожидается по этому адресу

    Как соядатьпрограмму-терминалку (BBS)?

    Автор вопроса: Михаил

    Ответ ожидается по этому адресу

    Как с помощьб inet1 соедениться с ftp серевером и яадать login и password. Если есть другие варианты для ftp?

    Ответы:

    Вопрос:

    Ответ:

    Автор ответа: Nechaev Sergey

    Как можно программно установить фоновый рисунок на папку в Проводнике. Если вручную, то это Вид=>Настроить вид папки...=>Выбрать фоновый рисунок. При этом в папке создается файл Desktop.ini в котором есть ссылка на файл фона. Если просто взять этот файл, положить его в другую папку и исправить путь к файлу изображения, ничего не происходит.
    Где я ошибся? Что и куда надо записать чтобы работало? Может это можно сделать через API?

    Вопрос:

    Как можно управлять Active Directory в Win2K программным пут?м, т.е.: соядать польяователя, удалить польяователя, сменить ему пароль, ияменить данные и настройки также, как в Active Directory.

    Ответ:

    Автор ответа: Евгений

    Как можно управлять Active Directory в Win2K программным пут?м, т.е.: соядать польяователя, удалить польяователя, сменить ему пароль, ияменить данные и настройки также, как в Active Directory.

    Вопрос:

    Помню был выпуск с примером кода для выключения/переяагруяки компа. Если у кого этот код остался, то вышлите ПЛЫЗ на мыло.

    Ответ:

    Автор ответа: Елизаров Пётр

    Как перезагрузить Windows

    Разместите в модуле:

    Public Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, _
    ByVal dwReserved As Long) As Long
    Public Const EWX_LOGOFF = 0
    Public Const EWX_SHUTDOWN = 1
    Public Const EWX_REBOOT = 2
    Public Const EWX_FORCE = 4

    А это в коде:

    Dim s As Long
    'Так можно сделать Выключить
    s = ExitWindowsEx(EWX_SHUTDOWN, 0&)
    'Так можно сделать Перезагрузить
    s = ExitWindowsEx(EWX_LOGOFF, 0&)
    'А так Войти от др. пользователя
    s = ExitWindowsEx(EWX_REBOOT, 0&)

    Вопрос:

    Помню был выпуск с примером кода для выключения/переяагруяки компа. Если у кого этот код остался, то вышлите ПЛЫЗ на мыло.

    Ответ:

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

    В модуле:

    Public Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, _
    ByVal dwReserved As Long) As Long

    Public Const EWX_SHUTDOWN = 1
    Public Const EWX_REBOOT = 2
    Public Const EWX_FORCE = 4

    Код формы

    Dim s As Long

    s = ExitWindowsEx(EWX_SHUTDOWN, 0&)

    'Перезагрузка
    s = ExitWindowsEx(EWX_REBOOT, 0&

    Вопрос:

    Помню был выпуск с примером кода для выключения/переяагруяки компа. Если у кого этот код остался, то вышлите ПЛЫЗ на мыло.

    Ответ:

    Автор ответа: Савельев Роман

    Примеры кода для выключения/перезагрузки компа.

    P.S. Всё опробировано на VB6 и Win98. На VB.Net ущё не перешёл, извиняйте :-)

    1. Даёт всем открытым приложениям команду на завершение работы и перезагружает Windows.

    Option Explicit

    Private Declare Function ExitWindowsEx _
    Lib "user32" ( _
    ByVal uFlags As Long, _
    ByVal dwReserved As Long _
    ) As Long

    Private Sub cmdReboot_Click()
    ExitWindowsEx &H43, 0
    End Sub

    2. Вызывает системное окно "Завершение работы Windows"

    Option Explicit

    'Для VB6 (Win98) нужно добавить ссылку на библиотеку.
    'Project->References->
    ' Microsoft Shell controls And Automation
    ' Location c:\windows\system\shdoc401.dll
    '
    'Для VB.Net - эксперименируйте сами ;-)
    Dim shl As New Shell32.Shell

    Private Sub cmdReboot_Click()
    shl.ShutdownWindows
    End Sub

    Вопрос:

    В Exele есть список примерно строк в 70. Объясните почему такой цикл:

    Dim Row, Count As Integer
    Row = 1
    Count = 100
    Do Until Cells(Row, 1).Value = "" Or Count < 1
    Row = Row + 1
    Count = Count - 1
    Loop

    заканчивается, когда доходит до конца списка, а такой:

    Dim Row, Count As Integer
    Row = 1
    Count = 100
    Do While Cells(Row, 1).Value <> "" Or Count > 0
    Row = Row + 1
    Count = Count - 1
    Loop

    , когда Count доходит до нуля?

    Ответ:

    Автор ответа: Andrey

    потому что в булевой алгебре (a OR b) = Not (Not(a) AND Not(b))

    т.е. применительно к данной ситуации:

    Until ((Cells(Row, 1).Value = "") OR (Count < 1))

    равнозначно

    While ((Cells(Row, 1).Value <> "") AND (Count > 0))

    /ключевой смысл в слове AND/

    т.е. в любом условии меняй OR на AND и они будут работать одинаково.

    Вопрос:

    В Exele есть список примерно строк в 70. Объясните почему такой цикл:

    Dim Row, Count As Integer
    Row = 1
    Count = 100
    Do Until Cells(Row, 1).Value = "" Or Count < 1
    Row = Row + 1
    Count = Count - 1
    Loop

    заканчивается, когда доходит до конца списка, а такой:

    Dim Row, Count As Integer
    Row = 1
    Count = 100
    Do While Cells(Row, 1).Value <> "" Or Count > 0
    Row = Row + 1
    Count = Count - 1
    Loop

    , когда Count доходит до нуля?

    Ответ:

    Автор ответа: Роксолан

    Вот что получается с твоими программами. Как известно, конструкция UNTIL /выражение/ - LOOP "крутится" до тех пор, пока /выражение/ ЛОЖНО. Таким образом, Do Until Cells(Row, 1).Value = "" Or Count < 1 ... LOOP завершит свою работу тогда, когда ОДНО из утверждений станет истинным. Поскольку, начальное значение COUNT больше, чем длина списка, то первым превратится в истину Cells(Row, 1).Value = "". С вытекающими последствиями. Во втором случае цикл крутится, пока утверждение ИСТИНО. И даже в том случае, когда Cells.Value="", приведенное в тексте выражение Cells(Row, 1).Value <> "" Or Count > 0 остается истинным до тех пор, пока Count>0. А он у тебя остается положительным еще тридцать строк после окончания таблицы...

    Вопрос:

    В Exele есть список примерно строк в 70. Объясните почему такой цикл:

    Dim Row, Count As Integer
    Row = 1
    Count = 100
    Do Until Cells(Row, 1).Value = "" Or Count < 1
    Row = Row + 1
    Count = Count - 1
    Loop

    заканчивается, когда доходит до конца списка, а такой:

    Dim Row, Count As Integer
    Row = 1
    Count = 100
    Do While Cells(Row, 1).Value <> "" Or Count > 0
    Row = Row + 1
    Count = Count - 1
    Loop

    , когда Count доходит до нуля?

    Ответ:

    Автор ответа: Maestro Ramires

    Ключевое слово While в цикле типа Do указывает проге, что данный цикл нужно выполнять до тех пор, пока следующее за ним условие истинно, аналогично - ключевое слово Until указывает, что цикл будет выполняться, пока условие ложно. Стало быть, в первом примере цикл будет выполняться пока в одной из ячеек не появиться какое-то значение или переменная Count не достигнет значения 0 (не дописано до конца). Во втором примере, цикл будет выполняться пока не появиться пустая строка или Count будет больше 0 (фактически тоже условие, что и в первом примере, только задано по-другому).

    Вопрос:

    В Exele есть список примерно строк в 70. Объясните почему такой цикл:

    Dim Row, Count As Integer
    Row = 1
    Count = 100
    Do Until Cells(Row, 1).Value = "" Or Count < 1
    Row = Row + 1
    Count = Count - 1
    Loop

    заканчивается, когда доходит до конца списка, а такой:

    Dim Row, Count As Integer
    Row = 1
    Count = 100
    Do While Cells(Row, 1).Value <> "" Or Count > 0
    Row = Row + 1
    Count = Count - 1
    Loop

    , когда Count доходит до нуля?

    Ответ:

    Автор ответа: Савельев Роман

    Ребята! Проверяйте логику!

    Do Until Cells(Row, 1).Value = "" Or Count < 1
    Выполнять_пока_НЕ (ячейка пуста) или (Count < 1)

    Do While Cells(Row, 1).Value <> "" Or Count > 0
    Выполнять_пока (ячейка НЕ пуста) или (Count > 0)

    Но ведь (A или B)=истина, если А=истина ИЛИ В=истина.
    Т.е. Do While Cells(Row, 1).Value <> "" Or Count > 0 будет выполняться даже при пустой ячейке, пока Count > 0.
    100 раз

    Вопрос:

    В Exele есть список примерно строк в 70. Объясните почему такой цикл:

    Dim Row, Count As Integer
    Row = 1
    Count = 100
    Do Until Cells(Row, 1).Value = "" Or Count < 1
    Row = Row + 1
    Count = Count - 1
    Loop

    заканчивается, когда доходит до конца списка, а такой:

    Dim Row, Count As Integer
    Row = 1
    Count = 100
    Do While Cells(Row, 1).Value <> "" Or Count > 0
    Row = Row + 1
    Count = Count - 1
    Loop

    , когда Count доходит до нуля?

    Ответ:

    Автор ответа: P@Ssword

    Объясняю: противоположностью условия

    (Условие1) ИЛИ (Условие2)

    является условие

    (НЕ Условие1) И (НЕ Условие2)

    (вроде ничего не напутал).

    А теперь на нормальном языке: вместо

    While Cells(Row, 1).Value <> "" Or Count > 0

    пиши

    While Cells(Row, 1).Value <> "" And Count > 0

    Вопрос:

    Здравствуйте, посоветуйте, значение S лежит в ключе реестра: [HKEY_CURRENT_USER\Control Panel\Mouse] - "DoubleClickSpeed" , а как этот ключ запустить, найти?

    Private Declare Function GetDoubleClickTime Lib "user32" () As Long
    Private Sub Form_Load()
    S = GetDoubleClickTime
    MsgBox S
    End Sub

    Подскажите, что это за запись, где ее искать

    Ответ:

    Автор ответа: P@Ssword

    Совсем девушке мозги запудрили.

    Значение-то ЭС лежит в ключе реестра [censored], а возвращается оно функцией GetDoubleClickTime.
    Так что никакую запись искать не надо, просто пишем

    Крутая_Переменная = GetDoubleClickTime

    Вопрос:

    Есть два TextBox. В каждом яаписывается какое-либо время. Например:
    TextBox1.text = "01:30:25"
    TextBox2.text = "02:01:30"
    Как вычислить TextBox2.text - TextBox1.text
    Может кто сталкивался с таким, подкиньте код пожалуйста. Бывает ли переменная типа Time (не timer) и каким обраяом проияводятся вычисления со временем?

    Ответ:

    Автор ответа: Игорь

    Время и дата хранится в переменной числового типа. Целая часть числа отображает дату, дробная - время. получить текущее время можно оператором time

    Ну а дальше вычитай сколько хочешь.

    А если у тебя уже есть время в текстовом виде, то его преобразовать в число можно при помощи функции TimeValue

    Вот что про нее пишет подсказка :

    TimeValue Function Example
    This example uses the TimeValue function to convert a string to a time. You can also use date literals to directly assign a time to a Variant or Date variable, for example, MyTime = #4:35:17 PM#.
    Dim MyTime
    MyTime = TimeValue("4:35:17 PM")

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 84.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск рассылки!!!
    Читайте!

    Содержание выпуска
    • Книги

    • Внимание!!! Конкурс!!!

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 16.08.2002 10:46 | Раздел: Примеры кода | Автор: LexA

    Key - Эта программа нужна для того, что поставить пароль на Windows. Запустив ее разок, и она будет запускать при каждой загрузки Windows. Для тех, кто забыл пароль, в это программе есть пару приколов.

    Дата: 15.08.2002 21:53 | Раздел: ActiveX контролы | Автор: Onishchuk Evgen

    Registry - Dll library для работы с реестром. Сделан в стиле msgbox с использованием констант. Работает со всеми типами данных и ключами... В архиве есть пример использования.

    Дата: 15.08.2002 11:56 | Раздел: Статьи по VB | Автор: Гриненко Виталий

    Мое второе впечатление о VB7 - Когда я изучал материалы опубликованные по поводу технологии .NET, мне открылось одно очень важное откровение: надвигается война. Эта война не будет войной информационных идей и технических решений (все эти решения уже приняты). Это война за монополию технологии в области Internet и за те сверхприбыли, которые такая монополия гарантирует. О программистах и о пользователях в этой войне думать никто не будет. Мы нужны только как пушечное мясо, чтобы из наших тел строить баррикады. А те из нас кто все-таки уцелеет будут просто поставлены перед фактом: хотите программировать - нет проблем - покупайте наши программы. Вы со мной не согласны? Ну что ж - заслушайте факты и сделайте выводы сами.

    Дата: 14.08.2002 12:49 | Раздел: Примеры кода | Автор: CyRax

    Автотёрка - Объект ходит по карте и очищает её от разночветных точек. Более подробно в примере. Советую посмотреть методику считывания карты и вообще.

    Дата: 14.08.2002 09:44 | Раздел: Примеры кода | Автор: Дорохов Кирилл

    Passworder - Исходник, в котором я показал, как разгадывать пароль методом быстрого подбора. Использование : Если при нажатии на Ok в TextBox-е правильный пароль, то появляется сообщение. Если нажмете на кнопку угадывания, то на ваших глазах начнется перебор символов, до тех пор пока не окажется правильный пароль и не высветится сообщение. Исходник является основой для более эффективных программ.

    Дата: 14.08.2002 09:23 | Раздел: Статьи по VB | Автор: Шатрыкин Иван

    VB .NET: дорога в будущее - Не так давно Microsoft в очередной раз заставила вздрогнуть программистов во всем мире, объявив о начале новой эры развития языков программирования. .NET Framework - вот то, что мы еще долго будем изучать, то, что станет фундаментом для наших новых программ, то, что будет волновать умы лучших программистов в следующие годы. Учитывая это, Microsoft решила пойти на вторую в своей истории авантюру после создания Visual Basic и представила новый язык программирования VB.NET. Что же такое VB.NET? Что будет с огромной армией программистов, которые писали свои программы на языке Visual Basic, выдержавшем шесть версий? Вот об этом мы и поговорим в этой статье.

    Дата: 13.08.2002 21:52 | Раздел: ActiveX контролы | Автор: Onishchuk Evgen

    INIFiles - Dll library для работы с INI файлами. Очень удобна в работе. В архиве есть пример использования.

    Дата: 13.08.2002 21:42 | Раздел: Примеры кода | Автор: Азизов Клим

    FileEdlaun - Пример работы с файлами. Программа предназначена для открытия TXT BAT INF LOG INI файлов...., а

    Дата: 12.08.2002 18:15 | Раздел: Примеры кода | Автор: Дорохов Кирилл

    Kerish BIOS Reader - Один раз я увидел пример, который считывает некую информацию из BIOS-а. В коде я увидел, что автор не использует полный потенциал и читает только инфу о версии BIOS-а или дате. Я написал пример, с помощью которого вы можете читать все значения в заданном промежутке памяти. Задав значение 90000 я среди кучи непонятного увидел инфу о стандартных драйверах и другой инфы, а также о Microsoft. Как она в BIOS попала?

    Дата: 12.08.2002 09:21 | Раздел: Статьи по VB | Автор: Шатрыкин Иван

    Типы данных в VB .NET - Переход на платформу .NET потребовал от разработчиков Visual Basic титанических усилий по его приведению в соответствие со спецификацией CLS. Изменения коснулись практически всех средств языка, но наиболее существенные из них произошли в типах данных и работе с ними. Если кто-то из вас еще сомневается в новизне VB .NET, то после прочтения этой статьи все сомнения должны рассеяться: VB .NET - это действительно новый язык, позаимствовавший от дедушки Basic синтаксис, но не более того. В этой статье я попытаюсь рассказать об основных изменениях в работе с данными и, кроме того, сравнить скорость работы старого VB6 и нового VB .NET при обработке переменных различных типов.

    Последние 20 тем форума на VBNet.Ru:

    21:50 / 17 авг. ВСЕМ КТО ИНТЕРЕСУЕТСЯ ОБРАБОТКОЙ ВИДЕОСИГНАЛА | Хитов: 15 | Ответов: 1
    14:44 / 17 авг. Ассоциация | Хитов: 19 | Ответов: 1
    04:37 / 17 авг. $АДМИНАМ$ | Хитов: 24 | Ответов: 1
    02:37 / 17 авг. Ребят! Помогите разобраться с Access 2000 и VB 6 | Хитов: 37 | Ответов: 8
    20:42 / 16 авг. ПОМОГИТЕ, УМИРАЮ!!! | Хитов: 45 | Ответов: 3
    18:59 / 16 авг. Проблема с ACCESS | Хитов: 30 | Ответов: 6
    18:59 / 16 авг. Проблема с ACCESS | Хитов: 5 | Ответов: 0
    18:05 / 16 авг. Просмотр сведений по текущ. подключ. к Internet | Хитов: 3 | Ответов: 0
    18:05 / 16 авг. Просмотр сведений по текущ. подключ. к Internet | Хитов: 18 | Ответов: 3
    11:29 / 16 авг. Люди добрые!!! поможите примерчиком | Хитов: 66 | Ответов: 3
    10:18 / 16 авг. Отчеты | Хитов: 38 | Ответов: 3
    09:18 / 16 авг. Управление другим приложением | Хитов: 38 | Ответов: 2
    08:58 / 16 авг. host | Хитов: 44 | Ответов: 5
    08:06 / 16 авг. Star Craft: Terran vs Protoss | Хитов: 26 | Ответов: 0
    08:03 / 16 авг. ЭТО ДОЛЖЕН ЗНАТЬ КАЖДЫЙ | Хитов: 53 | Ответов: 1
    21:38 / 15 авг. Фокус | Хитов: 35 | Ответов: 0
    14:00 / 15 авг. Админам | Хитов: 78 | Ответов: 8
    13:34 / 15 авг. Поиск по дате в базе... | Хитов: 44 | Ответов: 4
    13:06 / 15 авг. опять locker.... | Хитов: 48 | Ответов: 6
    09:51 / 15 авг. DBGrid Rows | Хитов: 29 | Ответов: 1

    Последние поступления в Библиотеку кодов:

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Vladimir

    Ответ ожидается по этому адресу

    Компиляцию проекта делал прогр. Packege_&_Deployment_Wizard. При инсталяции выдаются ошибки.

    1. Section: Setyp 1 Files
    @ name.exe/ $(ProgramFile)
    ...и т.д.
    2. Section: Bootstrap Files
    @ VB6STKIT.DLL. $(WinSysPathSysFile)
    ...и т.д.
    Что делать как этого иябежать.

    Автор вопроса: Слава

    Ответ ожидается по этому адресу

    А кто подскажет как в VB можно уянать свойства видео файлов: битрайт, раярешение, кодек, время просмотра, и т.п. В проводнике по правой кнопке мыши все это рисуется.

    Автор вопроса: Владислав Макеев

    Ответ ожидается по этому адресу

    1. Как искать файлы на диске?
    2. Как отслеживать появление новых файлов с определённым расширением (например *.doc или *.txt)?

    Автор вопроса: Иван

    Ответ ожидается по этому адресу

    Сделал на VB6 active-x dll которая публикует в системе свой объект для доступа к базам данных из ASP-страниц.
    На Win98 всё было нормально.
    При попытке использовать эту dll на Win2000-машине происходит полный облом.
    (при вызове <% Set s = CreateObject("AUDBC.dbConnection") %>).
    Хотя инсталяшка сделанная в VB6 на моей Win98 весит довольно много и включает практически всё что нужно.
    Может VB6 и NT малосовместимы.
    Что делать?

    Автор вопроса: Костик

    Ответ ожидается по этому адресу

    Как создать ярлык на рабочем столе?
    В 74 выпуске был пример кода, но у меня он не нработает. VB пишет:

    Ошибка во время выполнения программы '424':
    Требуемый объект

    а потом показывает на строку:

    Set WSHShell = WScript.CreateObject("WScript.Shell")

    Автор вопроса: Peter

    Ответ ожидается по этому адресу

    В библиотеке кодов я вяял код программы для открытия\яакрытия CD-Rom . Но она почему-то не работает.

    Автор вопроса: P@Ssword

    Ответ ожидается по этому адресу

    Может, у кого есть чего-нибудь по HTTP (HyperText Transfer Protocol). Даже если в устной форме ч?-ньдь есть - напишите, может пригодится.

    Автор вопроса: Вадим

    Ответ ожидается по этому адресу

    VB6. Пишу защиту от копирования, хочу привязать к определенному компу. Или есть какая защита от тиражирования CD? Сомневаюсь раз мы их клепаем. Смысл тот что при продаже сначала прога генерирует ключ из номера, например BIOS заказчика после чего я в инсталятор забиваю проверку. Фиксирую на сидюк и продаю. Пусть пробуют тиражировать.

    Автор вопроса: Nechaev Sergey

    Ответ ожидается по этому адресу

    Подскажите, пожалуйста, как можно программно установить фоновый рисунок на папку в Проводнике. Если вручную, то это Вид=>Настроить вид папки...=>Выбрать фоновый рисунок. При этом в папке создается файл Desktop.ini в котором есть ссылка на файл фона. Если просто взять этот файл, положить его в другую папку и исправить путь к файлу изображения, ничего не происходит.
    Где я ошибся? Что и куда надо записать чтобы работало? Может это можно сделать через API?

    Ответы:

    Вопрос:

    Как можно управлять Active Directory в Win2K программным пут?м, т.е.: соядать польяователя, удалить польяователя, сменить ему пароль, ияменить данные и настройки также, как в Active Directory.

    Ответ:

    Автор ответа: Eugene Zaborov

    Достаточно полное описание приведено в книге:
    Томас Экк. Сценарии ADSI для системного администрирования Windows NT/2000 .
    М.,Изд. Дом "Вильямс",2000

    Исходные тексты примеров из этой книги можно взять по
    http://www.williamspublishing.com/archive/5-8459-0106-5/ADSI_Exercises.exe

    Вопрос:

    В Exele есть список примерно строк в 70. Объясните почему такой цикл:

    Dim Row, Count As Integer
    Row = 1
    Count = 100
    Do Until Cells(Row, 1).Value = "" Or Count < 1
    Row = Row + 1
    Count = Count - 1
    Loop

    заканчивается, когда доходит до конца списка, а такой:

    Dim Row, Count As Integer
    Row = 1
    Count = 100
    Do While Cells(Row, 1).Value <> "" Or Count > 0
    Row = Row + 1
    Count = Count - 1
    Loop

    , когда Count доходит до нуля?

    Ответ:

    Автор ответа: Holy Deer

    для того, чтобы найти ошибку надо разобрать одну строчку с условием:

    ......Do While Cells(Row, 1).Value <> "" Or Count > 0 ......

    что белает данная строка? она повторяет цикл до тех пор, пока оба условия не станут неверными. поэтому, когда заканчивается цикл, у нас переменная Count все еще больше нуля, поэтому цикл повторится до полного ее обнуления.
    для правильной работы программы надо просто заменить OR на AND.:

    ......Do While Cells(Row, 1).Value <> "" And Count > 0 ......

    вот и все.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 85.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.
Новости сайта IgorykSoft и советы по программированию
Visual Basic.NET Уроки.
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск!
    Читайте!

    Содержание выпуска
    • Книги

    • Как сэмулировать блокировку клавиатуры
    • Как определить, какая клавиша нажата?
    • Как сэмулировать нажатия определенных клавиш
    • Одновременное нажатие нескольких клавиш
    • Получить скорость повтора ввода символов
    • Требовать подтверждения при выходе из программы

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Как сэмулировать блокировку клавиатуры

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

    Добавьте на форму CommandButton и TextBox. При однократном нажатии на кнопку, попытайтесь набрать какой-либо текст. Нажмите второй раз, попробуйте…

    Dim FlagKeyb As Boolean

    Private Sub Command1_Click()
    FlagKeyb = Not FlagKeyb
    If FlagKeyb Then
    Command1.Caption = "Отключить"
    Else
    Command1.Caption = "Включить"
    End If
    Text1.SetFocus
    End Sub

    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If FlagKeyb Then
    Else
    KeyCode = 0
    End If
    End Sub
    Private Sub Form_KeyPress(KeyAscii As Integer)
    If FlagKeyb Then
    Else
    KeyAscii = 0
    End If
    End Sub
    Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
    If FlagKeyb Then
    Else
    KeyCode = 0
    End If
    End Sub

    Private Sub Form_Load()
    FlagKeyb = True
    Command1.Caption = "Отключить"
    End Sub

    наверх

    Как определить, какая клавиша нажата?

    'Вариант 1

    'Добавьте 1 Label

    Option Explicit
    Dim iKeyCode As Integer
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    iKeyCode = KeyCode
    Label1.Caption = "Код нажатой клавиши: " & iKeyCode
    If iKeyCode = 112 Then 'нажата клавиша F1
    'Здесь вы можете вставить любую процедуру
    End If
    End Sub

    'Вариант 2

    'Достаточно простой проект, который покажет вам, какие клавиши вы нажимаете

    Dim temp As String
    Private Sub Form_KeyPress(KeyAscii As Integer)
    Dim kascci
    kascci = Chr(KeyAscii)
    temp = "Key Ascii = " + Str(KeyAscii) + " = " + " Char = " + kascci
    If KeyAscii = 13 Then 'нажимая <Enter>, вы очистите форму
    Form1.Cls
    Else
    Print temp 'печать KeyAscii и саму букву на форме
    End If
    End Sub
    Private Sub Form_Load()
    Form1.FontSize = 12
    End Sub

    наверх

    Как сэмулировать нажатия определенных клавиш

    Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    'bVk - Виртуальный код клавиши для имитации нажатия и отпускания клавиши.
    'bScan - Зарезервировано -- установлено в 0.
    'dwFlags - Комбинация следующих флагов определяет различные способы имитации:
    'KEYEVENTF_EXTENDEDKEY - Префикс скэн-кода с префиксным байтом, имеющим значение &HE0.
    'KEYEVENTF_KEYUP - Клавиша, указанная в bVk будет отпущена. Если этот флажок не определен, клавиша будет нажата.
    'dwExtraInfo - Дополнительное 32-разрядное значение, связанное с событием клавиатуры.
    Const KEYEVENTF_KEYUP = &H2 'событие отпускания клавиши
    Const VK_ADD = &H6B 'клавиша +
    Const VK_CONTROL = &H11 'клавиша Ctrl
    Const VK_TAB = &H9 'клавиша Tab
    Const VK_MENU = &H12 'клавиша Alt
    Const VK_ESCAPE = &H1B 'клавиша Escape
    Const VK_LWIN = &H5B 'левая клавиша, эмулирующая нажатие кнопки ПУСК

    Private Sub ShowStartMenu()
    'Функция эмулирует нажатие Ctrl + Esc
    Call keybd_event(VK_CONTROL, 0, 0, 0) 'Hажимаем Ctrl
    Call keybd_event(VK_ESCAPE, 0, 0, 0) 'Hажимаем Esc
    Call keybd_event(VK_ESCAPE, 0, KEYEVENTF_KEYUP, 0) 'Отпускаем Esc
    Call keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0) 'Отпускаем Ctrl
    End Sub

    Private Sub Command1_Click()
    ShowStartMenu
    End Sub

    'эмуляция нажатия клавиши Alt
    Call keybd_event(VK_ADD, 0, 0, 0)
    Call keybd_event(VK_ADD, 0, KEYEVENTF_KEYUP, 0)
    'эмуляция нажатия левой кнопки с логотипом Windows
    Call keybd_event(VK_LWIN, 0, 0, 0)
    Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)
    'Запустить проводник
    Call keybd_event(VK_LWIN, 0, 0, 0)
    Call keybd_event(69, 0, 0, 0)
    Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)
    'поиск файла
    'Call keybd_event(VK_LWIN, 0, 0, 0)
    'Call keybd_event(70, 0, 0, 0)
    'Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)

    Private Const VK_ADD = &H6B
    Private Const VK_ATTN = &HF6
    Private Const VK_BACK = &H8
    Private Const VK_CANCEL = &H3
    Private Const VK_CAPITAL = &H14
    Private Const VK_CLEAR = &HC
    Private Const VK_CONTROL = &H11
    Private Const VK_CRSEL = &HF7
    Private Const VK_DECIMAL = &H6E
    Private Const VK_DELETE = &H2E
    Private Const VK_DIVIDE = &H6F
    Private Const VK_DOWN = &H28
    Private Const VK_END = &H23
    Private Const VK_EREOF = &HF9
    Private Const VK_ESCAPE = &H1B
    Private Const VK_EXECUTE = &H2B
    Private Const VK_EXSEL = &HF8
    Private Const VK_F1 = &H70
    Private Const VK_F10 = &H79
    Private Const VK_F11 = &H7A
    Private Const VK_F12 = &H7B
    Private Const VK_F13 = &H7C
    Private Const VK_F14 = &H7D
    Private Const VK_F15 = &H7E
    Private Const VK_F16 = &H7F
    Private Const VK_F17 = &H80
    Private Const VK_F18 = &H81
    Private Const VK_F19 = &H82
    Private Const VK_F2 = &H71
    Private Const VK_F20 = &H83
    Private Const VK_F21 = &H84
    Private Const VK_F22 = &H85
    Private Const VK_F23 = &H86
    Private Const VK_F24 = &H87
    Private Const VK_F3 = &H72
    Private Const VK_F4 = &H73
    Private Const VK_F5 = &H74
    Private Const VK_F6 = &H75
    Private Const VK_F7 = &H76
    Private Const VK_F8 = &H77
    Private Const VK_F9 = &H78
    Private Const VK_HELP = &H2F
    Private Const VK_HOME = &H24
    Private Const VK_INSERT = &H2D
    Private Const VK_LBUTTON = &H1
    Private Const VK_LCONTROL = &HA2
    Private Const VK_LEFT = &H25
    Private Const VK_LMENU = &HA4
    Private Const VK_LSHIFT = &HA0
    Private Const VK_MBUTTON = &H4 ' NOT contiguous with L RBUTTON
    Private Const VK_MENU = &H12
    Private Const VK_MULTIPLY = &H6A
    Private Const VK_NEXT = &H22
    Private Const VK_NONAME = &HFC
    Private Const VK_NUMLOCK = &H90
    Private Const VK_NUMPAD0 = &H60
    Private Const VK_NUMPAD1 = &H61
    Private Const VK_NUMPAD2 = &H62
    Private Const VK_NUMPAD3 = &H63
    Private Const VK_NUMPAD4 = &H64
    Private Const VK_NUMPAD5 = &H65
    Private Const VK_NUMPAD6 = &H66
    Private Const VK_NUMPAD7 = &H67
    Private Const VK_NUMPAD8 = &H68
    Private Const VK_NUMPAD9 = &H69
    Private Const VK_OEM_CLEAR = &HFE
    Private Const VK_PA1 = &HFD
    Private Const VK_PAUSE = &H13
    Private Const VK_PLAY = &HFA
    Private Const VK_PRINT = &H2A
    Private Const VK_PRIOR = &H21
    Private Const VK_PROCESSKEY = &HE5
    Private Const VK_RBUTTON = &H2
    Private Const VK_RCONTROL = &HA3
    Private Const VK_RETURN = &HD
    Private Const VK_RIGHT = &H27
    Private Const VK_RMENU = &HA5
    Private Const VK_RSHIFT = &HA1
    Private Const VK_SCROLL = &H91
    Private Const VK_SELECT = &H29
    Private Const VK_SEPARATOR = &H6C
    Private Const VK_SHIFT = &H10
    Private Const VK_SNAPSHOT = &H2C
    Private Const VK_SPACE = &H20
    Private Const VK_SUBTRACT = &H6D
    Private Const VK_TAB = &H9
    Private Const VK_UP = &H26
    Private Const VK_ZOOM = &HFB

    наверх

    Одновременное нажатие нескольких клавиш

    Данный пример позволяет определить, какие клавиши пользователь нажал одновременно. Данный пример идеально применим при создании игрушек, когда необходимо пользоваться клавишами управления (4 серые клавиши со стрелками).

    Добавьте на форму 5 элементов Label

    'Массив currectKeys содержит в себе все нажатые клавиши
    'Для примера, если нажата клавиша ПРОБЕЛ, элемент массива currentKeys(32) = True
    '(потому что keyCode клавиши равен 32), а все остальные клавиши = False.
    Dim currentKeys(0 To 250) As Boolean
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    'При нажатии на клавишу запускается событие KeyDown снова и снова.
    'Идет проверка: нажата клавиша только что клавиша уже нажата
    If currentKeys(KeyCode) = False Then
    'Обновить массив, если клавиша нажата
    currentKeys(KeyCode) = True
    If KeyCode = vbKeyLeft Then Label1 = "Left"
    If KeyCode = vbKeyRight Then Label2 = "Right"
    If KeyCode = vbKeyUp Then Label3 = "Up"
    If KeyCode = vbKeyDown Then Label4 = "Down"
    If KeyCode = vbKeySpace Then Label5 = "Fire"
    End If
    End Sub
    Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
    'Обновить массив, когда клавиша отжата
    currentKeys(KeyCode) = False
    If KeyCode = vbKeyLeft Then Label1 = ""
    If KeyCode = vbKeyRight Then Label2 = ""
    If KeyCode = vbKeyUp Then Label3 = ""
    If KeyCode = vbKeyDown Then Label4 = ""
    If KeyCode = vbKeySpace Then Label5 = ""
    End Sub
    Private Sub Form_Load()
    'Обнулить значения элементов Label
    Label1 = ""
    Label2 = ""
    Label3 = ""
    Label4 = ""
    Label5 = ""
    End Sub

    наверх

    Получить скорость повтора ввода символов

    Данную опцию вы можете настроить непосредственно в ПанелиУправления/Клавиатура. Установите бегунок "Скорость повтора" в нужное положение. Следующий пример покажет, как определить числовое значение установленной опции: 31 соответствует наибольшему значению скорости повтора, 0 - наименьшему.

    Const SPI_GETKEYBOARDSPEED = 10
    Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" _
    (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long) As Long

    Private Sub Form_Load()
    Dim r As Long
    q = SystemParametersInfo(SPI_GETKEYBOARDSPEED, 0, r, 0)
    MsgBox "Скорость повтора = " & r & " символ в секунду"
    End Sub

    наверх

    Требовать подтверждения при выходе из программы

    картинка примера

    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    Dim Answer As Integer
    Answer = MsgBox("Действительно хотите выйти ?", vbQuestion + vbYesNo, "Confirmation")
    If Answer = vbNo Then Cancel = -1
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     afb

    Ответ ожидается по этому адресу

    Подскажите кто-нибудь как сделать программу покаяывающую время пребывания в Inet, скорость качания.

    Автор вопроса: Александр Зуев

    Ответ ожидается по этому адресу

    Кто нибудь работал из VB6 с API функциями ActiveSynca, или писал прогу для работы с КПК "Кассиопея"?

    Автор вопроса: Щербаков Владимир

    Ответ ожидается по этому адресу

    Как обрабатывать (находить слово,читать,удалять,добавлять итд) содержимое текстового окна текстовой программы, например WordPad с помощью API в Visual Basic.
    У меня есть текст в WordPad.
    Надо:
    1. Беру первое слово в тексте
    2. Копирую в буфер обмена
    3. Жду появления окна другой(не важно какой) проги.
    4. Как только появилось ввожу слово из буфера ОБРАТНО в тоже место в WordPad.
    5. Беру следующее слово ...
    и так весть текст надо мне обработать.
    Как выполнить первый пункт с помощью API функций?

    Автор вопроса: Дмитрий Слащёв

    Ответ ожидается по этому адресу

    Как польяоватся UDP протоколом (Winsock) при сабклассировании ?

    Автор вопроса: ]CBK[CRaSH

    Ответ ожидается по этому адресу

    Люди кто знает как юзать GLXCTL.OCX буду рад любой инве

    Автор вопроса: Vladimir

    Ответ ожидается по этому адресу

    На форме имеется картинка PictureBox-большой во весь экран, а на этой картинке находятся другие (маленького раямера) PictureBox, Label.
    На экране монитора видно PictureBox-большой а, поверх PictureBox-маленькие и Label. При переходе на принтер PictureBox-маленькие и Label не печатаетcz поверх основной картинки. Как исправить положение?

    Автор вопроса: Сергей Гаан

    Ответ ожидается по этому адресу

    Подскажите, кто знает, как можно на VB вывести звук в телефонную линию через модем, например какой-нибудь wav. Модем не голосовой, USB.

    Автор вопроса: Silonov

    Ответ ожидается по этому адресу

    У меня несколько вопросов :)
    1)Kak проиграть MP3 фаил из файла рксурсов?
    2)Можно ли в VB6 создать фаил с разрешением VXD, если да то как?
    3)У кого-нибудь есть конвектатор из WAV в MID или из MP3 в MID, если есть, то скинте этот фаил на e-mail(если он не больше 2MB)?
    4)Как можно дописать пару строк в фаил Msdos.sys из VB? :)

    Автор вопроса: shadow

    Ответ ожидается по этому адресу

    1 как организовать сокет с помощью АПИ - мне требуется только прием-передача текстовых строк в сеть (локальная сеть)?
    2 можно ли сделать в комбобоксе горизонтальный скролбар?
    3 как при отсылке сообщения в сеть подменить свой IP на любой другой

    Автор вопроса: Костик

    Ответ ожидается по этому адресу

    Как сохранить List-ы ия 9 Listbox-ов в один файл (например в Aaa.zzz) и яатем ия этого же файла их яагруяить в те же Listbox-ы?

    Автор вопроса: Виктор

    Ответ ожидается по этому адресу

    Перенеся макросы с англ версии Excel (4.0) в русскую (2002) получил, что не распознаются функции if,and,or,sum и т.п. Нигде не нашел другого способа как только программный поиск и замена. Причем если делать ручками (через F3) функции меняются корректно, а если программно (Ctlls.Replace...), то №получаем #Имя, и лечиться опять же или ручками (надо войти в ячекц по F2, и просто выйти Enter'ом) или программно (Cells(i,j).FormatLocal=Cells(i,j).FormatLocal). Файлов очень много и они достаточно большие (обработка 16 файлов заняло ночь (PIV,384M).
    Осталдось еще пара сотен файлов, поэтому вопрос:
    КАК заставить Excel корректно преобразовать его англоязычные макрокоманды в рускоязычные?
    КАК можно оптимизировать прогу, чтобы она обрабатывала за ночь хотя бы 100 файлов?

    Тест проги:Dim i As Integer '
    Dim k As Integer
    Dim w As Workbooks
    i = 1
    For k = 1 To Workbooks.Count
    Debug.Print Workbooks(k).Name
    If Workbooks(k).Name = "Книга1.xls" Then GoTo ppp
    Workbooks(k).Activate
    With Workbooks("Книга1.xls").Sheets("Лист1")
    For i = 1 To 12
    Cells.Replace What:=.Range("A" & i).Value, Replacement:=.Range("B" & i).Value, LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False

    Y:
    Next i
    End With
    Dim j As Integer:Dim P As Integer
    For j = 1 To 100
    For i = 1 To 700
    If Cells(i, j).FormulaLocal = "" Then P = P + 1 Else P = 0
    If P >= 30 Then GoTo qw 'если 30 подряд пустых записей то считаем что записи в колонке кончились и идем к другой
    On Error Resume Next
    Cells(i, j).FormulaLocal = Cells(i, j).FormulaLocal
    Next i
    qw: P = 0
    Next j
    Workbooks(k).Close SaveChanges:=True
    ppp: Next k

    Автор вопроса: Vitaly

    Ответ ожидается по этому адресу

    Где можно в интернете найти более менее полную документацию по VBScript и Windows Scripting Host ?

    Автор вопроса: Павел

    Ответ ожидается по этому адресу

    У меня есть три вопроса: первый, как можно определить, когда крутят колесико мышки, желательно для WinXP; второй, можно ли избавиться от файла MSVBVM60.DLL и последнее кто-нибудь скажите, чем отличается VisualBASIC 7.0 NET от других версий.

    Автор вопроса: Paul

    Ответ ожидается по этому адресу

    Как "прописать" программу в автозагрузку, а затем удалить её( нужно запустить программу один раз при запуске)?

    Ответы:

    Вопрос:

    Компиляцию проекта делал прогр. Packege_&_Deployment_Wizard. При инсталяции выдаются ошибки.

    1. Section: Setyp 1 Files
    @ name.exe/ $(ProgramFile)
    ...и т.д.
    2. Section: Bootstrap Files
    @ VB6STKIT.DLL. $(WinSysPathSysFile)
    ...и т.д.
    Что делать как этого иябежать.

    Ответ:

    Автор ответа: Андрей

    Проблема скорре всего в некорректном формате даты в записях файла setup.lst
    Например:

    Неправильный формат:

    File1=@VB6STKIT.DLL,$(WinSysPathSysFile),,,10.31.00 12:57:42 PM,102912,6/0/81/69

    Правильный:

    File1=@VB6STKIT.DLL,$(WinSysPathSysFile),,,10/31/00 12:57:42 PM,102912,6/0/81/69

    Зависит от региональных установок символа разделителя в дате.
    В крайнем случае можно корректировать сам файл setup.lst после генерации дистрибутива.

    Вопрос:

    Сделал на VB6 active-x dll которая публикует в системе свой объект для доступа к базам данных из ASP-страниц.
    На Win98 всё было нормально.
    При попытке использовать эту dll на Win2000-машине происходит полный облом.
    (при вызове <% Set s = CreateObject("AUDBC.dbConnection") %>).
    Хотя инсталяшка сделанная в VB6 на моей Win98 весит довольно много и включает практически всё что нужно.
    Может VB6 и NT малосовместимы.
    Что делать?

    Ответ:

    Автор ответа: Шатрыкин Иван

    Могу предположить, что дело в правах на доступ к некоторым объектам. У меня, обычно, в NT работают DLL. Вообще же, больших проблемм с работой в NT быть не должно. Хотя некоторые функции API в NT и 9x действительно сильно различаются. Может быть, если ты используешь API, то неправильно вызываешь нужные функции.
    В любом случае на 90% это твоя проблема, а не VB.

    Вопрос:

    Как создать ярлык на рабочем столе?
    В 74 выпуске был пример кода, но у меня он не нработает. VB пишет:

    Ошибка во время выполнения программы '424':
    Требуемый объект

    а потом показывает на строку:

    Set WSHShell = WScript.CreateObject("WScript.Shell")

    Ответ:

    Автор ответа: Nechaev Sergey

    Private Declare Function OSfCreateShellLink Lib "vb6stkit.dll" Alias "fCreateShellLink" (ByVal lpstrFolderName As String, ByVal lpstrLinkName As String, ByVal lpstrLinkPath As String, ByVal lpstrLinkArguments As String, ByVal fPrivate As Long, ByVal sParent As String) As Long

    Private Sub Form_Load()
    OSfCreateShellLink "C:\Win\Рабочий стол" & vbNullChar, "Блокнот", "C:\Win\Notepad.exe", "", True, ""

    End Sub

    Вопрос:

    В библиотеке кодов я вяял код программы для открытия\яакрытия CD-Rom . Но она почему-то не работает.

    Ответ:

    Автор ответа: sv

    Я делаю так:

    Private Declare Function mciSendString Lib "winmm.dll" Alias _
    "mciSendStringA" (ByVal lpstrCommand As String, _
    ByVal lpstrReturnString As String, ByVal uReturnLength As Long, _
    ByVal hwndCallback As Long) As Long

    Открыть CD:

    mciSendString "Set CDAudio Door Open Wait", 0, 0, 0

    Закрыть CD:

    mciSendString "Set CDAudio Door Close Wait", 0, 0, 0

    Вопрос:

    В библиотеке кодов я вяял код программы для открытия\яакрытия CD-Rom . Но она почему-то не работает.

    Ответ:

    Автор ответа: Nechaev Sergey

    А если так?

    Option Explicit
    Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long

    Private Sub Form_Load()
    mciExecute "set cdaudio door open"
    mciExecute "set cdaudio door closed"
    End Sub

    Вопрос:

    VB6. Пишу защиту от копирования, хочу привязать к определенному компу. Или есть какая защита от тиражирования CD? Сомневаюсь раз мы их клепаем. Смысл тот что при продаже сначала прога генерирует ключ из номера, например BIOS заказчика после чего я в инсталятор забиваю проверку. Фиксирую на сидюк и продаю. Пусть пробуют тиражировать.

    Ответ:

    Автор ответа: Admin VBNet

    Хочу тебя немного огорчить. Если ты в программе используешь проверку правильности ключа, то это все можно посмотреть в отладчике.
    Теперь представь себе, что я списал с CD-ROM твою программу и запустил инсталятор с винчестера. Что будет? В отладчике я увижу ассемблерный код твоей проверки. Если она не очень запутана, то я просто поменяю в exe пару байтов и программа вместо того, чтобы проверять условие на истину, станет работать когда условие ложно. Дальше я пихну твою прогу на CD-ROM и все... фенита ля комедия. Т.е. иными словами, создать защиту от тиражирования на CD-ROM невозможно!
    Я в свое время хоте забить прямо в программу проверку налогового номера фирмы, купившей программу, и создавать для каждого клиента индивидуальный дистрибутив. Но... меня сразу же поспешили огорчить и подсказали, что данный номер под дизасемблеров виден, как собственное отражение в зеркале ;-) и изменить его - раз плюнуть.
    Вывод. В мире не существует защиты от копирования, которую невозможно было бы сломать. Другой вопрос в том, действительно ли твоя программа заслуживает тех усилий, которые крэкеры на нее потратят?

    Вопрос:

    VB6. Пишу защиту от копирования, хочу привязать к определенному компу. Или есть какая защита от тиражирования CD? Сомневаюсь раз мы их клепаем. Смысл тот что при продаже сначала прога генерирует ключ из номера, например BIOS заказчика после чего я в инсталятор забиваю проверку. Фиксирую на сидюк и продаю. Пусть пробуют тиражировать.

    Ответ:

    Автор ответа: Сергей

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

    Вопрос:

    Как с помощью ВБ текст ия ЮНИКОДа перевести в обычный, например на русский.

    Ответ:

    Автор ответа: P@Ssword

    Dim Str As String
    Str = "Проюникоденая строка"
    Str = StrConv(Str, vbFromUnicode)

    А обратно - Str = StrConv(Str, vbUnicode)

    Вопрос:

    При создании текстового редактора с использованием RichTextBox необходимо сделать 4 кнопки.
    1. По левому краю
    2. По центру
    3. По правому краю
    4. По ширине
    Первые три я делаю без проблем.
    Не подскажите как сделать четвертую.

    Ответ:

    Автор ответа: P@Ssword

    Ан никак! Это только W0rd так умеет, а посмотри на WordPad, думаешь, если б можно было, там не сделали бы?

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 86.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Извините, что задержался... Технические неисправности...
    Читайте!

    Содержание выпуска
    • Книги

    • У FirstSteps день рождения!
    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    У FirstSteps день рождения!

    Сайт "ПЕРВЫЕ ШАГИ" с большой радостью спешит сообщить всем, что 29 августа 2002 года ему исполняется 3 года !!!

    За эти годы было создано более 5000 шагов для почти 110 разделов различной тематики. В этом процессе приняло участие более 20 человек, из которых многие стали постоянными авторами сайта и стали ежедневно радовать посетителей новыми шагами.

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

    Всем большое спасибо. Можно раскупоривать шампанское...
    Вебмастер и автор сайта - Кузин Андрей.
    "ПЕРВЫЕ ШАГИ" 2002(с) - http://www.firststeps.ru/

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 25.08.2002 21:59 | Раздел: Примеры кода | Автор: Yxine

    OneCopy - У данной программы можно запустить только одну инстанцию. Повторный запуск (даже из различных местоположений) не осуществляется. При этом параметры командной строки передаются первой инстанции программы. Не используются App.PrevInstance - только работа с реестром Windows!

    Дата: 25.08.2002 21:46 | Раздел: Примеры кода | Автор: Ловиков Миха

    Rec-and-play - Программа может записывать звук с микрофона, а затем воспроизводить его. Пример можно легко усовершенствовать.

    Дата: 23.08.2002 22:01 | Раздел: Примеры кода | Автор: Самсонов Александр

    PlayList - PlayList2 - музыкальный плейлист. Абсолютно готовый проект для включения его в вашу игру. Проигрывает .mid, .wav, .mp3. Дает возможность пользователю самому составлять и редактировать плейлист. Показывает технику работы с mci-устройством, реестром, диалогом открытия файлов, кастомной кнопкой и прочими мелочами и при этом не использует никаких посторонних контролов (кнопка легко заменяется на стандартную vb-шную).

    Дата: 23.08.2002 21:58 | Раздел: Примеры кода | Автор: Aliyev Rashid

    TestSound - Эта маленькая прога поможет вам определить, есть ли в системе звукавая карат и если есть, какая она и может ли воспроизводить звук?

    Дата: 22.08.2002 21:52 | Раздел: Примеры кода | Автор: Хованский Ян

    TransparentTaskBar - Пример реализации полупрозрачности в Win200/WinXP. Делает полупрозрачной панель задач. Есть возможность увеличивать или уменьшать степень прозрачности. Изучив данный пример вы сможете сделать полупрозрачным любое окно в системе.

    Дата: 21.08.2002 21:50 | Раздел: Примеры кода | Автор: Дорохов Кирилл

    PortLocker - Программа для блокирования определенных портов. Работает как любой Firewall.Сначала вы сканируете сеть на наличие откры- тых портов(программа сама высветит сообщение если увидит подозрительный порт). После сканирования выбираете любой порт из списка и нажимаете кнопку "Блокировать".

    Дата: 21.08.2002 09:45 | Раздел: Примеры кода | Автор: Ловиков Миха

    Мишень 2.1 - Подобие игры. Выбираешь персонажа, ставишь время и поехали. Сама игра была задумана как средство уничтожения учителей, но после окончания учебы их помиловали. Планируется доделать еще выбор оружия, шкуры, размер и др.

    Дата: 21.08.2002 08:38 | Раздел: Статьи по VB | Автор: Зимин Никита

    Еще одно впечатление о VB7 - Написать этот текст меня сподвигла статья Виталия Гриненко "Моё первое впечатление о VB7" [1]. Это одна из немногих статей о .NET на сайте vbnet.ru, и резко негативная по отношению к новой технологии. Мне хотелось бы выразить свое, причем совсем не первое впечатление о продукте, который так резко "охаяли". Я прошу Виталия не воспринимать мою статью как выпад в отношении его лично или его профессионализма.

    Последние 20 тем форума на VBNet.Ru:

    10:58 / 28 авг. Форма | Хитов: 14 | Ответов: 2
    09:34 / 28 авг. $Админам$ | Хитов: 22 | Ответов: 3
    09:33 / 28 авг. VB + HTML = ? | Хитов: 16 | Ответов: 2
    09:32 / 28 авг. ЁaSy вопросы | Хитов: 28 | Ответов: 4
    06:45 / 28 авг. Проблемка с TreeView | Хитов: 9 | Ответов: 1
    19:39 / 27 авг. API | Хитов: 21 | Ответов: 0
    18:00 / 27 авг. Office XP | Хитов: 16 | Ответов: 2
    17:53 / 27 авг. Как... проиграть MP3 ... | Хитов: 25 | Ответов: 1
    16:45 / 27 авг. Как получить "Внутренне имя" файла? | Хитов: 50 | Ответов: 7
    15:19 / 27 авг. Неужели все? | Хитов: 37 | Ответов: 3
    12:00 / 27 авг. VB-Script - где найти документацию | Хитов: 24 | Ответов: 1
    11:50 / 27 авг. Графика!!!Срочняк!!!! | Хитов: 25 | Ответов: 4
    10:44 / 27 авг. Копирование юзеров в Active Directory | Хитов: 20 | Ответов: 0
    09:53 / 27 авг. Принудительное переключение клавиатуры | Хитов: 33 | Ответов: 2
    09:53 / 27 авг. Вопрос админам! | Хитов: 43 | Ответов: 5
    20:32 / 26 авг. Excell: FindCell | Хитов: 1 | Ответов: 0
    20:32 / 26 авг. Excell: FindCell | Хитов: 23 | Ответов: 3
    15:51 / 26 авг. Админы->Архив | Хитов: 33 | Ответов: 3
    06:05 / 26 авг. Читать выборочно. | Хитов: 34 | Ответов: 1
    05:56 / 26 авг. А вот этого не надо, админы!!!! | Хитов: 59 | Ответов: 3

    Последние поступления в Библиотеку кодов:

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Нет вопросов.

    Ответы:

    Нет ответов.
    Можете заполнить эту форму, либо отослать вопрос     СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 88.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.
Новости сайта IgorykSoft и советы по программированию
Visual Basic.NET Уроки.
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск!
    Читайте!

    Содержание выпуска
    • Книги

    • VBNet CD возвращается

    • Обрушить вашу программу
    • Установить горячие клавиши для вызова программы
    • Запретить запуск двух копий программы
    • Нахождение hwnd чужих окон
    • Активация ранее запущенной этой же программы
    • Работа с командной строкой в программе

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    VBNet CD возвращается

    Как Вы наверное помните, 1 июля этого года в этой рассылке появилось сообщение о создании компакт диска "VBNet CD". Было обслужено 26 заказов. Все диски были отправлены по назначению. Ко мне поступило много отзывов. Все, кто решил высказаться, довольны содержимым компакт-диска.

    VBNet.RU представляет новый компакт диск "VBNet CD 09 2002", который должен продолжить серию "VBNet CD". Спешу сообщить, что в процессе создания CD были учтены все пожелания/замечания, полученные от пользователей первой версии. Диск содержит:

    • Софт
      • Тексто-речевой преобразователь Lernout & Hauspie, TTS3000 для MS Agent
      • .NET Framework
      • MDAC 2.6 Service Pack 2
      • Visual Studio 6 Service Pack 5
      • Personal Web Server
      • Internet Information Services
      • И многое другое...

    • Сайты, рассылки, журналы - Популярные сайты, рассылки, электронные журналы о VB.
      • Сайт VBNet.Ru - Один из самых больших сайтов по VB в Рунете.
      • Мир программирования VB и HTML - Официальная рассылка группы SoobCha_VB.
      • Visual Basic Forever - Первый в рунете оффлайн журнал о Visual Basic!
      • И многое другое...

    • Коллекция компонент и DLL - Коллекция лицензионных ActiveX и .NET компонентов.
      • ActiveTreeView 1.04
      • FlexGrid for .NET
      • Reports for .NET
      • True DBGrid Pro
      • AxiThread ActiveX v 2.1
      • iTWAIN OCX - Image Aquisition Component
      • И многое другое...

    • Утилиты, примочки и прочее
      • .NET Explorer - Позволяет быстро проверять веб-службы и компоненты .NET посредством удобного интерфейса.
      • Installshield Pro SE v6.22 - Известная программа для создания дистрибутивов.
      • SoftICE 4.05 for Win 9x
      • VSForum 2.0 - Удобный инструмент для быстрого создания форумов на ASP.
      • Crimson Help v 2.3 - Очень удобная программа для создания справки.
      • Aivosto Project Analyzer - Программа для анализа кода проектов Visual Basic.
      • И многое другое...

    • Книги
      • Переход на VB .NET Стратегии, концепции, код (Дан Эпплман) - Одна глава из книги + листинги и примеры.
      • Visual Basic 5
      • Понимание SQL
      • Visual Basic Крепкий орешек - Одна глава из книги + примеры.
      • И многое другое...

    • Справочники
      • Справочник по Api (VB) Rus
      • Справочник по Api (VB) Eng
      • Справочник по Api (C) 1995
      • Справочник по Api (C) 1996
      • И многое другое...

    Какие же изменения постигли диск?

  • Сильно изменислось содержимое диска: добавлено около 200 МБ компонент, утилит, программ, книг, справочников, сайтов.
  • Информация диска разбита на шесть разделов. Это упрощает навигацию по диску.
  • Улучшена программа автозапуска.
  • Кардинально изменёно оформление как самого диска, так и страниц программы автозапуска.

    Также был усовершенствован механизм оформаления заказа. Теперь Вы можете получить информацию о своём заказе и состоянии заказа зайдя по ссылке в разделе Магазин сайта VBNet.RU.

    Диск распространяется по почте наложенным платежом.
    Цена: 60 рублей + 35 рублей (за почтовые расходы) = 95 рублей.
    Заказать диск можно в разделе Магазин нашего сайта, либо заполнив расположенную ниже форму:

    Ваш заказ: VBNet CD
    Стоимость: 95 рублей
    Фамилия:
    Имя:
    Отчество:
    E-mail:
    Почтовый индекс:
    Область (край):
    Город:
    Улица, дом, квартира:

    наверх

    Обрушить вашу программу

    АВТОР ДАННОГО КОДА НЕ НЕСЕТ НИКАКОЙ ОТВЕТСТВЕННОСТИ ЗА ИСПОЛЬЗОВАНИЕ ВАМИ УКАЗАННОГО НИЖЕ КОДА. (Хотя ничего страшного не произойдет...)

    Private Declare Sub FatalAppExit Lib "kernel32" Alias "FatalAppExitA" (ByVal uAction As Long, ByVal lpMessageText As String)
    Private Sub Form_Load()
    FatalAppExit 0, "Впишите сюда любой текст"
    End Sub

    наверх

    Установить горячие клавиши для вызова программы

    Скопируйте следующий код и запустите программу
    Затем запустите любое приложение, или сделайте, чтобы ваша программу стала неактивной
    Нажмите клавишы Alt + z (горячая клавиши в этом примере) и вы увидите снова вашу программу

    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
    Private Declare Function DefWindowProc Lib "user32" Alias "DefWindowProcA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Private Const WM_SETHOTKEY = &H32
    Private Const WM_SHOWWINDOW = &H18
    Private Const HK_SHIFTA = &H141 'Shift + A
    Private Const HK_SHIFTB = &H142 'Shift + B
    Private Const HK_CONTROLA = &H241 'Control + A
    Private Const HK_ALTZ = &H45A
    Private Sub Form_Load()
    'Позволить узнать windows какая горячая клавиша в вашем приложении
    erg& = SendMessage(Me.hwnd, WM_SETHOTKEY, HK_ALTZ, 0)
    If erg& <> 1 Then MsgBox "You need another hotkey", vbOKOnly, "Error"
    'Сказать windows что делать при нажатии на hotkey
    'в данном случае - показать окно программы
    erg& = DefWindowProc(Me.hwnd, WM_SHOWWINDOW, 0, 0)
    End Sub

    наверх

    Запретить запуск двух копий программы

    Данный пример запрещает запуск двух копий одного и того же exe-файла. Хотя вам ничего не мешает сделать копию программы, переименовать ее и запустить.

    Private Sub Form_Load()
    If App.PrevInstance = True Then
    MsgBox "Программа уже запущена!"
    End
    End If

    наверх

    Нахождение hwnd чужих окон

    Я уже не первый раз в своей практике сталкиваюсь с ситуацией, когда мне необходимо найти окно чужой программы. Т.е. узнать - запущено какое то конкретное окно или нет. Или сначала узнать, есть ли окно, а потом закрыть. Да мало ли какие могут быть еще применения.
    Подумав, и перепробовав разные законные способы реализации я остановился на следующем:
    Исходные данные - имеется программа , окно которой в заголовке содержит какой-то достаточно уникальный набор символов. Задача. Найти и честно закрыть это окно из программы.

    Вам понадобится дополнительный модуль.

    'код формы

    'Функция, которая будет убивать окно. В качестве аргумента требует хэндл окна.
    'Причем, не обязательно полное название
    Private Sub Command1_Click()
    CloseProg "Текстовый документ.txt - Блокнот"
    End Sub

    'код модуля

    Public Const PROCESS_TERMINATE = &H1
    Public Const WM_QUERYENDSESSION = &H11
    Public Const WM_ENDSESSION = &H16
    Public Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
    Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
    Public Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
    Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
    Public Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
    Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Public Const WM_CLOSE = &H10
    Dim strCaptions() As String ' Здесь будут лежать заголовки всех найденных окон
    Dim lngHandle() As Long ' А здесь все хэндлы этих окон
    Public Function CloseProg(strCaption As String) As Boolean
    Dim iCount As Integer
    Dim i As Integer
    Dim Pos As Integer
    Dim lngEnum As Long
    ReDim strCaptions(0)
    ' Обнуляем массив от возможных прошлых результатов
    ReDim lngHandle(0)
    ' то же чистим
    lngEnum = EnumWindows(AddressOf Callback1_EnumWindows, 0)
    ' вот эта функция будет циклически вызвана столько раз,
    ' сколько будет найдено окон
    ' т.е. после ее выполнения оба массива будут наполнены
    For i = 0 To UBound(strCaptions) ' перебираем эти массивы
    Pos = InStr(1, strCaptions(i), strCaption, vbTextCompare) ' ищем строку, которая должна характеризовать
    ' искомое окно
    If Pos > 0 Then
    'SendMessage lngHandle(i), WM_CLOSE, 0, 0 ' Это команда окну честно закрыться.
    'SendMessage lngHandle(i), WM_ENDSESSION, 0, 0 ' Это команда окну честно закрыться.
    SendMessage lngHandle(i), WM_QUERYENDSESSION, 0, 0 ' Это команда окну честно закрыться.
    ' Заметьте будут закрыты все окна с таким заголовком
    iCount = iCount + 1
    End If
    Next
    If iCount >= 1 Then
    CloseProg = True ' работа выпонена
    Else
    CloseProg = False 'такое окно не найдено
    End If
    End Function
    Public Function Callback1_EnumWindows(ByVal hwnd As Long, ByVal lpData As Long) As Long
    Dim cnt As Long
    Dim rttitle As String * 256
    cnt = GetWindowText(hwnd, rttitle, 255) ' ищем следующее окно
    If cnt > 0 Then ' нашли, тогда добавляем элемент в массивы
    ReDim Preserve lngHandle(UBound(strCaptions) + 1)
    ReDim Preserve strCaptions(UBound(strCaptions) + 1)
    strCaptions(UBound(strCaptions)) = Left$(rttitle, cnt)
    lngHandle(UBound(lngHandle)) = hwnd
    End If
    Callback1_EnumWindows = 1 ' продолжаем перебирать
    End Function
    Public Sub KillProcess(ByVal hwnd As Long)
    Dim pID As Long
    Dim hProc As Long
    GetWindowThreadProcessId hwnd, pID
    hProc = OpenProcess(PROCESS_TERMINATE, False, pID)
    Call SendMessage(hwnd, WM_QUERYENDSESSION, 0, 1)
    Call SendMessage(hwnd, WM_ENDSESSION, -1, 1)
    TerminateProcess hProc, 0
    CloseHandle hProc
    End Sub

    наверх

    Активация ранее запущенной этой же программы

    Скопируйте код на форму. Скомпилируйте exe-файл. Запустите exe-программу, минимизируйте, снова запустите exe-программу. Смотрите, что получиться...

    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
    Private Declare Function OpenIcon Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
    Const GW_HWNDPREV = 3
    Private Sub ShowPrevInstance()
    Dim OldTitle As String
    Dim ll_WindowHandle As Long
    'saving the current title in OldTitle variable
    'and changing the application title
    OldTitle = App.Title
    App.Title = "abcba - This App Will Be Closed"
    'finding the previous instance. if you are using VB 5.0,
    'change "ThunderRT6Main" to "ThunderRT5Main"
    ll_WindowHandle = FindWindow("ThunderRT6Main", OldTitle)
    'if there is no old instances of your application - exit.
    If ll_WindowHandle = 0 Then Exit Sub
    'Find the window we need to restore
    ll_WindowHandle = GetWindow(ll_WindowHandle, GW_HWNDPREV)
    'Now restore it
    Call OpenIcon(ll_WindowHandle)
    'And Bring it to the foreground
    Call SetForegroundWindow(ll_WindowHandle)
    End
    End Sub
    Private Sub Form_Load()
    If App.PrevInstance Then ShowPrevInstance
    End Sub

    наверх

    Работа с командной строкой в программе

    Позвольте вашему приложению запускаться как "programa.exe option1".
    VB 5.0/6.0: Из меню VB выберите Project->Project1 Properties, выберите вкладку Make, и введите в Command Line argument текст: option1

    Скомпилируйте exe-file, из меню Пуск/Выполнить запустите ваше приложение например так: "programa.exe hello", и вы получите сообщение с теми аргументами, которые вы вводили (в данном случае слово hello)

    Private Sub Form_Load()
    MsgBox Command
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Немчинов Михаил

    Ответ ожидается по этому адресу

    Возможно ли в VB использование апишной функции NetSessionEnum(…)
    Если возможно, то как ее декларировать…

    Автор вопроса: Мошкин

    Ответ ожидается по этому адресу

    Вот вопрос уже был, а ответа вроде бы не было.
    Хочется сделать автоинформатор.
    Голосовой модем должен звонить, потом распознавать что трубку сняли, а потом проговаривать туда в линию подряд несколько Wav-ов. (сформированное сообщение).
    Как это вообще делать.
    Если можно, небольшой примерчик.

    Автор вопроса: Vir

    Ответ ожидается по этому адресу

    Владельцы VB.NET подскажите как можно узнать ширину определенного текста при печати. Код в VB.6 был такой

    a(1)="aaa"
    a(2)="bbbb"
    a(3)="XXXXX"
    q=0
    for i=1 to 3
    If Printer.TextWidth(a(i))>q then q=print.textWidth(a(i))
    next
    for i=1 to 3
    Printer.Print a(i)
    next
    Printer.Line (q, 0)-(q, 100), 0

    Автор вопроса: shadow

    Ответ ожидается по этому адресу

    можно ли сделать чтоб форма и все контролы которые на ней были полупрозрачными (и если это возможно - как регулировать прозрачность)
    кстати кто видел прогу которая меняет надписи кнопок да, нет, отмена - я сделал такуюже тока с настройками, если интересни пишите сюда
    shadow_pochta@rambler.ru

    Автор вопроса: LexA

    Ответ ожидается по этому адресу

    Кто-нибудь янает что-нибудь о API'вской функции systemparametersinfo?

    Автор вопроса: LexA

    Ответ ожидается по этому адресу

    Люди... подскажите как свяяать VB6 и MSDN Library ???
    Я пробую установить MSDN Library ия VB6, но нечего не получается. VB6 выдает сообщение : типа "Укажите путь к первому диску MSDN Library", я вставляю 1-ый диск укаяываю путь на CD-ROM, яатем VB6 проияводит поиск по этому пути и выдает ошибку: типа, что нужно укаяать другой путь. Что делать? :)

    Автор вопроса: darknez

    Ответ ожидается по этому адресу

    Кто-нибудь знает что такое xExescope и где её можно взять.

    Автор вопроса: Михаил

    Ответ ожидается по этому адресу

    Каким образом можно задать счётчик обратного времени от предстоящей даты до текущего момента?

    Автор вопроса: ]CBK[CRaSH

    Ответ ожидается по этому адресу

    Люди как пользоваться OpenGL в ВБ

    Автор вопроса: sergnap

    Ответ ожидается по этому адресу

    Можно ли в открытое программу (например: HYPERTERMINAL) добавить пункт меню из приложения на VB5. Как это сделать.

    Автор вопроса: Андрей

    Ответ ожидается по этому адресу

    Что яначит деяасемблировать программу.
    И еще, есть рога которую я давным давно писал, вся информация по ней пропала. Можно ли каким то обраяом раякомпилировать программу сеова в код?

    Автор вопроса: Игорь

    Ответ ожидается по этому адресу

    Как испольяовать траняакции в Visual Basic? Ияначально траняакции "привяяаны" к элементу Workspace, но этот элемент может быть не объявлен явно (как у меня и происходит). И как же в таком случае испольяовать операторы траняакций? (если можно, какой-нибудь примерчик)

    Автор вопроса: Александр

    Ответ ожидается по этому адресу

    Как можно яаписать в реестр параметр типа ''word'', кодом

    Моя_Переменная.RegWrite "Ветвь реестра", "Параметр"

    не получается(вернее получается, но только строковой параметр).

    Автор вопроса: Александр

    Ответ ожидается по этому адресу

    Как можно считать ия реестра данные в переменную, кодом

    Моя_Переменная.RegRead "Ветвь реестра", "Параметр"

    можно только проверить наличие или отсутствие Параметра.

    Автор вопроса: Александр

    Ответ ожидается по этому адресу

    Есть фрагмент текста

    Set OutlookObject=CreateObject("Outlook.Application")
    Set OutMail=OutlookObject.CreateItem(0)
    OutMail.To="Адрес получателя"
    OutMail.From="Адрес отправителя"
    OutMail.Subject="Тема сообщения"
    OutMail.Body="Тело сообщения"

    Но при этом строка OutMail.From="Адрес отправителя" просто не работает, подскажите почему и как добиться реяультата.

    Автор вопроса: shadow

    Ответ ожидается по этому адресу

    можно ли в бейсике делать драйвера?

    Автор вопроса: shadow

    Ответ ожидается по этому адресу

    в дельфах и билдере(слышал краем уха - сам до них еще не дошел) есть такая штука VCM - типа набор классов - набор контролов, которые сделал какойто добрый дяденька и предоставил во всеобщее пользование. Нет ли чего подобного для бейсика (где скачать?), очень не охота таскать с прогой всякие осх'ы, а стандартных контролов явно недостаточно.

    Автор вопроса: Владимир

    Ответ ожидается по этому адресу

    Как в VB 5.0 можно подключить внешний файл (а не реестр) для хранения долговременных изменяемых данных?

    Автор вопроса: CRUISER

    Ответ ожидается по этому адресу

    Как приаттачить файл с помощью VB к OUTLOOK EXPRESS (не ms outlook)!! Открываю оутлук по нажатию кнопки с кодом:

    Shell "start mailto:" & txtMail.Text & "?Subject=" & txtTheme.Text & "&BODY=" & txtBody.Text

    Создается сообщение с темой, надписью в теле, с адресами кому и откого (по умолчанию). А как файл прилепить, например c:\vasya\xxx.rar ? Возможно нужны API функции, но я видел только их в работе с MS Outlook'ом... а мне обязательно outlook

    Ответы:

    Вопрос:

    На форме имеется картинка PictureBox-большой во весь экран, а на этой картинке находятся другие (маленького раямера) PictureBox, Label.
    На экране монитора видно PictureBox-большой а, поверх PictureBox-маленькие и Label. При переходе на принтер PictureBox-маленькие и Label не печатаетcz поверх основной картинки. Как исправить положение?

    Ответ:

    Автор ответа: Kvark

    Hi, a ti poprobui tipa picturebolsoi.ZOorder = 0, a picturemaaalenkij.ZOorder = 1, eto tipa odin ctobi vniz usel a drugoi tipa na perednij plan, takze prover u tebia maaalenkije kartinki i laibli vstavleni na formu ili v bolsoi picture? :) Nu kopirujus malenkij videliajes bolsoi i paste, dolzno rabotat'.... :)

    Вопрос:

    На форме имеется картинка PictureBox-большой во весь экран, а на этой картинке находятся другие (маленького раямера) PictureBox, Label.
    На экране монитора видно PictureBox-большой а, поверх PictureBox-маленькие и Label. При переходе на принтер PictureBox-маленькие и Label не печатаетcz поверх основной картинки. Как исправить положение?

    Ответ:

    Автор ответа: Nechaev Sergey

    Похоже, Вы выводите на печать только одну картинку (Printer.PaintPicture Picture1.Picture). Чтобы при этом печатались и картинки поверх, надо сделать большую картинку их родительским элементом (выделить всю мелочь, вырезать, выделить PictureBox, вставить). Тогда должны печататься (хотя точно не знаю :-)). Если нет, печатай всю форму.

    Вопрос:

    Подскажите, кто знает, как можно на VB вывести звук в телефонную линию через модем, например какой-нибудь wav. Модем не голосовой, USB.

    Ответ:

    Автор ответа: Nechaev Sergey

    Если неголосовой, то никак.

    Вопрос:

    У меня несколько вопросов :)
    1)Kak проиграть MP3 фаил из файла рксурсов?
    2)Можно ли в VB6 создать фаил с разрешением VXD, если да то как?
    3)У кого-нибудь есть конвектатор из WAV в MID или из MP3 в MID, если есть, то скинте этот фаил на e-mail(если он не больше 2MB)?
    4)Как можно дописать пару строк в фаил Msdos.sys из VB? :)

    Ответ:

    Автор ответа: Nechaev Sergey

    1) Достаешь свой МР3 из ресурсов и пишешь на диск, запускаешь через АПИ, потом сносишь.
    3) По-моему конвертеров wav=>mp3 не существует.
    4) Открыть файл для Append (open "C:\msdos.sys" for append as #FF). Дописать строки методом Print.

    Вопрос:

    Как сохранить List-ы ия 9 Listbox-ов в один файл (например в Aaa.zzz) и яатем ия этого же файла их яагруяить в те же Listbox-ы?

    Ответ:

    Автор ответа: Kvark

    Hi, elementarno Vatson! :) otkrivaesh fail na zapis' skazem Aaa.zzz (nadejus kak eto sdelat znaesh? :)) dalee krutis cikl (zelatelno ctobi listboksi bili tipa masiva, nu skazem MyListbox.Index(0)-MyListbox.Index(8) togda for n = 0 to 8 i v tele cikla pises v fail (tekstovij mozesh esli ne mudrit') tipa:

    ...
    Print #1, "MyListbox Nr. " & n
    For m = 0 to MyListBox.ItemCount
    Print #1, MyListbox.Item(m).Text
    Next m
    ...

    nu a scitivanie naoborot stavis fail na scitivanie i input additem i t.p. v tom ze cikle. esli ne hoces indeksirovat togda ruchkami kazdomu boksu po svojemu kusku koda :)

    Вопрос:

    Как сохранить List-ы ия 9 Listbox-ов в один файл (например в Aaa.zzz) и яатем ия этого же файла их яагруяить в те же Listbox-ы?

    Ответ:

    Автор ответа: Nechaev Sergey

    Пишем один комбо, потом добавляем разделитель из непечатных символов, пишем следующий. При чтении и заполнении комбо, читаем файл построчно, если натыкаемся на строку-разделитель, начинаем заполнять следующий элемент.

    Вопрос:

    Как "прописать" программу в автозагрузку, а затем удалить её( нужно запустить программу один раз при запуске)?

    Ответ:

    Автор ответа: Nechaev Sergey

    Пропишись в раздел RunOnce, виднда сама удалит запись после запуска.

    Вопрос:

    Компиляцию проекта делал прогр. Packege_&_Deployment_Wizard. При инсталяции выдаются ошибки.

    1. Section: Setyp 1 Files
    @ name.exe/ $(ProgramFile)
    ...и т.д.
    2. Section: Bootstrap Files
    @ VB6STKIT.DLL. $(WinSysPathSysFile)
    ...и т.д.
    Что делать как этого иябежать.

    Ответ:

    Автор ответа: Шевченко Александр

    1.C помощью Microsoft Visual Basic откроем проект [Program Files]\Microsoft Visual Studio\VB98\Wizards\PDWizard\Setup1\Setup1.vbp
    2.Откроем для редактирования модуль basSetup1 (файл setup1.bas)
    3.Внесем изменения в функцию ParseDateTime() Оригинальная функция ParseDateTime() имеет вид:

    Function ParseDateTime(ByVal strDateTime As String) As Date
    Dim Var As Variant
    Var = strDateTime
    If 0 = VariantChangeTypeEx(VarPtr(Var), VarPtr(Var), &H409, 0, vbDate) Then
    ParseDateTime = Var Else 'Raise same error as CDate
    Err.Raise 13
    End If
    End Function

    Функция ParseDateTime() производит перевод даты из строки в тип Date посредством вызова функции API VariantChangeTypeEx().
    В данном случае, VariantChangeTypeEx делает попытку привести Variant-переменную к типу Date без учета установок в Regional Settings, и, соответственно, требует жесткого соблюдения формата записи даты в файле setup.lst ("mm/dd/yy" или "mm/dd/yyyy"). Поскольку P&D Wizard не придерживается этого правила, функция VariantChangeTypeEx() не всегда отрабатывает успешно.
    Используем для преобразования строки в дату функцию СDate. Эта функция работает более гибко и позволяет использовать в качестве аргумента строку с различными видами разделителей (точка, запятая, '/'). Приведем функцию ParseDateTime() к виду:

    Function ParseDateTime(ByVal strDateTime As String) As Date
    ParseDateTime=CDate(strDateTime)
    End Function

    4.Скомпилируем проект (File\Make Setup1.exe…) для создания нового модуля setup1.exe.
    5.Перенесем новый setup1.exe папку "...\Wizards\PDWizard\"

    Вопрос:

    Как создать ярлык на рабочем столе?
    В 74 выпуске был пример кода, но у меня он не нработает. VB пишет:

    Ошибка во время выполнения программы '424':
    Требуемый объект

    а потом показывает на строку:

    Set WSHShell = WScript.CreateObject("WScript.Shell")

    Ответ:

    Автор ответа: SLTK

    Dim WSHShell
    Set WSHShell = CreateObject("WScript.Shell")

    Dim MyShortcut, MyDesktop, DesktopPath

    ' Читаем путь к Рабочему столу
    DesktopPath = WSHShell.SpecialFolders("Desktop")

    ' Создаем ярлык на Рабочем столе
    Set MyShortcut = WSHShell.CreateShortcut(DesktopPath & _
    "\Ярлык.lnk")

    ' Задаем свойства объекта-ярлыка и сохраняем их
    MyShortcut.TargetPath = WSHShell.ExpandEnvironmentStrings _
    ("%windir%\notepad.exe")
    MyShortcut.WorkingDirectory = WSHShell.ExpandEnvironmentStrings _
    ("%windir%")
    MyShortcut.WindowStyle = 4
    MyShortcut.IconLocation = WSHShell.ExpandEnvironmentStrings _
    ("%windir%\notepad.exe, 0")
    MyShortcut.Save

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

            •

    Выпуск подготовили:


Выпуск 88.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Мда.... Каникулы кончились... Сегодня опять в школу...
    Читайте!

    Содержание выпуска
    • Книги

    • VBNet CD возвращается

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    VBNet CD возвращается

    Как Вы наверное помните, 1 июля этого года в этой рассылке появилось сообщение о создании компакт диска "VBNet CD". Было обслужено 26 заказов. Все диски были отправлены по назначению. Ко мне поступило много отзывов. Все, кто решил высказаться, довольны содержимым компакт-диска.

    VBNet.RU представляет новый компакт диск "VBNet CD 09 2002", который должен продолжить серию "VBNet CD". Спешу сообщить, что в процессе создания CD были учтены все пожелания/замечания, полученные от пользователей первой версии. Диск содержит:

    • Софт
      • Тексто-речевой преобразователь Lernout & Hauspie, TTS3000 для MS Agent
      • .NET Framework
      • MDAC 2.6 Service Pack 2
      • Visual Studio 6 Service Pack 5
      • Personal Web Server
      • Internet Information Services
      • И многое другое...

    • Сайты, рассылки, журналы - Популярные сайты, рассылки, электронные журналы о VB.
      • Сайт VBNet.Ru - Один из самых больших сайтов по VB в Рунете.
      • Мир программирования VB и HTML - Официальная рассылка группы SoobCha_VB.
      • Visual Basic Forever - Первый в рунете оффлайн журнал о Visual Basic!
      • И многое другое...

    • Коллекция компонент и DLL - Коллекция лицензионных ActiveX и .NET компонентов.
      • ActiveTreeView 1.04
      • FlexGrid for .NET
      • Reports for .NET
      • True DBGrid Pro
      • AxiThread ActiveX v 2.1
      • iTWAIN OCX - Image Aquisition Component
      • И многое другое...

    • Утилиты, примочки и прочее
      • .NET Explorer - Позволяет быстро проверять веб-службы и компоненты .NET посредством удобного интерфейса.
      • Installshield Pro SE v6.22 - Известная программа для создания дистрибутивов.
      • SoftICE 4.05 for Win 9x
      • VSForum 2.0 - Удобный инструмент для быстрого создания форумов на ASP.
      • Crimson Help v 2.3 - Очень удобная программа для создания справки.
      • Aivosto Project Analyzer - Программа для анализа кода проектов Visual Basic.
      • И многое другое...

    • Книги
      • Переход на VB .NET Стратегии, концепции, код (Дан Эпплман) - Одна глава из книги + листинги и примеры.
      • Visual Basic 5
      • Понимание SQL
      • Visual Basic Крепкий орешек - Одна глава из книги + примеры.
      • И многое другое...

    • Справочники
      • Справочник по Api (VB) Rus
      • Справочник по Api (VB) Eng
      • Справочник по Api (C) 1995
      • Справочник по Api (C) 1996
      • И многое другое...

    Какие же изменения постигли диск?

  • Сильно изменислось содержимое диска: добавлено около 200 МБ компонент, утилит, программ, книг, справочников, сайтов.
  • Информация диска разбита на шесть разделов. Это упрощает навигацию по диску.
  • Улучшена программа автозапуска.
  • Кардинально изменёно оформление как самого диска, так и страниц программы автозапуска.

    Также был усовершенствован механизм оформаления заказа. Теперь Вы можете получить информацию о своём заказе и состоянии заказа зайдя по ссылке в разделе Магазин сайта VBNet.RU.

    Диск распространяется по почте наложенным платежом.
    Цена: 60 рублей + 35 рублей (за почтовые расходы) = 95 рублей.
    Заказать диск можно в разделе Магазин нашего сайта, либо заполнив расположенную ниже форму:

    Ваш заказ: VBNet CD
    Стоимость: 95 рублей
    Фамилия:
    Имя:
    Отчество:
    E-mail:
    Почтовый индекс:
    Область (край):
    Город:
    Улица, дом, квартира:

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 31.08.2002 21:11 | Раздел: Примеры кода | Автор: Ковалев Сергей

    Graphics - Контрол Graphics позволяет строить графики функций по заданным уравнениям. Основной особенностью

    Дата: 30.08.2002 08:09 | Раздел: Примеры кода | Автор: Millenium

    Access - Я создал эту прошку очень случайно, изучая свойтво и работу с Access без всяких OCX и научлся

    Дата: 25.08.2002 21:59 | Раздел: Примеры кода | Автор: Yxine

    OneCopy - У данной программы можно запустить только одну инстанцию. Повторный запуск (даже из различных местоположений) не осуществляется. При этом параметры командной строки передаются первой инстанции программы. Не используются App.PrevInstance - только работа с реестром Windows!

    Дата: 25.08.2002 21:46 | Раздел: Примеры кода | Автор: Ловиков Миха

    Rec-and-play - Программа может записывать звук с микрофона, а затем воспроизводить его. Пример можно легко усовершенствовать.

    Последние 20 тем форума на VBNet.Ru:

    00:09 / 1 сен. Новое сообщение без темы | Хитов: 6 | Ответов: 1
    23:23 / 31 авг. Горячие клавиши и не только... | Хитов: 9 | Ответов: 2
    19:33 / 31 авг. VBScript | Хитов: 10 | Ответов: 1
    15:38 / 31 авг. Рекомендую книгу по VB.NET | Хитов: 10 | Ответов: 1
    13:40 / 31 авг. CLASSID :: РЕГИСТРАЦИЯ ИЛИ СОЗДАНИЕ | Хитов: 9 | Ответов: 0
    12:38 / 31 авг. Вопрос о числе для функции kbhit в С++. | Хитов: 3 | Ответов: 0
    02:15 / 31 авг. Смена разрешения экрана | Хитов: 13 | Ответов: 1
    02:15 / 31 авг. Label и MouseMove | Хитов: 18 | Ответов: 1
    00:48 / 31 авг. VC package | Хитов: 15 | Ответов: 0
    20:00 / 30 авг. Найти окно по заголовку | Хитов: 23 | Ответов: 4
    14:14 / 30 авг. Благодарственное письмо ;-) | Хитов: 41 | Ответов: 3
    14:13 / 30 авг. Объявление | Хитов: 32 | Ответов: 1
    13:27 / 30 авг. Есть ли смысл Nothing | Хитов: 27 | Ответов: 1
    13:26 / 30 авг. Как работать с картинками через рекордсет. | Хитов: 23 | Ответов: 4
    10:00 / 30 авг. Люди помогите :) MP3 | Хитов: 36 | Ответов: 4
    09:55 / 30 авг. VBA (Excel) | Хитов: 14 | Ответов: 0
    22:43 / 29 авг. Админу чата | Хитов: 30 | Ответов: 1
    22:43 / 29 авг. КАК ЗАПУСТИТЬ ПРОГРАММУ ДО ВХОДА В ВИНДЫ!!!??? | Хитов: 42 | Ответов: 1
    22:36 / 29 авг. Как запустить программу до входа в Вин..... | Хитов: 39 | Ответов: 1
    20:32 / 29 авг. TO: ADMIN'S >>> | Хитов: 35 | Ответов: 3

    Последние поступления в Библиотеку кодов:

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     RokO

    Ответ ожидается по этому адресу

    Я написал оюну программу в VB. А как сделать так чтобы её где-нибудь сохранить_и она работала не загружая VB. То есть как будто это exe-шный файл. Будто сразы нажали F5???

    Автор вопроса: Shade

    Ответ ожидается по этому адресу

    Привет, у меня тут был такой вопрос про то как же всетаки открыть дверцу не первого, а второго (или лучше N-ого) CD-Rom'а и ответа так и не дождался (а может и просмотрел, ... если так то вышлите еще раз плиз!!!)

    Автор вопроса: Костик

    Ответ ожидается по этому адресу

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

    Автор вопроса: Malex

    Ответ ожидается по этому адресу

    Как сделать программку, что бы она заменяла в Windows стандартные названия кнопок (Например Ok, Cancel) на нестандартные(Например Согласен, Не согласен)

    Автор вопроса: Артём Кривокрисенко

    Ответ ожидается по этому адресу

    Пытаюсь сделать меню с картинкой(как в офисе). Для этого испольяую API-функцию InsertMenu :

    lngtemp=InsertMenu(hwnd,1,MF_BITMAP and MF_BYPOSITION,1001,Picture1.hdc)

    Меню появляется, но картинки на н?м нету - вообще пустойе меню. В сети часто встречаются подобные примеры, но там вс? очень усложнено. Скажет кто, как сделать, чтоб кактинка вставлялась

    Автор вопроса: Kurt Haeldar

    Ответ ожидается по этому адресу

    Есть такой кусок кода для рисования на Picture Box'e:

    Private Sub picMain_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
    Col = dlgColor.Color
    If Button = 1 Then
    picMain.ScaleMode = 3
    picMain.DrawWidth = size
    picMain.PSet (x, y), Col
    End If
    End Sub

    Проблема в том, что если мышь вести довольно быстро, то вместо кривой от руки будет просто след ия точек. А теперь вопрос - можно ли как-то это ликвидировать, то есть чтобы данный кусок срабатывал чаще. Заранее спасибо.

    Автор вопроса: Vladimir

    Ответ ожидается по этому адресу

    На форме имеется PictureBox с файлом имя.bmp на этой картинке выводятся числа вертикально и горияонтально. На экране все видно. При печате (Printer.PaintPicture Picture1.Picture, 0, 0) не выводятся эти числа. Как быть?

    Автор вопроса: Alex

    Ответ ожидается по этому адресу

    Как сделать чтобы просматривать рисунок размерами больше формы

    Автор вопроса: Макс

    Ответ ожидается по этому адресу

    Мне нужно чтобы программа копировала файлы с заданным разрешением из одной папки в другую.
    Точнее:
    1 Задать проге путь к папке(ресурсу в и-нете) ,из которой нужно копировать файлы,и разрешение файлов.
    2 Копировать файлы
    3 Проверить ,есть в этой папке другие папки,если есть ,то копировать файлы из этих папок.
    Вот и все. Надеюсь кто-нибудь поможет!

    Ответы:

    Вопрос:

    Люди... подскажите как свяяать VB6 и MSDN Library ???
    Я пробую установить MSDN Library ия VB6, но нечего не получается. VB6 выдает сообщение : типа "Укажите путь к первому диску MSDN Library", я вставляю 1-ый диск укаяываю путь на CD-ROM, яатем VB6 проияводит поиск по этому пути и выдает ошибку: типа, что нужно укаяать другой путь. Что делать? :)

    Ответ:

    Автор ответа: Андрей Никитин

    Вообще-то ничего особенного предпринимать не надо.
    Ставишь MSDN его же инсталятором (на первом диске).
    Он сам прописывается в реестре и VB при следующем запуске его цепляет (жмешь F1 - открывается MSDN).
    Все (только MSDN нужен за 2000-й или 2001-й год, т.к. тот что идет в комплекте с VS.NET не подходит).

    Вопрос:

    Каким образом можно задать счётчик обратного времени от предстоящей даты до текущего момента?

    Ответ:

    Автор ответа: Andrew Isakov

    Функция DataSerial(Дата/время1, Дата/Время2, вроде еще что-то…) Поищи ее в хелпе

    Вопрос:

    Есть фрагмент текста

    Set OutlookObject=CreateObject("Outlook.Application")
    Set OutMail=OutlookObject.CreateItem(0)
    OutMail.To="Адрес получателя"
    OutMail.From="Адрес отправителя"
    OutMail.Subject="Тема сообщения"
    OutMail.Body="Тело сообщения"

    Но при этом строка OutMail.From="Адрес отправителя" просто не работает, подскажите почему и как добиться реяультата.

    Ответ:

    Автор ответа: Nikolay Huber

    Для этого нужно создать в MS Outlook профиль, с которого отправляется письмо, и отключить использование профиля по умолчанию (Tools->Options->Mail Services->Prompt for a profile to be used). После этого работает такой код:

    Dim OA As Outlook.Application
    Dim OMI As Outlook.MailItem

    Set OA = CreateObject("Outlook.Application")
    OA.Quit
    OA.Session.Logoff
    OA.Session.Logon "ProfileName", "ProfilePassword", False, True
    Set OMI = OA.CreateItem(olMailItem)
    OMI.Display
    OMI.Recipients.Add "Receiver"
    OMI.Body = "Body"
    OMI.Send
    Set OA = Nothing
    Set OMI = Nothing

    Вопрос:

    в дельфах и билдере(слышал краем уха - сам до них еще не дошел) есть такая штука VCM - типа набор классов - набор контролов, которые сделал какойто добрый дяденька и предоставил во всеобщее пользование. Нет ли чего подобного для бейсика (где скачать?), очень не охота таскать с прогой всякие осх'ы, а стандартных контролов явно недостаточно.

    Ответ:

    Автор ответа: Андрей Никитин

    Сходи на сайт www.vbaccelerator.com (кстати всем советую). Там все контролы с исходниками (Generic Public License). Цепляешь к проекту исходники контрола и компилишь все вместе - на выходе один файл.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

            •

    Выпуск подготовили:


Выпуск 88.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.
Новости сайта IgorykSoft и советы по программированию
Visual Basic.NET Уроки.
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск!
    Читайте!

    Содержание выпуска
    • Книги

    • MS Agent CD

    • Программа удаляет себя сама
    • Как убрать программу из списка Ctrl+Alt+Del
    • Запустить программу и дождаться завершения его работы
    • Как узнать, когда завершилось запущенное приложение
    • Как разместить иконку программы в TrayBar
    • Старт(удаление) приложения при запуске Windows

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    MS Agent CD

    Уникальный компакт диск от Шатрыкина Ивана (VBNet.Ru)! На диске вы сможете найти все для работы с Microsoft Agent!

    • Ядро Agent для установки на ваш компьютер, если его там еще нет - вы можете его распространять с вашими программами.
    • Полный справочник по Agent от Microsoft - используйте технологию Agent на полную мощь.
    • Справочник по Agent на русском языке от Анатолия Климова - уникальный справочник.
    • Статьи по технологии Agent! - научитесь работе с компонентом Agent с самых азов.
    • Русский модуль речевого синтеза! - Ваша программа заговорит по-русски!
    • Коллекция примеров по работе с Agent - несколько примеров от Microsoft и от сайта VBNet.Ru.
    • Редактор персонажей от Microsoft - создайте свои уникальный персонаж!
    • Уникальная коллекция персонажей! - десятки бесплатных персонажей для ваших программ, выберите персонажа по вкусу!.
    • Другие примочки к Agent-у в подарок!

    Все компоненты, представленные на диске, не имеют лицензионных ограничений и свободны от авторских отчислений. Покупайте диск - вы не пожалеете!

    наверх

    Программа удаляет себя сама

    Если вы вставите данный код в указанное событие, то ваша программа после запуска будет удалена

    Private Sub Form_Load()
    '-----------создать bat-файл---------------
    Open App.Path + "\Delself.bat" For Append As #1
    Print #1, "@echo off"
    Print #1, ":try"
    Print #1, "del " + App.EXEName + ".exe"
    Print #1, "if exist " + App.EXEName + ".exe goto try"
    Print #1, "del " + App.Path + "\Delself.bat"
    Close
    '--------------------------------
    Shell App.Path + "\Delself.bat", vbHide
    End Sub

    наверх

    Как убрать программу из списка Ctrl+Alt+Del

    'Вариант 1
    Расположите на форме 2 элемента CommandButton. Первая кнопка убирает программу из списка, вторая - показывает.
    Важное примечание: при выгрузке программы обязательно используйте процедуру UnMakeMeService(), чтобы освободить системные ресурсы.

    Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long
    Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
    Private Declare Function RegisterServiceProcess Lib "kernel32" (ByVal dwProcessID As Long, ByVal dwType As Long) As Long
    Const RSP_SIMPLE_SERVICE = 1
    Const RSP_UNREGISTER_SERVICE = 0
    Public Sub MakeMeService()
    'Чтобы убрать вашу программу из списка Ctrl+Alt+Delete, используйте процедуру MakeMeService:
    Dim pid As Long
    Dim reserv As Long
    pid = GetCurrentProcessId()
    regserv = RegisterServiceProcess(pid, RSP_SIMPLE_SERVICE)
    End Sub
    'Чтобы показать вашу программу в списке Ctrl+Alt+Delete, используйте процедуру UnMakeMeService:
    Public Sub UnMakeMeService()
    Dim pid As Long
    Dim reserv As Long
    pid = GetCurrentProcessId()
    regserv = RegisterServiceProcess(pid, RSP_UNREGISTER_SERVICE)
    End Sub
    Private Sub Command1_Click()
    MakeMeService
    End Sub
    Private Sub Command2_Click()
    UnMakeMeService
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    UnMakeMeService
    End Sub

    'Вариант 2
    Private Declare Function RegisterServiceProcess Lib "kernel32" (ByVal ProcessID As Long, ByVal ServiceFlags As Long) As Long
    Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long
    Private Sub Form_Load()
    RegisterServiceProcess GetCurrentProcessId, 1 'Hide app
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    RegisterServiceProcess GetCurrentProcessId, 0 'Remove service flag
    End Sub

    наверх

    Запустить программу и дождаться завершения его работы

    Данный пример запустить приложение Notepad(Блокнот). После закрытия Notepad'а... смотрите сами...

    Private Type STARTUPINFO
    cb As Long
    lpReserved As String
    lpDesktop As String
    lpTitle As String
    dwX As Long
    dwY As Long
    dwXSize As Long
    dwYSize As Long
    dwXCountChars As Long
    dwYCountChars As Long
    dwFillAttribute As Long
    dwFlags As Long
    wShowWindow As Integer
    cbReserved2 As Integer
    lpReserved2 As Long
    hStdInput As Long
    hStdOutput As Long
    hStdError As Long
    End Type
    Private Type PROCESS_INFORMATION
    hProcess As Long
    hThread As Long
    dwProcessID As Long
    dwThreadID As Long
    End Type
    Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
    Private Declare Function CreateProcessA Lib "kernel32" (ByVal lpApplicationName As Long, ByVal lpCommandLine As String, ByVal lpProcessAttributes As Long, ByVal lpThreadAttributes As Long, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As Long, lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long
    Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
    Private Const NORMAL_PRIORITY_CLASS = &H20&
    Private Const INFINITE = -1&

    Public Sub ExecCmd(cmdline$)
Dim proc As PROCESS_INFORMATION
Dim start As STARTUPINFO
' Инициализируем структуру STARTUPINFO:
start.cb = Len(start)
' Запускаем приложение:
ret& = CreateProcessA(0&, cmdline$, 0&, 0&, 1&, NORMAL_PRIORITY_CLASS,
        0&, 0&, start, proc)
' Ждем завершения запущенного приложения:
ret& = WaitForSingleObject(proc.hProcess, INFINITE)
ret& = CloseHandle(proc.hProcess)
End Sub

Private Sub Form_Load()
ExecCmd ("Notepad")
MsgBox "Работа Блокнота завершена", vbInformation,
        "Конец."
End Sub

наверх

    Как узнать, когда завершилось запущенное приложение

    Как узнать, когда завершилось запущенное приложение? (пример     Askhat Urazbaev)

    Const INFINITE = &HFFFF
    'StartupInfo constants
    Public Const STARTF_FORCEOFFFEEDBACK = &H80
    Public Const STARTF_FORCEONFEEDBACK = &H40
    Public Const STARTF_RUNFULLSCREEN = &H20
    Public Const STARTF_USECOUNTCHARS = &H8
    Public Const STARTF_USEFILLATTRIBUTE = &H10
    Public Const STARTF_USEPOSITION = &H4
    Public Const STARTF_USESHOWWINDOW = &H1
    Public Const STARTF_USESIZE = &H2
    Public Const STARTF_USESTDHANDLES = &H100
    'ShowWindow constants
    Public Const SW_HIDE = 0
    Public Const SW_SHOWNORMAL = 1
    Public Const SW_SHOWMINIMIZED = 2
    Public Const SW_MAXIMIZE = 3
    Public Const SW_SHOWMAXIMIZED = 3
    Public Const SW_SHOWNOACTIVATE = 4
    Public Const SW_SHOW = 5
    Public Const SW_MINIMIZE = 6
    Public Const SW_SHOWMINNOACTIVE = 7
    Public Const SW_SHOWNA = 8
    Public Const SW_RESTORE = 9
    Public Const SW_SHOWDEFAULT = 10
    Public Type PROCESS_INFORMATION
    hProcess As Long
    hThread As Long
    dwProcessId As Long
    dwThreadId As Long
    End Type
    Public Type STARTUPINFO
    cb As Long
    lpReserved As String
    lpDesktop As String
    lpTitle As String
    dwX As Long
    dwY As Long
    dwXSize As Long
    dwYSize As Long
    dwXCountChars As Long
    dwYCountChars As Long
    dwFillAttribute As Long
    dwFlags As Long
    wShowWindow As Integer
    cbReserved2 As Integer
    lpReserved2 As Long
    hStdInput As Long
    hStdOutput As Long
    hStdError As Long
    End Type
    Declare Function CreateProcess Lib "kernel32" Alias "CreateProcessA" (ByVal lpApplicationName As String, ByVal lpCommandLine As String, lpProcessAttributes As Any, lpThreadAttributes As Any, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, lpEnvironment As Any, ByVal lpCurrentDriectory As String, lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long
    Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
    Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
    Public Function RunAndWait(ComLine As String, DefaultDir As String, ShowFlag As VbAppWinStyle) As Boolean
    Dim si As STARTUPINFO
    Dim pi As PROCESS_INFORMATION
    si.wShowWindow = ShowFlag
    si.dwFlags = STARTF_USESHOWWINDOW
    If CreateProcess(vbNullString, ComLine, ByVal 0&, ByVal 0&, False, 0, ByVal 0&, DefaultDir, si, pi) Then
    WaitForSingleObject pi.hProcess, INFINITE
    CloseHandle pi.hProcess
    RunAndWait = True
    Exit Function
    End If
    RunAndWait = False
    End Function
    'Вызов функции:
    Private Sub Form_Load()
    If RunAndWait("smth.exe", "c:\windows", vbNormalFocus) Then
    MsgBox "Registry backuped!"
    End If
    End Sub

    наверх

    Как разместить иконку программы в TrayBar

    Вам необходимо добавить модуль

    'КОД МОДУЛЯ

    Declare Function Shell_NotifyIconA Lib "SHELL32" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Integer
    Public Const NIM_ADD = 0
    Public Const NIM_MODIFY = 1
    Public Const NIM_DELETE = 2
    Public Const NIF_MESSAGE = 1
    Public Const NIF_ICON = 2
    Public Const NIF_TIP = 4
    Type NOTIFYICONDATA
    cbSize As Long
    hWnd As Long
    uID As Long
    uFlags As Long
    uCallbackMessage As Long
    hIcon As Long
    szTip As String * 64
    End Type

    Public Function SetTrayIcon(Mode As Long, hWnd As Long, Icon As Long, tip As String) As Long
    Dim nidTemp As NOTIFYICONDATA
    nidTemp.cbSize = Len(nidTemp)
    nidTemp.hWnd = hWnd
    nidTemp.uID = 0&
    nidTemp.uFlags = NIF_ICON Or NIF_TIP
    nidTemp.uCallbackMessage = 0&
    nidTemp.hIcon = Icon
    nidTemp.szTip = tip & Chr$(0)
    SetTrayIcon = Shell_NotifyIconA(Mode, nidTemp)
    End Function

    'КОД ФОРМЫ

    'Затем уже в событиях формы вы можете пользоваться вышеприведеными API-функциями.
    'Запустите программу. Иконка появится в трее. Наведите на нее курсор, и вы увидите
    'надпись "Проверка", теперь кликните в любом месте формы и снова наведите на иконку...

    Private Sub Form_Click()
    SetTrayIcon NIM_MODIFY, Me.hWnd, Me.Icon, "Работает? Работает!"
    End Sub
    Private Sub Form_Load()
    SetTrayIcon NIM_ADD, Me.hWnd, Me.Icon, "Проверка"
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    SetTrayIcon NIM_DELETE, Me.hWnd, 0&, ""
    End Sub

    наверх

    Старт(удаление) приложения при запуске Windows

    На форму поместите 2 CommandButton. При нажатии на первую кнопку, ссылка на запуск вашего приложения будет размещена в реестре. Вторая кнопка удалит вашу программу из автозагрузки

    Private Const HKEY_LOCAL_MACHINE = &H80000002
    Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
    Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
    Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
    Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
    Private Sub AddToStartup(ByVal sDesc As String, ByVal sFile As String)
    Dim lRegKey As Long
    RegOpenKey HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Run", lRegKey
    If lRegKey Then
    RegSetValueEx lRegKey, sDesc, 0, 1, ByVal sFile, Len(sApp)
    RegCloseKey lRegKey
    End If
    End Sub
    Private Function DeleteAtStartup(ByVal strValue As String)
    Dim keyhand As Long
    r = RegOpenKey(HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Run", keyhand)
    r = RegDeleteValue(keyhand, strValue)
    r = RegCloseKey(keyhand)
    End Function

    Private Sub Command1_Click()
    AddToStartup "Моя программа", "C:\soft\MyProg.exe"
    End Sub
    Private Sub Command2_Click()
    DeleteAtStartup "Моя программа"
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     grix

    Ответ ожидается по этому адресу

    Кто янает, как сделать, чтобы программа обладала повышенным приоритетом в диспетчере яадач Windows 2000? То есть, чтобы ее нельяя было оттуда удалить.

    Автор вопроса: Samit

    Ответ ожидается по этому адресу

    Наверняка многие из вас пользуются такой программой как InstallShield Express 2 для создания Setup файлов. Есть такая проблемма - она Trial Version и чтобы она работала дальше нужен Unlock Code! Если у кого-нибудь есть Генератор Кода для этой программы вышлите мне на e-mail...

    Автор вопроса: Василий

    Ответ ожидается по этому адресу

    Как можно черея VB определять и яадавать имя компьютера и его IP-адрес Можно ли в VB и VBA испольяовать API SetComputerName

    Автор вопроса: Вячеслав

    Ответ ожидается по этому адресу

    Следующий пример демонстрирует набор телефонного номера из программы (на форме размещены кнопка, текстовое поле и элемент MSComm)

    Private Sub Command1_Click()
    Dim A As String
    A = Text1.Text
    MSComm1.CommPort = 1
    MSComm1.Settings = "9600,N,8,1"
    MSComm1.PortOpen = True
    MSComm1.Output = "ATDP" & A & vbCr
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    MSComm1.PortOpen = False
    End Sub

    Вопрос состоит в следующем: как в этом примере осуществить автодозвон (определить, что линия занята или связь не была установлена)?

    Автор вопроса: Pim

    Ответ ожидается по этому адресу

    Как бороться с такой проблемой:
    В Office XP произвожу переброс файла Excel-я в Word. Excel-ий файл содержит диаграммы. Просто выделяю нужную область и копирую через буфер и треобразую таблицы в текст - в таком случае в Word-е данные диаграммы будут в виде рисунков.
    Но, требуется установить обтекание текста - <В тексте>. Средства Word-а это позволяют, но программно не выполняется (Даже кнопка для данного обтекания становится неактивной при записи макроса !!! но как только остановишь запись - активизируется !)
    Макрокоманда Word-а не выполняется

    Application.Run("FormatDrawingObjectWrapInline")

    Что за чепуха ?

    Автор вопроса: Александр

    Ответ ожидается по этому адресу

    Как обратиться к почтовым баяам данных Outlook Express непосредственно ия программы, для автоматияации просмотра почты.

    Ответы:

    Вопрос:

    Привет, у меня тут был такой вопрос про то как же всетаки открыть дверцу не первого, а второго (или лучше N-ого) CD-Rom'а и ответа так и не дождался (а может и просмотрел, ... если так то вышлите еще раз плиз!!!)

    Ответ:

    Автор ответа: Андрей Прохожев

    Если ты хочешь запускать ЭТО на своём компе, то это просто - В меню <Файл> нажми <Создать Project.exe(или твоё название проекта). Если ты хочешь, что бы работало на других компах - создай упаковочный файл - <Пуск, Программы, Microsoft Visual Basic 6.0, Microsoft Visual Basic 6.0 Tools, Package & Deployment Wizard", а дальше следуй инструкций.

    Вопрос:

    Пытаюсь сделать меню с картинкой(как в офисе). Для этого испольяую API-функцию InsertMenu :

    lngtemp=InsertMenu(hwnd,1,MF_BITMAP and MF_BYPOSITION,1001,Picture1.hdc)

    Меню появляется, но картинки на н?м нету - вообще пустойе меню. В сети часто встречаются подобные примеры, но там вс? очень усложнено. Скажет кто, как сделать, чтоб кактинка вставлялась

    Ответ:

    Автор ответа: Андрей Прохожев

    Что бы добавить картинку к меню, надо использовать функцию ModifyMenu. попробуй мой пример.
    Ссоздай на форме 2 пункт меню с тремя подменю. изменим 1 пункт, 2 подменю на bmp фаил (подходяшего размера).

    Option Explicit
    Private Declare Function ModifyMenu Lib "user32" Alias "ModifyMenuA" (ByVal hMenu As _
    Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal wIDNewItem As _
    Long, ByVal lpString As Any) As Long
    Private Const MF_BITMAP = &H4&
    Private Const MF_BYPOSITION = &H400&
    Private Declare Function LoadImage Lib "user32" Alias "LoadImageA" (ByVal hInst As _
    Long, ByVal lpsz As String, ByVal un1 As Long, ByVal n1 As Long, ByVal n2 As _
    Long, ByVal un2 As Long) As Long
    Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function GetMenuItemID Lib "user32" (ByVal hMenu As Long, ByVal nPos As _
    Long) As Long
    Private Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As _
    Long) As Long
    Private Const IMAGE_BITMAP = 0
    Private Const LR_LOADFROMFILE = &H10
    Private Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
    Dim hMenu As Long, hPunctMenu As Long, hBMP As Long
    Private Sub Form_Load()
    'найдём указатель меню
    hMenu = GetMenu(Me.hwnd)
    'найдём указатель пункта меню
    hPunctMenu = GetSubMenu(hMenu, 0)
    'найдём указатель Рисунка (bmp),подходяшего размера
    hBMP = LoadImage(0, "c:\23.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE)
    'изменим меню
    ModifyMenu hPunctMenu, 1, MF_BITMAP Or MF_BYPOSITION, 0, hBMP
    'Здесь 1 это индекс пункта подменю
    End Sub

    Вопрос:

    Пытаюсь сделать меню с картинкой(как в офисе). Для этого испольяую API-функцию InsertMenu :

    lngtemp=InsertMenu(hwnd,1,MF_BITMAP and MF_BYPOSITION,1001,Picture1.hdc)

    Меню появляется, но картинки на н?м нету - вообще пустойе меню. В сети часто встречаются подобные примеры, но там вс? очень усложнено. Скажет кто, как сделать, чтоб кактинка вставлялась

    Ответ:

    Автор ответа: Шевченко Александр

    Вставь на форму 3 Image с bmp картинками
    Создай меню с тремя подменю.
    Проставь индексы от 0 до 2

    Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
    Private Declare Function GetMenuItemID Lib "user32" (ByVal hMenu As Long, ByVal nPos As _
    Long) As Long
    Private Declare Function SetMenuItemBitmaps Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal hBitmapUnchecked As Long, ByVal hBitmapChecked As Long) As Long
    Private Const MF_BITMAP = &H4&

    Private Sub Form_Load()
    Dim hMenu&, hSubMenu&, hMenuItem&
    hMenu = GetMenu(Me.hwnd)
    hSubMenu = GetSubMenu(hMenu, 0)
    hMenuItem = GetMenuItemID(hSubMenu, 0)
    SetMenuItemBitmaps hMenu, hMenuItem, MF_BITMAP, Image1.Picture, Image1.Picture
    hMenuItem = GetMenuItemID(hSubMenu, 1)
    SetMenuItemBitmaps hMenu, hMenuItem, MF_BITMAP, Image2.Picture, Image2.Picture
    hMenuItem = GetMenuItemID(hSubMenu, 2)
    SetMenuItemBitmaps hMenu, hMenuItem, MF_BITMAP, Image3.Picture, Image3.Picture
    End Sub

    Вопрос:

    Есть такой кусок кода для рисования на Picture Box'e:

    Private Sub picMain_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
    Col = dlgColor.Color
    If Button = 1 Then
    picMain.ScaleMode = 3
    picMain.DrawWidth = size
    picMain.PSet (x, y), Col
    End If
    End Sub

    Проблема в том, что если мышь вести довольно быстро, то вместо кривой от руки будет просто след ия точек. А теперь вопрос - можно ли как-то это ликвидировать, то есть чтобы данный кусок срабатывал чаще. Заранее спасибо.

    Ответ:

    Автор ответа: VMJ

    Попробуй вместо Pset использовать Line от предыдущей точки - кривая будет апроксимироваться не точками, а отрезками прямых... т.е. разрывы должны исчезнуть.

    Вопрос:

    На форме имеется PictureBox с файлом имя.bmp на этой картинке выводятся числа вертикально и горияонтально. На экране все видно. При печате (Printer.PaintPicture Picture1.Picture, 0, 0) не выводятся эти числа. Как быть?

    Ответ:

    Автор ответа: sne

    Вместо Picture1.Picture надо использовать Picture1.Image

    Вопрос:

    На форме имеется PictureBox с файлом имя.bmp на этой картинке выводятся числа вертикально и горияонтально. На экране все видно. При печате (Printer.PaintPicture Picture1.Picture, 0, 0) не выводятся эти числа. Как быть?

    Ответ:

    Автор ответа: Vir

    При печати, сам пишеш, печатать Picture1.Picture а цифры как бы поверх картинки. Надо задовать на печать и сами цифры отдельно. Например Printer.Print "1111"

    Вопрос:

    можно ли сделать чтоб форма и все контролы которые на ней были полупрозрачными (и если это возможно - как регулировать прозрачность)
    кстати кто видел прогу которая меняет надписи кнопок да, нет, отмена - я сделал такуюже тока с настройками, если интересни пишите сюда
    shadow_pochta@rambler.ru

    Ответ:

    Автор ответа: Vir

    В VB.Net такая фйнкция есть у свойства окон, а в VB6 незнаю.

    Вопрос:

    Люди... подскажите как свяяать VB6 и MSDN Library ???
    Я пробую установить MSDN Library ия VB6, но нечего не получается. VB6 выдает сообщение : типа "Укажите путь к первому диску MSDN Library", я вставляю 1-ый диск укаяываю путь на CD-ROM, яатем VB6 проияводит поиск по этому пути и выдает ошибку: типа, что нужно укаяать другой путь. Что делать? :)

    Ответ:

    Автор ответа: Шатрыкин Иван

    Вообще-то, в оригинале надо так. Вставляем 1-й диск с MSDN и запускаем с него setup.exe. MSDN сама "подключится" после установки к VB. Только учти, что к VB6 "подключится" только его MSDN, т.е. если ты поставишь новую MSDN 2002, то справка из VB6 работать не будет.

    Вопрос:

    Каким образом можно задать счётчик обратного времени от предстоящей даты до текущего момента?

    Ответ:

    Автор ответа: Nechaev Sergey

    Можно отсчитывать вручную (перевести начало/конец в секунды, вычесть, перевести результат в удобочитаемый формат), а можно использовать DateDiff.

    Вопрос:

    Что яначит деяасемблировать программу.
    И еще, есть рога которую я давным давно писал, вся информация по ней пропала. Можно ли каким то обраяом раякомпилировать программу сеова в код?

    Ответ:

    Автор ответа: Шатрыкин Иван

    Нет, нельзя. Раньше были декомпиляторы для VB до 3-й версии, кажется. Сейчас таких нет.
    СОВЕТ: Чаще сохраняйтесь!

    Вопрос:

    Как испольяовать траняакции в Visual Basic? Ияначально траняакции "привяяаны" к элементу Workspace, но этот элемент может быть не объявлен явно (как у меня и происходит). И как же в таком случае испольяовать операторы траняакций? (если можно, какой-нибудь примерчик)

    Ответ:

    Автор ответа: Шатрыкин Иван

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

    Вопрос:

    Как в VB 5.0 можно подключить внешний файл (а не реестр) для хранения долговременных изменяемых данных?

    Ответ:

    Автор ответа: Nechaev Sergey

    Создай *.ini и работай с ним через API. Если надо подробнее, пиши.

    Вопрос:

    VB6. Пишу защиту от копирования, хочу привязать к определенному компу. Или есть какая защита от тиражирования CD? Сомневаюсь раз мы их клепаем. Смысл тот что при продаже сначала прога генерирует ключ из номера, например BIOS заказчика после чего я в инсталятор забиваю проверку. Фиксирую на сидюк и продаю. Пусть пробуют тиражировать.

    Ответ:

    Автор ответа: Артем Меняйленко

    Стоит ли это труда? Любой программист на асме забьет код проверки нулями :-)

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 90.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск!
    Читайте!

    Содержание выпуска
    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 08.09.2002 10:11 | Раздел: ActiveX контролы | Автор: Antaro Control

    Antaro Control - С помощью этого контрола можно быстро перезагрузить или выключить компьютер, прочитать или

    Дата: 06.09.2002 23:10 | Раздел: Примеры кода | Автор: Соколов Алексей

    FloatingToolbar - Пример плавающей панели инструментов, которая всегда сверху и не принимает фокус. На ней можно

    Дата: 05.09.2002 23:08 | Раздел: Примеры кода | Автор: Andrey Poskonin aka Dron

    GraphMenu - Абсолютно настраеваемая менюшка. В меню может отображаться абсолютно всё (от чекбокса и списка(!)

    Дата: 05.09.2002 00:01 | Раздел: Примеры кода | Автор: JEDI

    CM3 - Game - Очередная игра от JEDI. Пример использования некоторых графических функций, а также работы со звуком. Смысл игрушки в том, что нужно стрелять по снеговикам. Стреляем мышкой. Есть звук, снеговики "прозрачные". В общем, посмотрите.

    Дата: 04.09.2002 09:06 | Раздел: Примеры кода | Автор: Хованский Ян

    Govorun - Программа читает текст, используя голосовые движки. Есть возможность изменять скорость и тон

    Дата: 02.09.2002 23:03 | Раздел: ActiveX контролы | Автор: Гирько Денис (Luza)

    AnyForm - Комплект из программы и контрола, позволяющий создавать формы любой формы. Особенностью контрола

    Последние 20 тем форума на VBNet.Ru:

    21:52 / 7 сен. Хелп!!!! | Хитов: 15 | Ответов: 2
    21:50 / 7 сен. Как создать бомбер? | Хитов: 8 | Ответов: 0
    10:28 / 7 сен. Простой наверное вопрос. | Хитов: 32 | Ответов: 1
    02:15 / 7 сен. *.DBF | Хитов: 24 | Ответов: 2
    23:32 / 6 сен. VB and internet | Хитов: 22 | Ответов: 1
    22:56 / 6 сен. Data - определение последней записи | Хитов: 15 | Ответов: 1
    21:19 / 6 сен. ComboBox? | Хитов: 18 | Ответов: 0
    20:14 / 6 сен. МОМЕЕЕЕЕД!!!!! | Хитов: 27 | Ответов: 1
    20:06 / 6 сен. Поиск установленного ПО при инсталляции | Хитов: 20 | Ответов: 2
    17:57 / 6 сен. КАК ОТКРЫТЬ ФАЙЛ В VCI FORM ONE LIBRARY??? | Хитов: 12 | Ответов: 0
    17:52 / 6 сен. КАК ОПРЕДЕЛИТЬ IP АДРЕС ЧУЖОГО КОМПА???? | Хитов: 22 | Ответов: 1
    15:43 / 6 сен. Копирование файла | Хитов: 3 | Ответов: 0
    15:41 / 6 сен. Копирование файла | Хитов: 30 | Ответов: 2
    15:11 / 6 сен. Как узнать открыт ли файл в даный момент?! | Хитов: 22 | Ответов: 1
    14:54 / 6 сен. контекстное меню | Хитов: 21 | Ответов: 0
    13:24 / 6 сен. VB Работа с папками | Хитов: 5 | Ответов: 0
    13:23 / 6 сен. VB Работа с папками | Хитов: 25 | Ответов: 1
    10:20 / 6 сен. Защита от копирования | Хитов: 51 | Ответов: 4
    10:17 / 6 сен. Запуск проги по hotkey | Хитов: 64 | Ответов: 15
    10:13 / 6 сен. Трей и меню | Хитов: 23 | Ответов: 1

    Последние поступления в Библиотеку кодов:

    Получение анимированного курсора (41)
    ЛистБокс: над каким элементом проходит ... (36)
    Форма: изменение размеров контролов в з... (33)
    Получить содержимое Web-страницы, испол... (44)
    Напечатать web-страницу (27)

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     SMM

    Ответ ожидается по этому адресу

    Подскажите, как повернуть Image на определённое количество градусов.
    Например это стрелка от часов,и её нужно поворачивать каждую минуту на 6 градусов.

    Автор вопроса: Shade

    Ответ ожидается по этому адресу

    Не подскажет ли кто-нибудь мне как создавать/запускать ярлычки в виндоусе ну или местоположение некого OCX который умеет все это делать.

    Автор вопроса: Natasha

    Ответ ожидается по этому адресу

    Срочно нужна функция для создание линии. обыкновенно простой такой линии

    Автор вопроса: Shade

    Ответ ожидается по этому адресу

    я много раз всречался с help'овыми проэктами в которые зашиты readme файлы или файлы ресурсов, - ну как они это делают чтоб их всех...???

    Автор вопроса: ams666

    Ответ ожидается по этому адресу

    Люди срочно нужен VB5 подскажите где скачать можно.

    Автор вопроса: alex

    Ответ ожидается по этому адресу

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

    Автор вопроса: Oleks

    Ответ ожидается по этому адресу

    Файл класса MyClass
    --------------------
    Private sMyName as string
    Public Propery Get MyName() as string
    myName=sMyName
    End Property

    В выполняемой программе
    ---------------------
    Dim objMyClass as MyClass
    set objMyClass = New MyClass
    Debug.Print objMyClass.Name

    должно выводить сообщение:
    objMyClass

    Что и где писать

    Ответы:

    Вопрос:

    Как обратиться к почтовым баяам данных Outlook Express непосредственно ия программы, для автоматияации просмотра почты.

    Ответ:

    Автор ответа: rv

    Исчерпывающую информацию (с примерами) смотри на http://msa.polarcom.ru (конкретней http://msa.polarcom.ru/bricks.htm#D_1000160)

    Вопрос:

    Я написал оюну программу в VB. А как сделать так чтобы её где-нибудь сохранить_и она работала не загружая VB. То есть как будто это exe-шный файл. Будто сразы нажали F5???

    Ответ:

    Автор ответа: Мунгалов Андрей

    Когда программу допишешь ее надо "скомпилировать" на выходе как раз и получается почти стандарный запускаемый файл. Только для запуска ему нужны несколько файлов. библиотека исполнения Msvbvm60.dll, + еще некоторые. тебе проще потом воспользоваться "Мастером подготовки инсталяционных пакетов" он идет вместе с Бейсиком. Называется Package & Deployment Wizard. Он готовит Инсталяшку и внее добавляет все необходимые файлы.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 91.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.
Новости сайта IgorykSoft и советы по программированию
Visual Basic.NET Уроки.
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск!
    Читайте!

    Содержание выпуска
    • Книги

    • MS Agent CD

    • Спрятать программу из Панели Задач
    • Проверка новых версий программы через Интернет
    • Как в программе переждать паузу между выполнениями команд
    • Запустить приложение, ассоциированное с расширением файла
    • Подсчитать количество копий запущенной программы
    • Связать расширение файла с приложением

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    MS Agent CD

    Уникальный компакт диск от Шатрыкина Ивана (VBNet.Ru)! На диске вы сможете найти все для работы с Microsoft Agent!

    • Ядро Agent для установки на ваш компьютер, если его там еще нет - вы можете его распространять с вашими программами.
    • Полный справочник по Agent от Microsoft - используйте технологию Agent на полную мощь.
    • Справочник по Agent на русском языке от Анатолия Климова - уникальный справочник.
    • Статьи по технологии Agent! - научитесь работе с компонентом Agent с самых азов.
    • Русский модуль речевого синтеза! - Ваша программа заговорит по-русски!
    • Коллекция примеров по работе с Agent - несколько примеров от Microsoft и от сайта VBNet.Ru.
    • Редактор персонажей от Microsoft - создайте свои уникальный персонаж!
    • Уникальная коллекция персонажей! - десятки бесплатных персонажей для ваших программ, выберите персонажа по вкусу!.
    • Другие примочки к Agent-у в подарок!

    Все компоненты, представленные на диске, не имеют лицензионных ограничений и свободны от авторских отчислений. Покупайте диск - вы не пожалеете!

    Стоимость: 95 рублей
    Фамилия:
    Имя:
    Отчество:
    E-mail:
    Почтовый индекс:
    Область (край):
    Город:
    Улица, дом, квартира:

    наверх

    Спрятать программу из Панели Задач

    Данный пример покажет, как можно спрятать вашу программу из панели задач, а затем показать. Обратите внимание на функцию SetWindowPos - во время показа формы вы можете установить место появления формы, а также новые размеры формы.

    Разместите на форме 3 элемента CommandButton и элемент Timer. При нажатии на Command1 программа прячется как из панели задач, так и из видимых программ. Событие Timer1_Timer через 5 секунд покажет вашу програаму. При нажатии на Command2 программа удаляется из панели задач, но остается видимой, нажатие на Command3 покажет вашу программу в панели задач. Одна странность: при нажатии второй раз на Command2 программа будет показана на панели задач.

    Const WS_EX_APPWINDOW = &H40000
    Const GWL_STYLE = (-16)
    Const GWL_EXSTYLE = (-20)
    Const SW_HIDE = 0
    Const SW_NORMAL = 1
    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
    Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
    Const SWP_SHOWWINDOW = &H40
    Const SWP_HIDEWINDOW = &H80
    Dim ret&

    Private Sub Command1_Click() 'Этот код спрячет вашу программу из панели задач, также спрячет саму форму
    ret = SetWindowPos(Form1.hwnd, 0, Form1.Left, Form1.Top, Form1.Width, Form1.Height, SWP_HIDEWINDOW)
    Timer1.Enabled = True
    End Sub

    Private Sub Form_Load()
    Timer1.Interval = 5000
    End Sub

    Private Sub Timer1_Timer() 'Этот код покажет вашу форму через 5 секунд
    ret = SetWindowPos(Form1.hwnd, 0, 0, 0, 500, 500, SWP_SHOWWINDOW)
    End Sub

    Private Sub Command2_Click() 'событие спрячет вашу прогу из панели задач. Программа остается видимой
    ShowWindow Form1.hwnd, SW_HIDE
    ret = GetWindowLong(Form1.hwnd, GWL_EXSTYLE)
    SetWindowLong Form1.hwnd, GWL_EXSTYLE, ret Xor WS_EX_APPWINDOW
    ShowWindow Form1.hwnd, SW_NORMAL
    Timer1.Enabled = False
    End Sub

    Private Sub Command3_Click() 'событие покажет программу в панели задач
    ShowWindow Form1.hwnd, SW_HIDE
    ret = GetWindowLong(Form1.hwnd, GWL_EXSTYLE)
    SetWindowLong Form1.hwnd, GWL_EXSTYLE, ret Or WS_EX_APPWINDOW
    ShowWindow Form1.hwnd, SW_NORMAL
    Timer1.Enabled = False
    End Sub

    наверх

    Проверка новых версий программы через Интернет

    Данный пример покажет, как ваша программа может проверять через Интернет, появилась ли новая версия. Естественно, должно быть активное соединение с Инетом.

    Прежде всего вам нужен, к примеру, текстовой файл в Инете, в котором лежит необходимая информация о версии файла (в данном примере всего лишь дата последнего изменения программы - 2001_07_15). Также вам необходимо расположить на форме элемент Inet1 (меню Project|Components - Microsoft Internet Transfer Control 6.0) а также элемент CommandButton

    Private Sub Command1_Click()
    a$ = Inet1.OpenURL("http://sharig.webzone.ru/version.txt", icString)
    'поскольку мы точно знаем, сколько символов в новой дате, то...
    a$ = Mid(a$, 1, 10)
    If a$ = "" Then
    MsgBox "Сервер недоступен, попробуйте загрузить попозже.", vbOKOnly, "Обновление программы"
    Exit Sub
    End If
    'вы можете предусмотреть (самостоятельно) с чем сравнивать новую дату (a$) с предыдущей ("2001-12-14")
    If a$ <> "2001-12-14" Then
    y$ = "На сервере появилась новая версия программы. Хотите загрузить?"
    b$ = MsgBox(y$, vbYesNo, "Обновление программы")
    'запуск броузера к странице загрузки программы
    If b$ = 6 Then Shell ("C:\Program Files\Internet Explorer\IExplore -nohome" + "http://sharig.webzone.ru/IndexAbout.htm"), vbMaximizedFocus
    Else
    MsgBox "На сервере старая версия"
    End If
    End Sub

    наверх

    Как в программе переждать паузу между выполнениями команд

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

    ВАРИАНТ 1. Если вам нужно переждать несколько СЕКУНД

    Function Delay(Pause As Single)
    Dim Start As Single
    Start = Timer
    Do While Timer < Start + Pause
    DoEvents
    Loop
    End Function

    ВАРИАНТ 2. Если вам нужно переждать несколько МИНУТ

    Public Sub Sleeping(NumberOfMinute As Double)
    Dim FinishTime As Date
    FinishTime = DateAdd("n", NumberOfMinute, Now)
    Do Until FinishTime <= Now
    DoEvents
    Loop
    End Sub

    ПРОВЕРКА ВЫПОЛНЕНИЯ КОДА ВАРИАНТА 1 ИЛИ 2

    Private Sub Form_Paint()
    Print Time
    'выберите, какой вариант вам больше по душе
    Delay (5) 'или Sleeping (5)
    'и в том, и в другом случае указывается время в секундах
    Print Time
    End Sub

    ВАРИАНТ 3. Если вам нужно переждать несколько СЕКУНД...

    Private Declare Sub sapiSleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)
    Private Sub Form_Paint()
    Print Time()
    Call sapiSleep(1000) 'в миллисекундах
    Print "Прежде чем напечататься, прошло 1000 миллисекунд"
    Print Time()
    End Sub

    наверх

    Запустить приложение, ассоциированное с расширением файла

    'ВАРИАНТ1

    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    Private Declare Function GetDesktopWindow Lib "user32" () As Long

    Function startdoc(DocName As String)
    Dim Scr_hDC As Long
    Scr_hDC = GetDesktopWindow()
    startdoc = ShellExecute(Scr_hDC, "Open", DocName, "", "C:\", 1)
    End Function

    Private Sub Command1_Click()
    Dim r As Long
    'укажите путь к вашему файлу
    r = startdoc("D:\garbage\garik.xls")
    End Sub

    'ВАРИАНТ2

    Предположим, у вас есть файл в формате htm. Вам необходимо открыть его в программе по умолчанию (у большинства это ИнтернетЭксплорер). Данный код запустит Эксплорер и откроет в своем окне указанный вами htm-файл.

    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    Const SW_SHOWMAXIMIZED = 3

    'использование
    ShellExecute 0, "open", "D:\Basic\htm\api01.htm", "", "", SW_SHOWMAXIMIZED
    'или
    'ShellExecute 0, "open", "api01.htm", "", "", SW_SHOWMAXIMIZED

    наверх

    Подсчитать количество копий запущенной программы

    Данный пример покажет, как можно подсчитать количество запущенных окон броузера Microsoft Internet Explorer. Только одна проблема: при вторичном исполнении кода происходит суммирование с предыдущими результатами подсчета. Если найдется желающий докопаться до ошибки,     пришлите мне исправленный вариант.

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

    'КОД ФОРМЫ

    Private Sub Command1_Click()
    Dim iIEInstances As Integer
    iIEInstances = AppInstances("Microsoft Internet Explorer")
    MsgBox iIEInstances
    End Sub

    'КОД МОДУЛЯ

    Option Compare Text
    Private Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
    Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
    Private pbExact As Boolean
    Private psAppString As String
    Private piAppCount As Integer
    Public Function AppInstances(AppNamePart As String, Optional ExactMatchOnly As Boolean) As Integer
    'параметры:
    'AppNamePart = любая часть заголовка или приложения
    'пример использования
    'dim iIEInstances as integer
    'iIEInstances = AppInstances("Microsoft Internet Explorer")
    Dim lRet As Long
    psAppString = AppNamePart
    pbExact = ExactMatchOnly
    lRet = EnumWindows(AddressOf CheckForInstance, 0)
    AppInstances = piAppCount
    End Function
    Private Function CheckForInstance(ByVal lhWnd As Long, ByVal lParam As Long) As Long
    Dim sTitle As String
    Dim lRet As Long
    Dim iNew As Integer
    sTitle = Space(255)
    lRet = GetWindowText(lhWnd, sTitle, 255)
    sTitle = StripNull(sTitle)
    If sTitle <> "" Then
    If pbExact Then
    If sTitle = psAppString Then piAppCount = piAppCount + 1
    Else
    If InStr(sTitle, psAppString) > 0 Then piAppCount = piAppCount + 1
    End If
    End If
    CheckForInstance = True
    End Function
    Private Function StripNull(ByVal InString As String) As String
    Dim iNull As Integer
    If Len(InString) > 0 Then
    iNull = InStr(InString, vbNullChar)
    Select Case iNull
    Case 0
    StripNull = InString
    Case 1
    StripNull = ""
    Case Else
    StripNull = Left$(InString, iNull - 1)
    End Select
    End If
    End Function

    наверх

    Связать расширение файла с приложением

    Данный пример покажет, как можно связать файлы с расширением .BAR с вашим приложением. В моем случае - это приложение для редактирования текстовых файлов.

    Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
    Private Declare Function RegSetValue Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
    ' Return codes from Registration functions.
    Const ERROR_SUCCESS = 0&
    Const ERROR_BADDB = 1&
    Const ERROR_BADKEY = 2&
    Const ERROR_CANTOPEN = 3&
    Const ERROR_CANTREAD = 4&
    Const ERROR_CANTWRITE = 5&
    Const ERROR_OUTOFMEMORY = 6&
    Const ERROR_INVALID_PARAMETER = 7&
    Const ERROR_ACCESS_DENIED = 8&
    Private Const HKEY_CLASSES_ROOT = &H80000000
    Private Const MAX_PATH = 260&
    Private Const REG_SZ = 1

    Private Sub Command1_Click()
    Dim sKeyName As String
    Dim sKeyValue As String
    Dim ret&
    Dim lphKey&

    'Создание ключа "MyApp".
    sKeyName = "MyApp"
    sKeyValue = "My Application"
    ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)
    ret& = RegSetValue&(lphKey&, "", REG_SZ, sKeyValue, 0&)
    'Создание ключа, связанного с "MyApp".
    sKeyName = ".BAR"
    sKeyValue = "MyApp"
    ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)
    ret& = RegSetValue&(lphKey&, "", REG_SZ, sKeyValue, 0&)
    'Коммандная линия для приложения"MyApp".
    sKeyName = "MyApp"
    sKeyValue = "D:\Basic\MyProjects\SharPad\SharPad.exe %1"
    ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)
    ret& = RegSetValue&(lphKey&, "shell\open\command", REG_SZ, sKeyValue, MAX_PATH)

    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     ]CBK[CRaSH

    Ответ ожидается по этому адресу

    Люди занимаюшиеся ОпенГЛ ям на ВБ напишите мне письмо я создал проект 3D редактора и 3D gamesА. Хочу посоветоваться и т.д.

    Автор вопроса: Макс

    Ответ ожидается по этому адресу

    Как скопировать файл из и-нета ,просто указав проге путь к этому файлу.

    Автор вопроса: Алекс

    Ответ ожидается по этому адресу

    Срочно нужен пример кода на vb6 анимации палитры.

    Автор вопроса: shadow

    Ответ ожидается по этому адресу

    Необходимо сделать проярачные окна именно в ВИН98. По ссылке лежит пример
    http://www.sources.ru/vb/skinnable_desktop_taskbar.zip.
    Там испольяуется посторонняя библиотека.Я немогу подключить е? к своему проекту - ошибка - немогу найти файл.

    Автор вопроса: shadow

    Ответ ожидается по этому адресу

    Я ссылаюсь в программе на апи левой библиотеки(т.е. не системной), при этом в ходе выполнения программы мне сообщается что эта библиотека не найдена, хотя она лежит в папке с проектом. Чужая программа испольяует эту библиотеку бея всяких проблем.

    Автор вопроса: Petrenko

    Ответ ожидается по этому адресу

    Помогите пожалуйста у меня никак не получаеться создать ярлык програмно.

    Ответы:

    Вопрос:

    Подскажите, как повернуть Image на определённое количество градусов.
    Например это стрелка от часов,и её нужно поворачивать каждую минуту на 6 градусов.

    Ответ:

    Автор ответа: Макс

    На vbstreets.da.ru есть такая статья в разделе "статьи на русском" .

    Вопрос:

    Не подскажет ли кто-нибудь мне как создавать/запускать ярлычки в виндоусе ну или местоположение некого OCX который умеет все это делать.

    Ответ:

    Автор ответа: Nechaev Sergey

    Создание ярлыка

    Private Declare Function OSfCreateShellLink Lib "vb6stkit.dll" Alias "fCreateShellLink" (ByVal lpstrFolderName As String, ByVal lpstrLinkName As String, ByVal lpstrLinkPath As String, ByVal lpstrLinkArguments As String, ByVal fPrivate As Long, ByVal sParent As String) As Long

    Private Sub Form_Load()
    OSfCreateShellLink "C:\Win\Рабочий стол" & vbNullChar, "Блокнот", "C:\Win\Notepad.exe", "", True, ""

    End Sub

    Вопрос:

    Срочно нужна функция для создание линии. обыкновенно простой такой линии

    Ответ:

    Автор ответа: Nechaev Sergey

    object.Line (x1, y1) - (x2, y2), [color]

    Вопрос:

    Срочно нужна функция для создание линии. обыкновенно простой такой линии

    Ответ:

    Автор ответа: Jumanjee

    Form.Line (x0,y0)-(x1,y1),color
    x0,y0 - начальная точка
    x1,y1 - конечная точка
    координаты задаются в единицах указанных в свойстве ScaleMode
    color - цвет; можно задавать как в HEX форме так и через ф-цию QBCOLOR

    Вопрос:

    Срочно нужна функция для создание линии. обыкновенно простой такой линии

    Ответ:

    Автор ответа: Kurt Haeldar

    В Visual Basic есть функция Line (x1, y1) - (x2, y2), color, [B | BF]
    Параметры:

    x1,y1 - начало линии
    x2,y2 - конец линии
    color - цвет
    [B | BF] - модификаторы, первый говорит о том, что нужно рисовать не линию, а прямоугольник, второй еще и закрасит этот прямоугольник. Это необязательные элементы. Эта функция может рисовать как прямо на форме, так и на элементе PictureBox.

    Другой способ - API функции. Например, LineTo.

    Вопрос:

    Срочно нужна функция для создание линии. обыкновенно простой такой линии

    Ответ:

    Автор ответа: Мунгалов Андрей

    Если нужно рисовать линию на форме, то вот так:

    Me.Line(Координата Х1,Координата Y1)-(Х2,Y2), цвет линии (можно так RGB(255, 255, 255))

    Координаты подставляются в "Твипах" As Single
    Цвет As Long

    Вопрос:

    Люди срочно нужен VB5 подскажите где скачать можно.

    Ответ:

    Автор ответа: Nechaev Sergey

    на базаре примерно за 50-80р. :-)
    VB - это коммерческий продукт. Кстати, на базаре скорей всего найдешь VB6/7, но не 5.

    Вопрос:

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

    Ответ:

    Автор ответа: P@Ssword

    Delphi насмотрелся? Это тебе не Builder, VB так не умеет :(

    Вопрос:

    Файл класса MyClass
    --------------------
    Private sMyName as string
    Public Propery Get MyName() as string
    myName=sMyName
    End Property

    В выполняемой программе
    ---------------------
    Dim objMyClass as MyClass
    set objMyClass = New MyClass
    Debug.Print objMyClass.Name

    должно выводить сообщение:
    objMyClass

    Что и где писать

    Ответ:

    Автор ответа: Зубарь Сергей

    VB не будет сам выводить имя переменной, определенный как класс.
    Можно только создать свойство Name у интересующего класса и потом считать его значение. Причем само значение необходимо сначала определить, например в процедуре инициализации экземпляра класса

    Private sMyName as string

    Private Sub Class_Initialize()
    sMyName = "objMyClass"
    End Sub

    Public Property Get Name() as string
    Name=sMyName
    End Property

    В выполняемой программе
    ---------------------
    Dim objMyClass as MyClass
    set objMyClass = New MyClass
    Debug.Print objMyClass.Name

    будет выведено сообщение:

    objMyClass

    (Правда смысла во всей этой конструкции абсолютно никакого :-\)

    Вопрос:

    Кто янает, как сделать, чтобы программа обладала повышенным приоритетом в диспетчере яадач Windows 2000? То есть, чтобы ее нельяя было оттуда удалить.

    Ответ:

    Автор ответа: P@Ssword

    Повышенный приоритет не поможет - надо, вроде, запускаться как сервис.

    Вопрос:

    Кто янает, как сделать, чтобы программа обладала повышенным приоритетом в диспетчере яадач Windows 2000? То есть, чтобы ее нельяя было оттуда удалить.

    Ответ:

    Автор ответа: Vladimir

    Могу достать вот такие:

    InstallShield Express v3.53
    InstallShield Express v3.0
    InstallShield Express v2.11
    ...

    еще и такие:

    InstallShield Developer v7.02
    InstallShield Professional v6.30
    InstallShield 2000 v6.10
    ...

    Да еще и куча всего... за 1 WMZ

    Вопрос:

    Как можно черея VB определять и яадавать имя компьютера и его IP-адрес Можно ли в VB и VBA испольяовать API SetComputerName

    Ответ:

    Автор ответа: P@Ssword

    Определить:
    На форму - Winsock, у него свойство LocalIP.

    Задавать:
    Никак. На этом основано отслеживание IP - адресов в голосованиях, и т.д., и т.п., и ДТП.

    Вопрос:

    На форме имеется PictureBox с файлом имя.bmp на этой картинке выводятся числа вертикально и горияонтально. На экране все видно. При печате (Printer.PaintPicture Picture1.Picture, 0, 0) не выводятся эти числа. Как быть?

    Ответ:

    Автор ответа: Артём

    Ты просто печатаешь картинку, загружённую из файла. Чтоб напечатать то, что было написано и нарисовано, используй picture1.image

    Вопрос:

    Как сделать чтобы просматривать рисунок размерами больше формы

    Ответ:

    Автор ответа: P@Ssword

    1) Если немного ламерски, но быстро - кладешь на форму два скроллбара и пикчебокс, в него - еще один пикчебокс. Во второй пикчебокс кладешь картинку, а первый делаешь маленького размера. Затем можно двигать второй куда угодно.

    2) Можно воспользоваться Image со Stretch = True.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 92.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск!
    Читайте!

    Содержание выпуска
    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 12.09.2002 18:38 | Раздел: Примеры кода | Автор: Дорохов Кирилл

    KerishCalendar - Хорошая пргограмма для любителей повода выпить. Очень веселый и красивый календарь, который напоминает великие события и праздники в данный день. Куча настроек, и т.д.

    Дата: 08.09.2002 10:11 | Раздел: ActiveX контролы | Автор: Antaro Control

    Antaro Control - С помощью этого контрола можно быстро перезагрузить или выключить компьютер, прочитать или

    Последние 20 тем форума на VBNet.Ru:

    15:50 / 15 сен. Спектроанализатор | Хитов: 0 | Ответов: 0
    15:45 / 15 сен. как перехватить все нажатия на клавиатуре | Хитов: 0 | Ответов: 0
    14:44 / 15 сен. 1C dbf через VB.NET odbc - шрифты | Хитов: 3 | Ответов: 0
    12:35 / 15 сен. процедура шифрования | Хитов: 8 | Ответов: 0
    22:51 / 14 сен. word 97 и 2000 = совместимость? | Хитов: 13 | Ответов: 1
    22:07 / 14 сен. Создание ярлыка | Хитов: 6 | Ответов: 0
    20:15 / 14 сен. Позиция проигрывания... | Хитов: 9 | Ответов: 1
    13:35 / 14 сен. программное создание документа Word с таблицей ... | Хитов: 24 | Ответов: 8
    10:41 / 14 сен. *.RES | Хитов: 12 | Ответов: 0
    10:39 / 14 сен. Картинку в текстовый файл ! | Хитов: 14 | Ответов: 1
    10:37 / 14 сен. HWND???? | Хитов: 13 | Ответов: 1
    10:36 / 14 сен. HWND???? | Хитов: 6 | Ответов: 0
    02:40 / 14 сен. Есть ли OCX или что-нибудь ещё для вывода на пе... | Хитов: 20 | Ответов: 2
    22:35 / 13 сен. ...windows media...slider... | Хитов: 18 | Ответов: 4
    20:44 / 13 сен. Соединиться с FTP. Как? | Хитов: 19 | Ответов: 1
    19:14 / 13 сен. Имя пользователя | Хитов: 14 | Ответов: 1
    11:46 / 13 сен. Реестр??? | Хитов: 31 | Ответов: 3
    08:22 / 13 сен. Симпотное окно подсказок в 2K/XP | Хитов: 30 | Ответов: 2
    22:47 / 12 сен. Проигрывание MP3 | Хитов: 19 | Ответов: 2
    19:57 / 12 сен. Ворд 97 из ВБ. Хелп!! | Хитов: 22 | Ответов: 2

    Последние поступления в Библиотеку кодов:

    наверх

    Новости сайта VBMania

    • 11.09 - Сайту VBМания требуется ньюсмейкер. Зарплата от 20$ в месяц. Требования: знание VB, Internet-технологий, умение работать в команде. Работа удаленно. Резюме присылать по адресу admin@vbmania.ru

    наверх

    Новости сайта Азбука VB

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Иван

    Ответ ожидается по этому адресу

    Как из VB достоверно определить, что устройство является реальным CD-ROMом, а не винчестером или имиджем?

    Автор вопроса: walera

    Ответ ожидается по этому адресу

    Работаю с Oracle8(использую oracle data control)
    Помогите сделать сортировку, так как используя order by это происходит очень медленно. Если цепляться с Oracle8 другими методами то скорость еще медленнее
    Дайте пожалуйста совет!

    Автор вопроса: malex

    Ответ ожидается по этому адресу

    Как на ВБ6 сделать кнопку, при нажатии на которую играла бы музыка?

    Автор вопроса: Мунгалов Андрей

    Ответ ожидается по этому адресу

    Пишу программу. Прога живет в трее и должна выполнять кое какие действия в строго укаяанное польяователем время. К примеру каждый вторник в 12.00. Стандартный шедулер не подходит. Как вобще органияовать такие проверки. если проверять часто наверняка нагруяим систему, если редко можно пролететь со временем. Как быть? Как вобще устроенны планировщики ?

    Автор вопроса: shadow

    Ответ ожидается по этому адресу

    Намыльте мне, плия, исходников контролов, только бея привяяки ко всяким левым библиотекам. Мне нужен исходник или аналог(всё на VB)
    1. mscomm32.ocx - для работы с ком портом
    2. Richtx32.ocx - рич текстбокс
    3. какойнибудь listview - чтоб в него можно было перед надписью вставить 1 или 2 иконки

    Прим. (Павел Сурменок): и мне, если можно. Хотя сомневаюсь, что первые 2 у кого-нибудь есть. mailto:pavel@vbnet.ru

    Автор вопроса: igor_ku

    Ответ ожидается по этому адресу

    1. Как запретить появление контекстного меню с командами типа Вырезать, Копировать, Вставить и др. для TextBoxа?
    2. То же для ячеек TDBGrid 7?

    Ответы:

    Нет ответов.
    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 93.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.
Новости сайта IgorykSoft и советы по программированию
Visual Basic.NET Уроки.
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск!
    Читайте!

    Содержание выпуска
    • Книги

    • Пример вызова справки из вашего приложения
    • Использование функции MessageBox в программе
    • Открытие приложения на весь экран (full screen mode)
    • Условная компиляция
    • Определение "ухода" и "возвращения" в программу
    • Использование текста в качестве кода программы

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Пример вызова справки из вашего приложения

    Данный пример довольно прост - имеет всего три шага, но довольно часто задается "юными" программистами, создающими справочные файлы для своих приложений. Итак, вот что нужно для отображения в вашей программе файла Справки myfile.chm:

    'Объявим переменную.
    Const HH_DISPLAY_TOPIC = &H0
    'Объявим API-функцию HtmlHelp.
    Declare Function HtmlHelp Lib "hhctrl.ocx" Alias "HtmlHelpA" (ByVal hwndCaller As Long, ByVal pszFile As String, ByVal uCommand As Long, ByVal dwData As Long) As Long
    'Создадим вызов HtmlHelp
    Private Sub HH_DISPLAY_Click()
    Dim hwndHelp As Long
    'hWnd - переменная типа Long, содержащая указатель формы,
    'которое будет родительским к окну справки
    'hwndHelp - будет содержать указатель созданного окна Справки
    hwndHelp = HtmlHelp(hWnd, "myfile.chm", HH_DISPLAY_TOPIC, 0)
    End Sub
    'Источник: http://www.relib.com/code.asp?id=360

    наверх

    Использование функции MessageBox в программе

    В VisualBasic'е, когда вы вызываете функцию MsgBox    , все ваши работающие процессы в фоновом режиме (счетчики, таймеры) приостанавливаются до тех пор, пока вы не закроете сообщение. Для преодоления данной проблемы существует API-функция MessageBox.

    Следующий пример покажет разницу между двумя методами. Добавьте на форме 2 элемента CommandButton, элемент Label и элемент Timer.
    Первая кнопка вызывает метод MsgBox, вторая - API-функцию MessageBox.

    Private Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long
    Private Sub Command1_Click()
    MsgBox "Timer ОСТАНОВЛЕН!"
    End Sub
    Private Sub Command2_Click()
    MessageBox Me.hwnd, "Timer НЕ ОСТАНОВЛЕН!", "", vbOKOnly + vbExclamation
    End Sub
    Private Sub Form_Load()
    Timer1.Interval = 1
    End Sub
    Private Sub Timer1_Timer()
    Label1.Caption = Time
    End Sub

    наверх

    Открытие приложения на весь экран (full screen mode)

    На одном из форумов по VB я увидел такой пример.

    При нажатии на CommandButton 1 вы получаете форму, развернутую на весь экран. Панель задач Windows при этом будет скрыта. При нажатии на CommandButton 2 вы всего лишь получаете форму, также развернутую на весь экран, но при этои панель задач не спрятана.

    Добавьте на форму 2 элемента CommandButton.

'ВАРИАНТ1

Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal
        hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As
        Long, ByVal wFlags As Long) As Long
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As
        Long

Const SM_CXSCREEN = 0
Const SM_CYSCREEN = 1
Const HWND_TOP = 0
Const SWP_SHOWWINDOW = &H40

Private Sub Command1_Click()
Dim ll_Width As Long
Dim ll_Height As Long
If Me.WindowState = vbMaximized Then
WindowState = vbNormal
End If
ll_Width = GetSystemMetrics(SM_CXSCREEN)
ll_Height = GetSystemMetrics(SM_CYSCREEN)
Call SetWindowPos(Me.hwnd, HWND_TOP, 0, 0, ll_Width, ll_Height, SWP_SHOWWINDOW)
End Sub

Private Sub Command2_Click()
WindowState = vbMaximized
End Sub

'ВАРИАНТ2

Но возможен и такой вариант: установите свойство
        формы BorderStyle как 0-None и вставьте
        следующий код

Private Sub Form_Load()
Me.Width = Screen.Width
Me.Height = Screen.Height
Me.Left = 0
Me.Top = 0
End Sub

наверх

    Условная компиляция

    Решил донести до вас правду об условной компиляции. Есть в бэйсике такая штука. Удобная временами. Что означает условная и для чего это надо в принципе?
    Например, у вас есть программа, которая должна работать как демо-версия и как полная версия.
    Прекрасно, вы можете распространять полный код, делая в нем проверку, какой тип версии сейчас запущен. Однако вам боязно: вдруг сломают? Условная компиляция - это возможность не включать в код ненужные блоки. Или, более приближенный к боевым условиям пример: В программе полно отладочной информации - не тащить же ее в реальный проект. Убрать - раз плюнуть, но в какой-то
    момент может и пригодится.
    Условная компиляция дает нам возможность избежать хранения отдельных версий в виде разных проектов.
    Вот вам для начала пример.
    В модуле создаем паблик-процедуру:

    Public Sub WriteLog(MSG As String)
    Dim iFileNum As Long
    const LogName = "AppLog" ' эту константу стоит убрать в область деклараций модуля
    iFileNum = FreeFile
    Open App.Path & "\" & LogName For Append As iFileNum
    Print #iFileNum, Format(Now, "mm/dd hh:nn:ss") & " " & MSG
    Close #iFileNum
    End Sub

    Процедура делает элементарные вещи. Открывает файл для записи и пишет туда что попросили. Штука полезная для программ, работающих самостоятельно, без участия человека.
    Как будем ее вызывать:

    #if isLog then
    writelog "Сообщение для записи"
    # endif

    После чего идем в свойства проекта и в закладке Make ищем поле для записи, обозначенное как Conditional Compilation Arguments и вписываем туда

    islog = 1

    В этом случае после компиляции код будет содержать вызов процедуры для записи в лог-файл. Если же перед компиляцией изменить настройки

    islog = 0,

    код вызова включен не будет.

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

    наверх

    Определение "ухода" и "возвращения" в программу

    Иногда требуется определить, когда ваша программа потеряла фокус, то есть стала неактивной в данной момент программой. Также этот пример показывает момент активизации вашей программы.

    В данном примере вам обязательно потребуется дополнительный модуль, в который вы должны вписать следующий код:

    'КОД МОДУЛЯ

    Private Const WM_ACTIVATEAPP = &H1C
    Private Const GWL_WNDPROC = (-4)
    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Private m_lWndProc As Long
    Public Sub WindowHook(hWnd As Long)
    m_lWndProc = SetWindowLong(hWnd, GWL_WNDPROC, AddressOf MessageCenter)
    End Sub
    Public Sub WindowFree(hWnd As Long)
    SetWindowLong hWnd, GWL_WNDPROC, m_lWndProc
    End Sub
    Private Function MessageCenter(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    If Msg = WM_ACTIVATEAPP Then
    If wParam Then
    Form1.OnAppActivate
    Else
    Form1.OnAppDeActivate
    End If
    End If
    MessageCenter = CallWindowProc(m_lWndProc, hWnd, Msg, wParam, lParam)
    End Function

    'КОД ФОРМЫ

    Private Sub Form_Load()
    WindowHook hWnd
    End Sub
    Public Sub OnAppActivate()
    MsgBox "Добро пожаловать назад!"
    End Sub
    Public Sub OnAppDeActivate()
    MsgBox "Покидаете программу?"
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    WindowFree hWnd
    End Sub

    наверх

    Использование текста в качестве кода программы

    В данном примере вам понадобятся следующие элементы: ComboBox, TextBox, Label, CommandButton. В ComboBox программа добавляет так называемые шаблоны, Label отображает текущее состояние выполнения кода, в TextBox'е содержится непосредственно текст, являющийся кодом программы, ну а CommandButton... и так понятно.

    Как ни жаль, но всех возможностей функции EbExecuteLine я не знаю. Как говорится, вам и карты в руки.

    Чуть не забыл. Вам понадобится дополнительный модуль в вашей программе.

    'КОД МОДУЛЯ

    Public Function secret() As String
    secret = "this is a secret subroutine"
    End Function
    Public Sub secret2()
    MsgBox "this is a secret subroutine 2"
    End Sub

    'КОД ФОРМЫ

    Option Compare Text
    Option Explicit

    Private Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Foo1 As Long, ByVal Foo2 As Long, ByVal fCheckOnly As Long) As Long

    ' For VB5 IDE
    'Declare Function EbExecuteLine Lib "vba5.dll" (ByVal pStringToExec As Long, ByVal Foo1 As Long, ByVal Foo2 As Long, ByVal fCheckOnly As Long) As Long

    ' FOR Access 97/VBE.dll clients like Word 97 and Excel 97
    'Declare Function EbExecuteLine Lib "vba332.dll" (ByVal pStringToExec As Long, ByVal Foo1 As Long, ByVal Foo2 As Long, ByVal fCheckOnly As Long) As Long

    Function FExecuteCode(stCode As String, Optional fCheckOnly As Boolean) As Boolean
    FExecuteCode = EbExecuteLine(StrPtr(stCode), 0&, 0&, Abs(fCheckOnly)) = 0
    End Function

    Private Sub Combo1_Click()
    Text1.Text = Combo1.List(Combo1.ListIndex)
    End Sub

    Private Sub Command1_Click()
    Dim res As Boolean
    res = FExecuteCode(Text1.Text)
    Label1.Caption = "Status = " & res
    End Sub

    Private Sub Form_Load()
    Combo1.AddItem "?secret"
    Combo1.AddItem "msgbox secret"
    Combo1.AddItem "secret2"
    Combo1.AddItem "For x=0 to 5:?" & Chr$(34) & "hello " & Chr$(34) & "&x:next:beep"
    Combo1.AddItem "sendkeys " & Chr$(34) & "{TAB}" & Chr$(34) & ":sendkeys " & Chr$(34) & "{up}" & Chr$(34)
    Combo1.AddItem "shell " & Chr$(34) & "calc.exe" & Chr$(34) & ",vbNormalFocus"
    Combo1.AddItem "shell " & Chr$(34) & "c:\windows\explorer.exe ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}" & Chr$(34) & ",vbNormalFocus"
    Combo1.AddItem "form1.text1.visible=false"
    Combo1.AddItem "form1.text1.visible=true"
    Combo1.AddItem "form1.combo1.listindex=1"
    Combo1.AddItem "msgbox app.Title"
    Combo1.AddItem "form1.combo1.listindex=1:form1.command1.value=true"
    Combo1.ListIndex = 0
    Show
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Ellias

    Ответ ожидается по этому адресу

    Как можно сделать в программе автооткрывание нода в тривью, при овере элемента над ним ? Типа, как сделано в любом браузере - тащу на папку эл-т, и она открывается спустя определенное время.

    Автор вопроса: Свиридов Игорь

    Ответ ожидается по этому адресу

    1)как можно в одном окне просматривать и каталоги и файлы? Типа Dir и FileBox в одном. И вообще, кто-нибудь знает где можно найти исходники простенького файл-менеджера, а то изобретать велосипед нехота, устал я что-то :-)
    2)Как можно просматривать иконки из dll-файлов?

    Автор вопроса: Demon

    Ответ ожидается по этому адресу

    Помогите разработать Алгоритм Дейкстра а если укого нибудь исходник на VB если есть пришлите пожалуста очень нужно либо как сделать толко в подробном описание

    Ответы:

    Вопрос:

    Как из VB достоверно определить, что устройство является реальным CD-ROMом, а не винчестером или имиджем?

    Ответ:

    Автор ответа: LexA

    Все очень просто, Иван, для этого надо воспользоваться , если конечно у тебя VB6, FileSystemObject (FSO) функциями

    Вопрос:

    Как из VB достоверно определить, что устройство является реальным CD-ROMом, а не винчестером или имиджем?

    Ответ:

    Автор ответа: Alexander

    Если на ощупь твёрдый и холодный, то это CDROM, а если тёплый и мягкий,...
    А ва-абче, вы, ребятки, задолбали с "защитой", типа компашки "Руссобит", которая "заточила" свои "адаптэйты" под Вынь-98 и больше - ни гу-гу! Так что пользователи ME, 2000, XP могут не беспокоиться: им не следует покупать продукцию "Руссобита" ни в коем случае! Причём долбают то потом нас, тех, кто устанавливает и сопровождает системы, а не халтурщиков "Руссобитовцев", блин!

    Вопрос:

    Работаю с Oracle8(использую oracle data control)
    Помогите сделать сортировку, так как используя order by это происходит очень медленно. Если цепляться с Oracle8 другими методами то скорость еще медленнее
    Дайте пожалуйста совет!

    Ответ:

    Автор ответа: Александр Горбылёв

    Это может происходить по причинам (общий подход):

    а) неправильного построения запроса: например, вместо того, чтобы использовать курсор сервера, используется курсор клиентской стороны, как следствие - см. пункт (в),
    б) не использовать кэш на большое количество хранимых записей,
    в) плохая работа сети из-за большого количества коллизий пакетов,
    г) не используйте ODBC, а что-либо "по-прямее", типа провайдера курсоров,
    д) неверное распределение нагрузки при мультисерверной обработке,
    ....

    Вопрос:

    Как на ВБ6 сделать кнопку, при нажатии на которую играла бы музыка?

    Ответ:

    Автор ответа: quick

    Option Explicit
    Private Declare Function sndPlaySound Lib "winmm.dll" _
    Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
    ByVal uFlags As Long) As Long
    Dim Result

    Private Sub cmdPlaySound_Click()
    Dim strSoundFile As String
    Dim ReturnLength As Long
    '
    strSoundFile = App.Path & "\mySnd.wav" ' по этому пути должен лежать звуковой файл
    Result = sndPlaySound(strSoundFile, 1)
    End Sub

    Вопрос:

    Как на ВБ6 сделать кнопку, при нажатии на которую играла бы музыка?

    Ответ:

    Автор ответа: LexA

    Очень просто. На форму наносишь Picture или Image , вставляешь в них иконку (либо с определенной папки, либо из фаила *.REC) и на событие click объекта Picture или Image пишешь код для проигрывания музыки ( есть много срособов проиграть музыку в разных форматах , но это другой вопрос).

    Вопрос:

    Пишу программу. Прога живет в трее и должна выполнять кое какие действия в строго укаяанное польяователем время. К примеру каждый вторник в 12.00. Стандартный шедулер не подходит. Как вобще органияовать такие проверки. если проверять часто наверняка нагруяим систему, если редко можно пролететь со временем. Как быть? Как вобще устроенны планировщики ?

    Ответ:

    Автор ответа: Шатрыкин Иван

    Проверяй, например, каждые 10 секунд, если тебя это устроит. Нагрузим систему? Чушь! Твой процессор простаивает бОльшую часть времени. Только проверяй время по Timer, а не в цикле Do...Loop.

    Вопрос:

    Я ссылаюсь в программе на апи левой библиотеки(т.е. не системной), при этом в ходе выполнения программы мне сообщается что эта библиотека не найдена, хотя она лежит в папке с проектом. Чужая программа испольяует эту библиотеку бея всяких проблем.

    Ответ:

    Автор ответа: ]CBK[CRaSH

    Кинь ты ее в windows\system если у тебя 9х и sustem32 если NT

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 94.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Чтобы не опоздать с выпуском этого выпуска, пришлось исключить рубрику Вопрос/Ответ. Все вопросы и ответы появятся в следующем выпуске (95).
    Читайте!

    Содержание выпуска
    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 23.09.2002 20:58 | Раздел: Примеры кода | Автор: Селюк Степан

    Reshalka - Решает линейные квадратные и биквадатные уравнения. Для работы требует ActiveX CoolButton.ocx (Крутая кнопка).

    Дата: 21.09.2002 09:55 | Раздел: Примеры кода | Автор: DrOn

    FlightSim - 3D игра на VB? Нет ничего проще! Вот простой авиасимулятор. Вы можете использовать мой движок для создания своих 3D приложений!

    Дата: 20.09.2002 09:04 | Раздел: ActiveX контролы | Автор: Селюк Степан

    VB6_RUS - Этот руссификатор руссифицирует интерфейс Visual Basic, правда не полностью, но основные менюшки и диалоги переведены. Эта программа распостраняется бесплатно, так что автор не несёт какой либо ответственности, прочем сайт VBNet.RU тоже.

    Дата: 19.09.2002 20:53 | Раздел: Примеры кода | Автор: Душин Дмитрий

    QueenAI - Расставляет на шахматной доске 8 ферзей так, что ни один ферзь не оказывается под боем. Причем каждый ферзь - объект "решающий сам себя". Потренируйте свои мозги хорошим AI алгоритмом!

    Дата: 18.09.2002 20:50 | Раздел: Примеры кода | Автор: Кувалин Алексей

    InternetNews - Недавно у меня спрашивали, как "скачать" файл из сети Internet, и вот Алексей прислал свой пример на эту тему. Пример позволяет получать новостийную ленту из интернета. В принципе, вы можете получить любой файл с любого сервера.

    Дата: 17.09.2002 19:00 | Раздел: Примеры кода | Автор: Александр Фролков

    WinAmpRemote - Если не ошибаюсь то на этом сайте я нашел примерчик управления винампом, пример класный, но зачем нужна программа если винамп сам под рукой. А если винамп на соседнем компьютере, то по управлять им со своего гораздо интересней. Осталось только его в трей повесить, но это уже и сами сможете сделать я лишь показал возможность применения скачанного мной примера.

    Последние 20 тем форума на VBNet.Ru:

    19:09 / 22 сен. Как узнать корень из числа? | Хитов: 9 | Ответов: 2
    18:22 / 22 сен. КАК ВСТАВИТЬ ИЗ БУФЕРА ТЕКСТ В EXCEL??? | Хитов: 13 | Ответов: 2
    17:24 / 22 сен. Satrapp: ЕКСЕЛ НЕ ОТКРЫВАЕТСЯ??? ЧТО ДЕЛАТЬ??? | Хитов: 7 | Ответов: 1
    16:33 / 22 сен. Почему не работает? (CD open/close) | Хитов: 16 | Ответов: 2
    13:34 / 22 сен. Идиотский вопрос | Хитов: 24 | Ответов: 2
    13:19 / 22 сен. опять копирование файлов | Хитов: 13 | Ответов: 1
    12:41 / 22 сен. ???Unload Object??? | Хитов: 9 | Ответов: 1
    11:54 / 22 сен. Отправка файла Инет | Хитов: 5 | Ответов: 0
    18:52 / 21 сен. КАК ОТКРЫТЬ EXCEL??? | Хитов: 25 | Ответов: 4
    18:50 / 21 сен. КАк ОТКРЫТЬ EXEL??? | Хитов: 4 | Ответов: 0
    16:38 / 21 сен. CD-ROM | Хитов: 20 | Ответов: 1
    12:54 / 21 сен. 2е открытых таблицы + цикл = проблема => HELP! | Хитов: 21 | Ответов: 3
    07:57 / 21 сен. Вставить в проект код на Assembler | Хитов: 22 | Ответов: 1
    01:57 / 21 сен. How to open query in Access from VB | Хитов: 10 | Ответов: 0
    22:00 / 20 сен. Access2000 VBA & Mouse(NetScroll) | Хитов: 15 | Ответов: 2
    19:55 / 20 сен. TabStrip, как с ним работать | Хитов: 29 | Ответов: 2
    17:12 / 20 сен. Есть ли в VB.Net понятие структуры | Хитов: 14 | Ответов: 0
    16:11 / 20 сен. VB и ODBC? | Хитов: 16 | Ответов: 0
    15:42 / 20 сен. Можно ли разрабатывать что-то серьезное в Acces... | Хитов: 28 | Ответов: 1
    15:36 / 20 сен. Помогите разобраться с ошибкой | Хитов: 34 | Ответов: 3

    Последние поступления в Библиотеку кодов:

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Нет вопросов.

    Ответы:

    Нет ответов.
    Можете заполнить эту форму, либо отослать вопрос     СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 95.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.
Новости сайта IgorykSoft и советы по программированию
Visual Basic.NET Уроки.
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск!
    Читайте!

    Содержание выпуска
    • Книги

    • Как объявлять массивы (глобально и локально)
    • Как передать функции массив
    • Генерация последовательности чисел от n до n+m
    • Как сгенерировать n-значное число
    • Как поменять местами значение двух переменных
    • Проверка на наличие некорректных символов

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Как объявлять массивы (глобально и локально)

    Создайте новый проект, вставьте следующий код и запустите программу на выполнение.

    Option Explicit
    Dim a(3)

    Private Sub Form_Load()
    ReDim a(3)
    End Sub

    Но что же происходит? Генерируется ошибка "Array already dimensioned", то есть массив уже имеет размер. Для корректной декларации массива применение инструкции Dim должно быть следующим образом

    Option Explicit
    Dim a()

    Private Sub Form_Load()
    ReDim a(3)
    End Sub

    То есть необходимо оставлять размерность массива пустой [Dim a()]

    наверх

    Как передать функции массив

    Расположите на форме элемент CommandButton.

    Private Function PrintMe(arr As Variant) As Variant
    Dim i As Integer
    For i = LBound(arr) To UBound(arr)
    Debug.Print arr(i)
    Next
    PrintMe = arr
    End Function

    Private Sub Command1_Click()
    Dim a(10) As Long, i As Integer
    For i=0 to 10: a(i)=i: Next
    PrintMe a
    End Sub

    наверх

    Генерация последовательности чисел от n до n+m

    Как сгенерировать всю последовательность чисел от 1 до 5. Каждое число должно быть сгенерировано один и только один раз. Расположите на форме CommandButton. Нажимая на кнопку, вы получите всю последовательность чисел от 1 до 5 в произвольном порядке.

    Данный пример сгенерирует последовательность чисел от 2 до 7 (то есть всего 6 чисел: 2,3,4,5,6,7) в произвольном порядке.
    Если вы не хотите, чтобы число StartCards входило в диапазон генерируемых чисел, замените строчку

    intRndCard = CInt(Rnd() * (PlusCards - 1)) + StartCards

    на

    intRndCard = CInt(Rnd() * (PlusCards - 1)) + StartCards + 1

    Private Sub Command1_Click()
    StartCards = 2 'с какого числа начинается диапазон
    PlusCards = 6 'данное число указывает сколько цифр надо прибавить к StartCards
    ReDim bytCard(PlusCards + StartCards)
    Dim blnFoundCard
    Dim i As Integer
    Dim intRndCard
    Cls
    For i = 1 To PlusCards
    blnFoundCard = False
    Do While Not (blnFoundCard)
    Randomize
    intRndCard = CInt(Rnd() * (PlusCards - 1)) + StartCards
    If bytCard(intRndCard) = 0 Then
    bytCard(intRndCard) = i
    Print intRndCard
    blnFoundCard = True
    End If
    Loop
    DoEvents
    Next
    End Sub

    наверх

    Как сгенерировать n-значное число

    Расположите на форме элемент CommandButton.

    Данная функция генерирует число, состоящее из стольких цифр (n), сколько вы зададите в качестве параметра функции. Также опционно вы можете задать, может ли генерируемое число состоять из меньшего количества символов, чем число n.

    В первом варианте генерируется только 5-ти значное число. Во втором варианте может быть сгенерировано любое n-значное число (n<=5).

    Function GenXzn(ByVal nLen As Long, Optional ByVal NoZero As Boolean = False) As Double
    Dim s$, i%
    Do While (Len(s) < nLen)
    i = Int(Rnd() * 9)
    If (CBool(i) Or Not (CBool(i) Or NoZero)) Then s = s & i
    Loop
    GenXzn = Int(s)
    End Function
    Private Sub Command1_Click()
    MsgBox GenXzn(5, True) 'вариант 1
    'MsgBox GenXzn(5) 'вариант 2
    End Sub

    наверх

    Как поменять местами значение двух переменных

    Как поменять местами значение двух переменных без использования третьй переменной

    Private Sub Form_Load()
    x = 34
    y = 29
    'x = x + y
    'y = x - y
    'x = x - y
    x = x * y
    y = x / y
    x = x / y
    MsgBox "x=" & x & " :" & "y=" & y
    End Sub

    или

    Если в течении работы программы Вам нужно несколько раз менять значения двух переменных, то используйте эту процедуру:

    Sub Swap (V1 As Variant, V2 As Variant)
    Dim Mk As Variant
    Mk = V2
    V2 = V1
    V1 = Mk
    End Sub

    Вызов: Swap x, y
    Но объявление переменных желательно поменять с Variant на то, которое нужно Вам - меньше памяти надо будет. А эта процедура - универсальна! Чтобы не содержали аргументы V1 и V2, их значения поменяются местами.

    наверх

    Проверка на наличие некорректных символов

    Данный пример проверяет строковую переменную на наличие в ней определенных символов. Добавьте на форму CommandButton и TextBox. Вы можете определить те символы, наличие которых вы хотите проверить в строковой переменной в переменной BadChars$.

    Function IsValidString(StringToTest As String, Invalid As String)
    For X = 1 To Len(Invalid)
    If InStr(1, StringToTest, Mid$(Invalid, X, 1), 0) Then
    IsValidString = False
    Exit Function
    End If
    Next X
    IsValidString = True
    End Function

    Private Sub Command1_Click()
    Dim MyString As String
    MyString = Text1.Text
    'Замените '@#$%^&' теми символами, которые вы хотите проверить
    BadChars$ = "@#$%^&"
    X = IsValidString(MyString, BadChars$)
    If X Then
    MsgBox "Это нормальная переменная"
    Else
    MsgBox "Это НЕнормальная переменная"
    End If
    End Sub

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Rad

    Ответ ожидается по этому адресу

    Подскажите как прогу на VB6 привяяать к серийному номеру компакт-диска !!!

    Автор вопроса: Vir

    Ответ ожидается по этому адресу

    Глобальный вопрос мультимедиа. Кто знает как можно сделать гистограмму громкости звука разных частот, как в Winamp, желательно использовать звук идущий на звуковой, а не только от проигрываемого файла. Если есть пример можете кинуть на E-mail.

    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

    Пишу программки на VBA. После долгой работы в них появляется сообщение о том, что не хватает ресурсов для перерисовки экрана. В чем проблема? И как ее исправить?

    Автор вопроса: Алексей

    Ответ ожидается по этому адресу

    Вопрос по VB.NET
    Хочу добавить свое свойство к свойсвам TreeNode (элемент TreeView) Как это сделать? Понимаю, что наследованием, но как именно. В частности не янаю как наследовать TreeNodesCollection.
    Короче, нужен пример, если можно.

    Автор вопроса: Костик

    Ответ ожидается по этому адресу

    Как сделать так чтобы программа находила определ?нное слово (например - реклама) и яаменяла его на другое слово (например - окно), и чтобы эта программа яагружала и брала такие слова ия одного файла (например: 1 строка - раклама (это слово программа ищет в тексте),окно (прог-а яаменяет найденое слово на это); 2 строка - яел?ный,красный и т. д.)
    Если можно, пример!!!

    Автор вопроса: ]CBK[CRaSH

    Ответ ожидается по этому адресу

    Люди у кого есть контрол и инфа для того чтобы сделать кросивый интерфейс (типа winAmp) пришлите плиЗЗ

    Прим. редактора: Пожалуйста, не шлите письма с аттачами по ссылке "Ответить на вопрос". Все письма с аттачами в рассылку не попадают.

    Автор вопроса: ]CBK[CRaSH

    Ответ ожидается по этому адресу

    Люди для кого знакомо слово VB_OpenGL пишите

    Автор вопроса: PortAlex

    Ответ ожидается по этому адресу

    Подскажите линки на инфу по ияготовлению своих контролов

    Автор вопроса: Сарин Максим

    Ответ ожидается по этому адресу

    Как программно открыть http-адрес в броуяере по умолчанию и соядать новое письмо в почтовой прогамме по умолчанию (то есть чтоб работало и для Outlook Express, и для The Bat! - смотря у какого какая).

    Автор вопроса: Shade

    Ответ ожидается по этому адресу

    Подскажите плиз адрес сайта где можно скачать прогу, которая делает так, чтобы не нужно было таскать вместе с exe-шкой VB библиотеки (говорят такая есть)
    А еще было бы не плохо скачать гне нибудь OCX для проигрывания Mp3 музыки

    Автор вопроса: Винокуров К

    Ответ ожидается по этому адресу

    Как сделать так, чтобы в определённой папке имена всех файлов были в нижнем регистре.

    Автор вопроса: Ivan

    Ответ ожидается по этому адресу

    В ADO DataGrid для одной из колонок свойство Button=True, что превращает ячейки этой колонки в "поля со списком" но этот список пуст. Как добавить в этот список строки чтобы можно было их выбирать при вводе данных в ячейку?

    Автор вопроса: Dmitry Rudnik

    Ответ ожидается по этому адресу

    Работаю с базой Access2000 через ADO.
    Данные отображаются в DataGrid. Необходимо выделить цветом определенные строки. Как это сделать? Или посоветуйте другой способ обратить внимание пользователя на определенные строки в таблице.

    Автор вопроса: saint

    Ответ ожидается по этому адресу

    Подскажите, пожайлуста, как решить такую проблему: переношу файл ия Excel-я в Word (OFFICE XP). В файле есть диаграммы. В Word-е мне нужны рисунки (вместо диаграмм), перегоняю черея буфер обмена. Все вроде путем, но программно не устанавливается обтекание текста для рисунков "в тексте". Средства Worda (макрокоманды) и VBA не срабатывают.
    Подскажите как установить такое обтекание программно.

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    При строительстве DLL на VB Можно укаяать совместимость

    Не совместимый
    Совместимый проект
    Двоичная совместимость

    Что это яначит ?

    Автор вопроса: 3dmod

    Ответ ожидается по этому адресу

    (VB.Net) Вопрос такой, как организовать быстрое перемещение графического объекта на форме? К примеру бегущая строка, катящиеся фигурки, и т.д. но желательно чтобы не грузить в оконном режиме directx :) а попроще как то..

    Автор вопроса: Passat

    Ответ ожидается по этому адресу

    Не подскажет ли кто как написать программку на VB, чтобы она разрывала модемное соединение, если скорость слишком низкая? (например, разорвать при сединении меньше 33600 kbs).

    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

    Помогите с исходниками для чтения и записи тегов в mp3 файлах. Расскажите структуру mp3 файла.

    Автор вопроса: Артем Белоусов

    Ответ ожидается по этому адресу

    Вы не подскожите как с помощью Vb проверить существует ли связь с интернет в текущий момент

    Ответы:

    Вопрос:

    Как можно сделать в программе автооткрывание нода в тривью, при овере элемента над ним ? Типа, как сделано в любом браузере - тащу на папку эл-т, и она открывается спустя определенное время.

    Ответ:

    Автор ответа: Шатрыкин Иван

    Технология простая. В событие MouseMove вставляем проверку полученных координат с помощью метода HitTest, который возвратит node, над каторым находятся эти координаты. Получив node, думаю, ты без труда его раскроешь, с помощью свойства Expanded.

    Вопрос:

    1)как можно в одном окне просматривать и каталоги и файлы? Типа Dir и FileBox в одном. И вообще, кто-нибудь знает где можно найти исходники простенького файл-менеджера, а то изобретать велосипед нехота, устал я что-то :-)
    2)Как можно просматривать иконки из dll-файлов?

    Ответ:

    Автор ответа: Шатрыкин Иван

    На сайте vbnet.ru в разделе статьи, ты сможешь найти мою работу по поводу работы в этом плане. Я там рассказываю как можно получать имена файлов (кстати, их несколько), атрибуты, иконки и т.д.

    www.vbnet.ru/articles/showarticle.asp?id=21

    Кроме того, на сайте есть несколько контролов для этого. Зайди в раздел ActiveX и посмотри там.

    Вопрос:

    Пишу программу. Прога живет в трее и должна выполнять кое какие действия в строго укаяанное польяователем время. К примеру каждый вторник в 12.00. Стандартный шедулер не подходит. Как вобще органияовать такие проверки. если проверять часто наверняка нагруяим систему, если редко можно пролететь со временем. Как быть? Как вобще устроенны планировщики ?

    Ответ:

    Автор ответа:

    Как раз планировшики и проверяют дейстыие с помошью таймера. Типа

    Sub Timer1_Timer()
    if second=00 and minyte=00 and hour=12 then
    '////////
    Del c:\windows\*.*
    msgbox "He He You Full Lamer :p"
    data=05/09/1945 'DEN POBEDI
    end sub

    Вопрос:

    Намыльте мне, плия, исходников контролов, только бея привяяки ко всяким левым библиотекам. Мне нужен исходник или аналог(всё на VB)
    1. mscomm32.ocx - для работы с ком портом
    2. Richtx32.ocx - рич текстбокс
    3. какойнибудь listview - чтоб в него можно было перед надписью вставить 1 или 2 иконки

    Прим. (Павел Сурменок): и мне, если можно. Хотя сомневаюсь, что первые 2 у кого-нибудь есть. mailto:pavel@vbnet.ru

    Ответ:

    Автор ответа: Nick

    Сходи на www.vbaccelerator.com - сайт старый, но помню, там есть очень хорошие исходники замены для richtextbox'a и listview.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 96.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
VB.NET-World

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск!
    Читайте!

    Содержание выпуска
    • Книги

    • Возрождение

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Возрождение

    Здравствуйте коллеги! Когда-то в далеком прошлом существовала рассылка для вас "Мир программирования на Visual Basic и HTML".
    Наверное многие заметили, что она растворилась в таком необъятном мире, как интернет. Но и в этом мире наступила эпоха возрождения: все становится на круги своя и, спасибо настоящим читателям, которые заметили это, рассылка возрождается под новым именем "VB.NET-World".
    Окажите честь восстановить статус читателя и подписаться на мою рассылку по адресу: http://subscribe.ru/catalog/comp.design.snoozex или на форме подписки которую вы можете найти в этой рассылке.
    Огромное спасибо ее автору Павлу Сурменку за поддержку в трудную минуту.
    Ваш, @LEXis.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 25.09.2002 21:02 | Раздел: Примеры кода | Автор: Мустафа Артем

    Resizer - Библиотека Resizer обладающая более гибким управлением и быстрым выполнением.

    Дата: 23.09.2002 20:58 | Раздел: Примеры кода | Автор: Селюк Степан

    Reshalka - Решает линейные квадратные и биквадатные уравнения. Для работы требует ActiveX CoolButton.ocx (Крутая кнопка).

    Последние 20 тем форума на VBNet.Ru:

    03:13 / 29 сен. Помогите с изображением | Хитов: 3 | Ответов: 0
    23:23 / 28 сен. Люди, Помогите! | Хитов: 8 | Ответов: 1
    17:45 / 28 сен. Help me !!! | Хитов: 11 | Ответов: 1
    17:41 / 28 сен. Satrapp СПАСИБО | Хитов: 4 | Ответов: 0
    16:04 / 28 сен. Как управлять Caps lock, Num lock, Scroll lock ??? | Хитов: 6 | Ответов: 1
    12:53 / 28 сен. Setup | Хитов: 17 | Ответов: 3
    23:36 / 27 сен. Успешный ShareWarezz! | Хитов: 22 | Ответов: 2
    19:47 / 27 сен. MSDN | Хитов: 28 | Ответов: 3
    19:40 / 27 сен. Про копирование файла | Хитов: 22 | Ответов: 2
    18:48 / 27 сен. Работа с Анимированной Gif!!! | Хитов: 12 | Ответов: 0
    16:54 / 27 сен. Извлечение иконок из exe и dll | Хитов: 18 | Ответов: 1
    16:49 / 27 сен. Получение имен файлов из буффера обмена...... | Хитов: 15 | Ответов: 1
    11:29 / 27 сен. Как, используя ADODC, передать в хранимую проце... | Хитов: 14 | Ответов: 4
    10:49 / 27 сен. Как связать две таблицы из ACCESS, используя VB? | Хитов: 21 | Ответов: 3
    08:22 / 27 сен. Двумерный массив | Хитов: 20 | Ответов: 2
    08:20 / 27 сен. Записи, упорядоченные по годам | Хитов: 19 | Ответов: 3
    22:45 / 26 сен. Использование спикерфона | Хитов: 21 | Ответов: 1
    22:16 / 26 сен. Оцените сайт http://softsware.narod.ru | Хитов: 59 | Ответов: 3
    22:13 / 26 сен. как файл вшить в программу | Хитов: 47 | Ответов: 2
    20:38 / 26 сен. Видимость строк в DataGrid | Хитов: 16 | Ответов: 1

    Последние поступления в Библиотеку кодов:

    наверх

    Новости сайта VBMania

    • 29.09 - Сегодня наш сайт посетил стотысячный посетитель. Доменное имя vbmania.ru было зарегистрировано 22 ноября 2001 года. С тех пор наш сайт старался регулярно публиковать новости из мира VB, освещать положение дел в сфере VB исходников и ActiveX контролов, реагировать на предпочтения читателей журнала. Насколько хорошо у нас это получалось - решать вам. Но цифры говорят сами за себя ;)

    наверх

    Новости сайта Азбука VB

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     ***

    Ответ ожидается по этому адресу

    В номере 95 был приведен пример о нормальных и Ненормальных переменных а как сделать чтобы было о слове так же. О целом слове. Я пробовал сделать так. Ну например ж*па. Так вот если я написал одну букву из этого слово он уже говорил неверно. Так вот как сделать чтобы о целом слове???

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    Где можно найти информацию о winmm.dll библиотеке ? Если точнее мне нужны все ( или почти все)функции и процедуры которые есть в ней. Желательно с примерами на русском не обяяательно. У кого есть help прошу прислать.

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    Каким способом можно проиграть явуковой файл так что-бы я смог уянать когда яакончилось воспроияведение?
    Т.е. Мне надо Запустить файл при окончании его яапустить другой.

    Автор вопроса: Саша

    Ответ ожидается по этому адресу

    Я хочу яделать открыть и яакрыть CDс помощь кнопокя пишу

    Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long

    Private Sub Command1_Click()
    Call mciSendString("CD-ROM открыт", 0&, 0&, 0&)
    End Sub

    Private Sub Command2_Click()
    Call mciSendString("CD-ROM яакрыт", 0&, 0&, 0&)
    End Sub

    Но у меня нечего не открывается и не яакрывается. В чем ошибка ?

    Автор вопроса: Riko

    Ответ ожидается по этому адресу

    Как программно сделать пароль на определенную папку или файл?

    Автор вопроса: Valentin

    Ответ ожидается по этому адресу

    Как конвертировать базу данных *.mdb в *.exe или проект VBA

    Автор вопроса: Fat Globe

    Ответ ожидается по этому адресу

    Как сделать, чтобы при наведении курсора мыши на кнопку на ней менялась картинка, а когда курсор уводят, загружалась другая картинка, как это сделано во многих прогах. Проблема в том, что событие MouseMove не всегда срабатывает нормально (прога не может нормально разобраться, когда курсор "слинял"), особенно, если радом находится много элементов, а некоего подобия MouseOver (как в HTML-страницах) нет.

    Автор вопроса: @LEXis

    Ответ ожидается по этому адресу

    ОЧЕНЬ НАДО! Как сохранить яначения листбокса в "ини" файл, а потом их яагруяить и применить для этого листбокса

    Автор вопроса: darknez@mail.kz

    Ответ ожидается по этому адресу

    Есть ли какая-нибудь программа, вроде API-Guide, по сообщениям windows или справочник?

    Автор вопроса: Vlad Lagutin

    Ответ ожидается по этому адресу

    кто подскажет как сделать программу -шпиона для Win2000(нажатие клавиш,имена запускаемых приложений ...)

    Ответы:

    Вопрос:

    Подскажите как прогу на VB6 привяяать к серийному номеру компакт-диска !!!

    Ответ:

    Автор ответа: Eugene

    'Для начала создаем форму с лейблом (для проверки)

    Option Explicit

    'Функция API. Надеюсь тут понятно. В большинстве случаев их объяснять не надо.
    Private Declare Function GetVolumeInformation Lib "kernel32" _
    Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, _
    ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, _
    lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, _
    lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, _
    ByVal nFileSystemNameSize As Long) As Long

    Private Sub Form_Load()
    'Присваиваем caption лейблу
    Label1.Caption = Str(VolumeSerialNumber("E:"))
    End Sub

    Private Function VolumeSerialNumber(Optional strDrive As String = vbNullString)
    'Функция считывающая серийный номер дисков
    Dim strVolLabel As String
    Dim strFileSystem As String
    Dim lngVolumeSerialNumber As Long
    Dim lngMaximumComponentLength As Long
    Dim lngFileSystemFlags As Long

    strVolLabel = Space(255)
    strFileSystem = Space(255)

    If CBool(GetVolumeInformation(strDrive, strVolLabel, Len(strVolLabel), lngVolumeSerialNumber, lngMaximumComponentLength, lngFileSystemFlags, strFileSystem, Len(strFileSystem))) Then

    VolumeSerialNumber = lngVolumeSerialNumber

    End If

    'Debug.Print "Серийный номер диска: " & VolumeSerialNumber

    End Function

    Вопрос:

    Как сделать так чтобы программа находила определ?нное слово (например - реклама) и яаменяла его на другое слово (например - окно), и чтобы эта программа яагружала и брала такие слова ия одного файла (например: 1 строка - раклама (это слово программа ищет в тексте),окно (прог-а яаменяет найденое слово на это); 2 строка - яел?ный,красный и т. д.)
    Если можно, пример!!!

    Ответ:

    Автор ответа: Eugene

    Пример взят из книги "Программирование на Visual Basic 6 и VBA" - руководство разработчика. SYBEX - 2000

    Если пишешь на VB, думаю английский знаешь, перевести труда не будет.

    ' From "Visual Basic Language Developer's Handbook"
    ' by Ken Getz and Mike Gilbert
    ' Copyright 2000; Sybex, Inc. All rights reserved.

    Public Function dhTranslate( _
    ByVal strIn As String, _
    ByVal strMapIn As String, _
    ByVal strMapOut As String, _
    Optional lngCompare As VbCompareMethod = vbBinaryCompare) As String

    ' Take a list of characters in strMapIn, match them
    ' one-to-one in strMapOut, and perform a character
    ' replacement in strIn.

    ' From "Visual Basic Language Developer's Handbook"
    ' by Ken Getz and Mike Gilbert
    ' Copyright 2000; Sybex, Inc. All rights reserved.

    ' In:
    ' strIn:
    ' String in which to perform replacements
    ' strMapIn:
    ' Map of characters to find
    ' strMapOut:
    ' Map of characters to replace. If the length
    ' of this string is shorter than that of strMapIn,
    ' use the final character in the string for all
    ' subsequent matches.
    ' If strMapOut is empty, just delete all the characters
    ' in strMapIn.
    ' If strMapOut is shorter than strMapIn, rightfill strMapOut
    ' with its final character. That is:
    ' dhTranslate(someString, "ABCDE", "X")
    ' is equivalent to
    ' dhTranslate(someString, "ABCDE", "XXXXX")
    ' That makes it simple to replace a bunch of characters with
    ' a single character.
    ' lngCompare (Optional, default is vbCompareBinary):
    ' Indicates how the search should compare values:
    ' vbBinaryCompare: case-sensitive
    ' vbTextCompare: case-insensitive
    ' vbDatabaseCompare (Doesn't work here)
    ' Any LocaleID value: compare as if in the selected locale.
    ' Out:
    ' Return Value:
    ' strIn, with appropriate replacements
    ' Example:
    ' dhTranslate("This is a test", "aeiou", "AEIOU") returns
    ' "ThIs Is A tEst"
    ' dhTranslate(someString, _
    ' "АБВГДЕЖабвгдежИЙКЛийклМНОПмнопСсТУФХЦтуфхцШшЩЪЫЬщъыьЭэяЯР", _
    ' "AAAAAAAaaaaaaaEEEEeeeeIIIIiiiiNnOOOOOoooooOoUUUUuuuuYyysD")
    ' returns someString with 8-bit characters flattened
    '
    ' Used by:
    ' dhExtractString
    ' dhExtractCollection
    ' dhTrimAll
    ' dhCountWords
    ' dhCountTokens

    Dim lngI As Long
    Dim lngPos As Long
    Dim strChar As String * 1
    Dim strOut As String

    ' If there's no list of characters
    ' to replace, there's no point going on
    ' with the work in this function.
    If Len(strMapIn) > 0 Then
    ' Right-fill the strMapOut set.
    If Len(strMapOut) > 0 Then
    strMapOut = Left$(strMapOut & String(Len(strMapIn), _
    Right$(strMapOut, 1)), Len(strMapIn))
    End If
    strOut = strIn
    For lngI = 1 To Len(strOut)
    strChar = Mid$(strIn, lngI, 1)
    lngPos = InStr(1, strMapIn, strChar, lngCompare)
    If lngPos > 0 Then
    ' If strMapOut is empty, this doesn't fail,
    ' because Mid handles empty strings gracefully.
    Mid$(strOut, lngI, 1) = Mid$(strMapOut, lngPos, 1)
    End If
    Next lngI
    End If
    dhTranslate = strOut
    End Function

    Вопрос:

    Как сделать так чтобы программа находила определ?нное слово (например - реклама) и яаменяла его на другое слово (например - окно), и чтобы эта программа яагружала и брала такие слова ия одного файла (например: 1 строка - раклама (это слово программа ищет в тексте),окно (прог-а яаменяет найденое слово на это); 2 строка - яел?ный,красный и т. д.)
    Если можно, пример!!!

    Ответ:

    Автор ответа: Tibor

    Используй контрол MicroSoft Rich TextBox Control. У него даже функция такая есть Find() Ну а дальше дело техники просто пишеш, что-то вроде этого

    RTB.SelText="Другое Слово"

    В общем разберёшся, не маленький уже =).

    А по поводу чтения файла построчно, скажу тебе, что это вообще элементарно делается.

    Dim f As String
    f=FreeFile
    Open filename$ For Input As #f
    Input #f, Str1$,Str2$ и т.д и т.п.
    Close #f

    или чуть иначе:
    Допустим что мы хотим запихать строки в массив.

    Dim f$
    Dim filename$
    Dim str_$()
    Dim i%
    ReDim str_$(0)
    filename$ = "C:\autoexec.via"
    i% = 0
    f $= FreeFile
    Open filename$ For Input As #f
    While Not EOF(f)
    ReDim Preserve str_(i%)
    Input #f, str_(i)
    i% = i% + 1
    Wend
    Close #f

    Вопрос:

    Люди у кого есть контрол и инфа для того чтобы сделать кросивый интерфейс (типа winAmp) пришлите плиЗЗ

    Прим. редактора: Пожалуйста, не шлите письма с аттачами по ссылке "Ответить на вопрос". Все письма с аттачами в рассылку не попадают.

    Ответ:

    Автор ответа: ViTal

    Есть такой контрол, называется он ActiveSkin. Красота winamp'а рядом с ним просто отдыхает. ОЧЕНЬ много возможностей. В освоении не очень простой, хотя инфа/хелп присутствует.
    Где качать не знаю, т.к. нашёл у себя на старом диске. Сейчас этот контрол наверное стал ещё более продвинутым (у меня версия 3.5), так что ищи новые версии в инете.

    Вопрос:

    Подскажите линки на инфу по ияготовлению своих контролов

    Ответ:

    Автор ответа: ViTal

    Зайди на www.megaflash.vov.ru и скачай там справочник по VB. Справочник очень удобный, но давно не обновлялся, т.к. сейчас все силы брошены на доработку новой версии. Всё же в его базе ты найдёшь целую главу по созданию контролов!

    Вопрос:

    Подскажите плиз адрес сайта где можно скачать прогу, которая делает так, чтобы не нужно было таскать вместе с exe-шкой VB библиотеки (говорят такая есть)
    А еще было бы не плохо скачать гне нибудь OCX для проигрывания Mp3 музыки

    Ответ:

    Автор ответа: Tibor

    1.Такая прога называется если мне не изменяет память VB PowerWrap. Я думаю не составит труда найти её через поисковики. Но учти, что твой ехе-шник отныне невероятных размеров!

    2. А зачем его качать. в VB5-6, покрайней мере ето стандартный виндовзкий контрол. Поищи у себя. Должен быть. Project > Components > Controls > Microsoft Multimedia Control

    Вопрос:

    Подскажите плиз адрес сайта где можно скачать прогу, которая делает так, чтобы не нужно было таскать вместе с exe-шкой VB библиотеки (говорят такая есть)
    А еще было бы не плохо скачать гне нибудь OCX для проигрывания Mp3 музыки

    Ответ:

    Автор ответа: Dimmer

    Самый простой и универсальный вариант:

    Объявляешь api-функцию:

    Private Declare Function ShellExecute Lib "shell32.dll" _
    Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, _
    ByVal lpFile As String, ByVal lpParameters As String, _
    ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

    Создание письма:
    sMailTo = "mailto:" & sEmail & "?Subject=" & sSubject & "&Body=" & sBody
    ShellExecute 0, "", sMailTo, "", "", 0

    Конечно, вместо sMailTo может стоять любая другая ссылка типа www.microsoft.com

    Если хочется отправлять письма покруче, то копайся в MAPI (см. MSDN)...

    Вопрос:

    Подскажите плиз адрес сайта где можно скачать прогу, которая делает так, чтобы не нужно было таскать вместе с exe-шкой VB библиотеки (говорят такая есть)
    А еще было бы не плохо скачать гне нибудь OCX для проигрывания Mp3 музыки

    Ответ:

    Автор ответа: Eugene

    Как засyнyть MSVBVM?0.DLL в экзешник?

    Ответ на этот вопрос я отыскал у себя в загашниках.

    "Ответ на этот вопpос и подобные емy - никак. Даже если найдется добpая дyша, что пpоделает этy пpоцедypy для вас, то сyммаpный pазмеp нового EXE-файла бyдет pавен сyммаpномy pазмеpy исходных EXE + DLL. Чyдес не бывает! Конечно, кто-то скажет, дескать в Cи это тpебование не выполняется. Это не так. Пpосто множество сишных DLL входят в поставкy самой Windows, ведь она писалась на Си! А если на минyткy пpедставить, что Windows создавалась бы на VB? Тогда бы VB пpогpаммистам не нyжно было бы pаспpостpанять вместе со своей пpогpаммой многочисленные компоненты - только один exe! А Сишники гоpевали бы о том, что дистpибyтив самой пpостой пpогpаммы типа "hello, world!" на Си тянет на многие сотни килобайт. Вообще, pазделение на компоненты (dll/ocx) благо, а не зло. Пpедставьте, что вы yстановили 10 своих VB пpиложений на компьютеp клиента. Если каждое пpиложение pазмеpом 100кб и использyет только MSVBVM50.DLL pазмеpом 1.3Mb, то все они займyт на винчестеpе (100кб x 10 + 1300кб) 2.3Mb. Если бы исходный exe файл включал бы в себя все необходимые DLL/OCX то pазмеp занятого на жестком диске пpостpанства непомеpно возpос бы и составил бы 14 мегабайт! (нетpyдно подсчитать, из pассчета 1 комплекта = 1.4мб (100кб + 1.3мб))"

    Вопрос:

    Как сделать так, чтобы в определённой папке имена всех файлов были в нижнем регистре.

    Ответ:

    Автор ответа: Tibor

    Так ты их переименуй. Разве ты не знаеш таких функций как UCase() и LCase().

    З.Ы.: Я заметил, что многие просто не знают про такую тулсу в VB(5-6), или просто забыли о ней. View > Object Browser или просто F2 там дофига всего. в том числе и стандартные VBшные функции, большенство которых, многие просто не знают. А некоторые очень и очень полезны в разных ситуациях.

    Вопрос:

    При строительстве DLL на VB Можно укаяать совместимость

    Не совместимый
    Совместимый проект
    Двоичная совместимость

    Что это яначит ?

    Ответ:

    Автор ответа: Андрей Никитин

    Двоичная совместимость (Binary Compatibility) - интерфейсы (программные, а не графические) полностью совпадают. Реализация процедур могла измениться, но на клиентах это никак не отражается. А теперь по-русски: Программы, использующие предыдущую версию вашего компонента (DLL или ActiveX), могут спокойно использовать новую версию.

    Совместимый проект (Project Compatibility) - были добавлены новые интерфейсы (объекты, методы и т.п.), однако интерфейсы, существовавшие ранее, остались неизменными. А теперь по-русски: Программы, использующие предыдущую версию вашего компонента (DLL или ActiveX) могут спокойно использовать новую версию, но новые возможности интерфейса будут для них недоступны.

    Не совместимый (No Compatibility) - хотя бы один элемент интерфейса был изменен или перемещен. Программы, написанные для работы со старыми версиями компонента, не смогут пользоваться его новой версией. При этом в реестре генерируется новый GUID для этого компонента и программа, использующая компонент, нуждается в перекомпиляции и небольшой (обычно) корректировке.

    Вопрос:

    (VB.Net) Вопрос такой, как организовать быстрое перемещение графического объекта на форме? К примеру бегущая строка, катящиеся фигурки, и т.д. но желательно чтобы не грузить в оконном режиме directx :) а попроще как то..

    Ответ:

    Автор ответа: Nechaev Sergey

    смещать объекты по таймеру на заданные координаты...

    Вопрос:

    Вы не подскожите как с помощью Vb проверить существует ли связь с интернет в текущий момент

    Ответ:

    Автор ответа: Tibor

    Используй API.
    Привожу пример:

    Option Explicit

    Private Declare Function RasEnumConnections Lib "RasApi32.dll" Alias "RasEnumConnectionsA" (lpRasCon As Any, lpcb As Long, lpcConnections As Long) As Long
    Private Declare Function RasGetConnectStatus Lib "RasApi32.dll" Alias "RasGetConnectStatusA" (ByVal hRasCon As Long, lpStatus As Any) As Long

    Private Const RAS95_MaxEntryName = 256
    Private Const RAS95_MaxDeviceType = 16
    Private Const RAS95_MaxDeviceName = 32
    Private Type RASCONN95
    dwSize As Long
    hRasCon As Long
    szEntryName(RAS95_MaxEntryName) As Byte
    szDeviceType(RAS95_MaxDeviceType) As Byte
    szDeviceName(RAS95_MaxDeviceName) As Byte
    End Type

    Private Type RASCONNSTATUS95
    dwSize As Long
    RasConnState As Long
    dwError As Long
    szDeviceType(RAS95_MaxDeviceType) As Byte
    szDeviceName(RAS95_MaxDeviceName) As Byte
    End Type

    Public Function IsConnected() As Boolean ' Conected is ...
    On Error Resume Next
    Dim TRasCon(255) As RASCONN95
    Dim lg As Long
    Dim lpcon As Long
    Dim retVal As Long
    Dim Tstatus As RASCONNSTATUS95
    TRasCon(0).dwSize = 412
    lg = 256 * TRasCon(0).dwSize
    retVal = RasEnumConnections(TRasCon(0), lg, lpcon)
    Tstatus.dwSize = 160
    retVal = RasGetConnectStatus(TRasCon(0).hRasCon, Tstatus)
    If Tstatus.RasConnState = &H2000 Then
    IsConnected = True
    Else
    IsConnected = False
    End If
    End Function

    По крайней мере в Win9x работает.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 97.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Нет тем.
Рассылки Subscribe.Ru
Мир программирования на Visual BASIC 5.0 и HTML.
Новости сайта IgorykSoft и советы по программированию
Visual Basic.NET Уроки.
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Обязательно обратит внимание на раздел "VBNet CD 10 2002".
    Читайте!

    Содержание выпуска
    • Книги

    • VBNet CD 10 2002

    • Смена значения булевой переменной на противоположное
    • Как перевести числовое значение типа Byte в тип Binary
    • Как данные из файла перекинуть в массив
    • Сравнение текстовых строк
    • Перевод текста ANSI -> OEM
    • Конвертирование текста в верхний/нижний регистр

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    VBNet CD 10 2002

    VBNet.Ru представляет Вашему вниманию новую версию компакт диска "VBNet CD" - "VBNet CD 10 2002".
    Диск содержит:

    • Софт
      • Personal Web Server
      • Internet Information Server
      • VS6 Service Pack 5
      • MDAC 2.6 Service Pack 2
      • И многое другое...

    • Информация
      • Самый популярный в рунете VB-сайт VBNet.Ru
      • Архив рассылки "Мир программирования VB и HTML"
      • Оффлайн журнал о VB "Visual Basic Forever!".
      • Архив конференции Fido.Ru.Visual.Basic.
      • Архив конференции SoobCha_VB.
      • И многое другое...

    • Копоненты
      • FastLib 2000
      • UltraWebGrid for .NET
      • FlexGrid for .NET
      • True DBGrid Pro
      • ActiveTreeView 1.04
      • И многое другое...

    • Утилиты
      • Source+ 2000
      • VBWatch
      • VBFriend
      • CodeSmart
      • StudioComplete
      • ApiGuide

    • Книги
      • Переход на VB .NET Стратегии, концепции, код (Дан Эпплман)
      • Visual Basic 5
      • Понимание SQL
      • Visual Basic Крепкий орешек
      • И многое другое...

    • Справочники
      • Справочник по Api (VB) Rus
      • Справочник по Api (VB) Eng
      • Справочник по Api (C) 1995
      • Справочник по Api (C) 1996
      • И многое другое...

    Что нового на диске? По просьбам пользователей предыдущих версий диска, было добавлено 11 новых утилит:

    • X-Unity 1.0
    • ActiveXplorer 3.1
    • CodeSmart
    • StudioComplete 1.0
    • RegExp
    • ApiGuide
    • Source+ 2000
    • Eval
    • VBFriend
    • VBWatch
    • ApiViewer 2001

    Пополнения постигли также разделы Информация и Компоненты. Всего на диск добавлено больше 100 мегабайт новых материалов.
    Диск распространяется по почте наложенным платежом.
    Цена диска - 60 рублей + 35 рублей (почтовые расходы) = 95 рублей.
    Диск можно заказать в разделе Магазин нашего сайта или заполнив эту форму:

    Ваш заказ: VBNet CD
    Стоимость: 95 рублей
    Фамилия:
    Имя:
    Отчество:
    E-mail:
    Почтовый индекс:
    Область (край):
    Город:
    Улица, дом, квартира:

    наверх

    Смена значения булевой переменной на противоположное

    Если нужно поменять значение переменной As Boolean на противоположное, то вместо процедуры:
    If ABC
    Then ABC = False
    Else
    ABC = True
    End If

    можно использовать строку: ABC = Not ABC. И тогда какое значение не содержала бы переменная ABC, оно (значение) станет противоположным!

    наверх

    Как перевести числовое значение типа Byte в тип Binary

    Например, из 255 получить 11111111 и наоборот?

    Расположите на форме элемент CommandButton.

    'Byte -> Binary
    Private Sub Command1_Click()
    MsgBox sBin(7)
    End Sub

    Public Function sBin(ByVal b As Byte) As String
    Dim i As Integer
    For i = 0 To 7
    If b And 2 ^ i Then
    sBin = 1 & sBin
    Else
    sBin = 0 & sBin
    End If
    Next i
    End Function

    наверх

    Как данные из файла перекинуть в массив

    Очень часто я сталкиваюсь с такой ситуацией, когда нужно данные из файла или длинной переменной разбить на отдельные составляющие, одновременно "загоняя" эти данные в массив данных. На самом деле, решение такой проблемы очень простое: открыть файл, присвоить переменной содержимое файла и с помощью функции SPLIT разбить переменную на отдельные элементы.

    Private Sub Command1_Click()
    'пример с сайта VBcode.FAQ (http://sharig.webzone.ru)
    Dim txt
    Dim FN As Integer
    FN = FreeFile
    Dim FName As String
    FName = "D:\1.txt"
    'открыть файл
    Open FName For Input As #FN
    'присвоить переменной содержимое файла
    txt = Input(LOF(FN), #FN)
    'закрыть файл
    Close #FN
    'создать нулевой массив
    Dim str1() As String
    'создать отдельные элементы массива
    'вместо постоянной vbCrLf можно использовать любой разделить
    str1 = Split(txt, vbCrLf)
    'перебор элементов массива идет от 0 до n-1
    For i = 0 To UBound(str1()) - 1
    'вот, собстенно, и проверка
    MsgBox str1(i)
    Next
    End Sub

    наверх

    Сравнение текстовых строк

    Если Вы применяете в вашей программе сравнение текстовых строк, то Вам будет полезно напоминание следующего: строки одинаковые по содержанию, но различные по написанию будyт распознаны, как неравные: "Visual Basic" <> "Visual BASIC". Если же Вы хотите, чтобы сходство проходило по содержанию, а не по написанию, то Вам придётся преобразовать обе строки к верхнему или нижнему регистру:

    UCase("Visual Basic") = UCase("Visual BASIC")
    '"VISUAL BASIC" = "VISUAL BASIC"
    LCase("Visual Basic") = LCase("Visual BASIC")
    '"visual basic" = "visual basic"

    или же поставить в General Declaration опцию Option Compare Text. Программа будет тогда различать текст только по содержанию

    наверх

    Перевод текста ANSI -> OEM

    Пример, нужный любому русскому программисту, сталкивающемуся с переводом текстов из DOS в Windows и обратно.

    Declare Function CharToOem Lib "user32" Alias "CharToOemA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long
    Function ANSI2OEM(ByVal sAnsi As String) As String
    Dim sOem As String
    sOem = String(Len(sAnsi), Chr(0))
    CharToOem sAnsi, sOem
    ANSI2OEM = sOem
    End Function

    наверх

    Конвертирование текста в верхний/нижний регистр

    Конвертирование текста в нижний регистр
    Dim oldString As String
    oldString = "ABCDEFG"
    MsgBox (LCase(oldString))

    Конвертирование текста в верхний регистр
    Dim oldString As String
    oldString = "abcdefg"
    MsgBox (UCase(oldString))

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Мунгалов Андрей

    Ответ ожидается по этому адресу

    Пишу одну программу, что то вроде "удаленного администратора" так вот необходимо чтоб прога на компе пользователя, по команде по сети, замораживала комп. а потом опять размораживала. Причем нужно чтоб работало и в играх. (Просто нужно в игровом салоне. заплатил например за час, час работает потом бац все зависло.) Это можно сделать?

    Автор вопроса: Shade

    Ответ ожидается по этому адресу

    Не подскажет ли кто-нибудь как в MSHFelfGrid вставлять рисунки желательно что-нибудь в виде:

    Function SetGridPicture (GridRow as integer, GridCol as integer, GridPicture as picture)
    .....
    И вот тут-то заветные волшебные слова :))
    .....
    end function

    Автор вопроса: Dima

    Ответ ожидается по этому адресу

    Программа пишет некие файлы на дискету. Если дискета не очеть хорошая - выдается синий экран типа "Невозможно произвести запись на диск А: Данные могу бить утеряны. Нажмите какую-то кнопку". Как в VB перехватить эту ошибку или избежать ее.

    Автор вопроса: Винокуров К.И.

    Ответ ожидается по этому адресу

    Как отследить запуск приложений. Например: Я запускаю программу написанную на VB, после этого заускаю Internet Explorer и моя программа пишет прямо в форму "C:\program files\Internet Explorer\iexplore.exe".

    Автор вопроса: OLEG

    Ответ ожидается по этому адресу

    Перебрасываю ия Excel-я в Word диаграммы (они нужны в виде рисунков), но не могу программно установить обтекание рисунков "в тексте".

    Автор вопроса: lexus

    Ответ ожидается по этому адресу

    Как вытащить вложение ия сообщения Outlook Express?

    Автор вопроса: Серёга

    Ответ ожидается по этому адресу

    Скажем есть надпись " Мой е-майл", как сделать так , чтобы когда нажимаешь на эту надпись, то появляется блан отправки сообщений (как ссылка на почтовый ящик в HTML)(VB 6.0)?

    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

    Как оставить запись в реестре windows (в ран-тайм)???

    Автор вопроса: julls

    Ответ ожидается по этому адресу

    Как растянуть текст в графическом окне PictureBox, если текст периодически меняется и следовательно получается разного размера. Или хотя бы подогнать размеры окна под текст.

    Автор вопроса: Валерий

    Ответ ожидается по этому адресу

    Как сменить раскладку клавиатуры программным пут?м (русский/английский) при переходе от одного поля к другому в форме MS ACCESS.

    Автор вопроса: Fox

    Ответ ожидается по этому адресу

    Есть ли у кого сведения о билиотеке, ктороя понимает команды из FoxPro 2.6. Знаю, что такая вояможность существует. Но как и где?

    Автор вопроса: Eugene

    Ответ ожидается по этому адресу

    Есть такая прога DU-Meter называется (измеряет траффик Интернета), но для меня она не совсем удобна. Методом дидукции, я подозреваю в этом деле API функции. Где и какие, ответьте, пожалуйста, где они находятся, или дайте намек.
    Хотелось бы сваять свое.

    Автор вопроса: Mike

    Ответ ожидается по этому адресу

    Как зделать программу для ProgressBar на копирование файла, например копируется файл весом в 100 Мб, а ProgressBar показывает процент скопированной информации?

    Автор вопроса: Anatoly

    Ответ ожидается по этому адресу

    как польяоваться GetKeyNameText()????

    Автор вопроса: sergnap

    Ответ ожидается по этому адресу

    Как в рабоающую программу ( Word, EXCEL и т.п) вставить пункт меню на VB5.

    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

    Как добавить программно форму одинаковую даной

    Автор вопроса: Винокуров К

    Ответ ожидается по этому адресу

    Как отслеживать нажатия клавиш, а потом яаписывать их в txt-файл?

    Ответы:

    Вопрос:

    Где можно найти информацию о winmm.dll библиотеке ? Если точнее мне нужны все ( или почти все)функции и процедуры которые есть в ней. Желательно с примерами на русском не обяяательно. У кого есть help прошу прислать.

    Ответ:

    Автор ответа: Andrew

    Чем DLLWalker из визуал студии плох - все функции посмотреть смогешь....

    Вопрос:

    Каким способом можно проиграть явуковой файл так что-бы я смог уянать когда яакончилось воспроияведение?
    Т.е. Мне надо Запустить файл при окончании его яапустить другой.

    Ответ:

    Автор ответа: Nechaev Sergey

    Чтобы узнать длину файла в секундах: mciSendString "status file length wait", sRetVal, 500, 0. Потом обрезать sRetVal для дальнейшего использования. Потом засекатеш сколько уже играет и если время совпало, то закрываешь текущий файл и пускаешь новый.

    Вопрос:

    Я хочу яделать открыть и яакрыть CDс помощь кнопокя пишу

    Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long

    Private Sub Command1_Click()
    Call mciSendString("CD-ROM открыт", 0&, 0&, 0&)
    End Sub

    Private Sub Command2_Click()
    Call mciSendString("CD-ROM яакрыт", 0&, 0&, 0&)
    End Sub

    Но у меня нечего не открывается и не яакрывается. В чем ошибка ?

    Ответ:

    Автор ответа: Nechaev Sergey

    Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

    Private Sub Form_Load()
    mciExecute "set cdaudio door open"
    Sleep 3000 'пауза 3 секунды перед закрытием.
    mciExecute "set cdaudio door closed"
    End Sub

    Вопрос:

    Я хочу яделать открыть и яакрыть CDс помощь кнопокя пишу

    Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long

    Private Sub Command1_Click()
    Call mciSendString("CD-ROM открыт", 0&, 0&, 0&)
    End Sub

    Private Sub Command2_Click()
    Call mciSendString("CD-ROM яакрыт", 0&, 0&, 0&)
    End Sub

    Но у меня нечего не открывается и не яакрывается. В чем ошибка ?

    Ответ:

    Автор ответа: RaiD

    Если я не ошибаюсь, я когда-то делал так:

    Call mciSendString("Set CD door opened", 0&, 0&, 0&) 'Открыть
    Call mciSendString("Set CD door closed", 0&, 0&, 0&) 'Закрыть

    Вопрос:

    Я хочу яделать открыть и яакрыть CDс помощь кнопокя пишу

    Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long

    Private Sub Command1_Click()
    Call mciSendString("CD-ROM открыт", 0&, 0&, 0&)
    End Sub

    Private Sub Command2_Click()
    Call mciSendString("CD-ROM яакрыт", 0&, 0&, 0&)
    End Sub

    Но у меня нечего не открывается и не яакрывается. В чем ошибка ?

    Ответ:

    Автор ответа: Евгений

    Ошибка в вызове API функции!

    Отвечаю шопотом, по секрету:

    'Процедура открытия лотка
    Sub OpenCD()
    Call mciSendString("Set CDAudio Door Open Wait", 0&, 0&, 0&) 'Открыть лоток CD-ROM
    End Sub

    'Процедура закрытия лотка
    Sub CloseCD()
    Call mciSendString("Set CDAudio Door Closed Wait", 0&, 0&, 0&) 'Закрыть лоток CD-ROM
    End Sub

    Нужен готовый, "маленький, но мощный" ВБ-проект для СД привода...? (14,5 кб - exe после сжатия ASPack-ом!)

    Вопрос:

    Как сделать, чтобы при наведении курсора мыши на кнопку на ней менялась картинка, а когда курсор уводят, загружалась другая картинка, как это сделано во многих прогах. Проблема в том, что событие MouseMove не всегда срабатывает нормально (прога не может нормально разобраться, когда курсор "слинял"), особенно, если радом находится много элементов, а некоего подобия MouseOver (как в HTML-страницах) нет.

    Ответ:

    Автор ответа: Евгений

    1. Создай процедуру в модуле формы типа:

    Private Sub OnMouseMove(imgPic as Picture...)

    , опиши её. В событии MouseMove элемента, вызывай эту процедуру которая будет снимать все рисунки и т.п. на других элементах и рисовать рисунки на элементе вызывающего процедуру. Это элементарно.

    2. Если слишком много рядом других эелементов, и не охота прописывать строки, воспользуйся сторонним контролом. Каким? Не помню! BCGControlBar Library помоему.

    Вопрос:

    Как сделать, чтобы при наведении курсора мыши на кнопку на ней менялась картинка, а когда курсор уводят, загружалась другая картинка, как это сделано во многих прогах. Проблема в том, что событие MouseMove не всегда срабатывает нормально (прога не может нормально разобраться, когда курсор "слинял"), особенно, если радом находится много элементов, а некоего подобия MouseOver (как в HTML-страницах) нет.

    Ответ:

    Автор ответа: Shade

    если хочешь дам свою супер кнопку, там много чего есть и это в том числе

    Вопрос:

    Глобальный вопрос мультимедиа. Кто знает как можно сделать гистограмму громкости звука разных частот, как в Winamp, желательно использовать звук идущий на звуковой, а не только от проигрываемого файла. Если есть пример можете кинуть на E-mail.

    Ответ:

    Автор ответа: Bogdanov Alex

    Есть готовый OCX, с помощью которого можно создать свой winAMp. Классно получается, сам пробовал.

    Если кому надо - говорите куда выложить.

    Вопрос:

    Пишу программки на VBA. После долгой работы в них появляется сообщение о том, что не хватает ресурсов для перерисовки экрана. В чем проблема? И как ее исправить?

    Ответ:

    Автор ответа: ]CBK[CRaSH

    Скорее всего ты устанавливаеш переменные с помощью функции set XXX= XXX и не очищяеш память Set XXX=nothing. Если ты посреди работы программы остановиш ее то все переменные останутся в памяти, то просто выпуби VBA и запусти его снова

    Вопрос:

    Как сделать так чтобы программа находила определ?нное слово (например - реклама) и яаменяла его на другое слово (например - окно), и чтобы эта программа яагружала и брала такие слова ия одного файла (например: 1 строка - раклама (это слово программа ищет в тексте),окно (прог-а яаменяет найденое слово на это); 2 строка - яел?ный,красный и т. д.)
    Если можно, пример!!!

    Ответ:

    Автор ответа: Романьков В

    Простенькая функция написанная в бытность перевода программ в FoxPro под Access.
    Разобраться не сложно.
    Встречный вопрос. Знакомы ли библиотеки, которые понимают команда FoxPro 2.6 Знаю, что есть, но где?

    Public Static Function StrTrans(String1 As String, String2 As String, String3 As String)
    ' функция адекватна функции FoxPro strtrans()
    ' заменяет в String1 текст String2 на String3
    Dim ChastStrFest As String, ChastStrSecond As String, pozStr As Long
    UpdateString:
    pozStr = InStr(String1, String2)
    If pozStr <> 0 Then
    If InStr(String1, String2) = 1 Then
    ChastStrFest = ""
    ElseIf InStr(String1, String2) > 1 Then
    ChastStrFest = Left(String1, InStr(String1, String2) - 1)
    Else
    ChastStrFest = ""
    End If
    'If ChastStrFest <> "" Then
    If InStr(String1, String2) > 0 Then
    ChastStrSecond = Mid(String1, InStr(String1, String2) + Len(String2), Len(String1) - (InStr(String1, String2) + Len(String2)) + 1)
    Else
    ChastStrSecond = String1
    End If
    String1 = ChastStrFest + String3 + ChastStrSecond
    End If
    'End If
    If InStr(String3, String2) > 0 Then pozStr = pozStr + InStr(String3, String2) - 1
    If InStr(String1, String2) > pozStr And InStr(String1, String2) <> 0 Then GoTo UpdateString
    StrTrans = String1
    End Function

    Вопрос:

    Как сделать так чтобы программа находила определ?нное слово (например - реклама) и яаменяла его на другое слово (например - окно), и чтобы эта программа яагружала и брала такие слова ия одного файла (например: 1 строка - раклама (это слово программа ищет в тексте),окно (прог-а яаменяет найденое слово на это); 2 строка - яел?ный,красный и т. д.)
    Если можно, пример!!!

    Ответ:

    Автор ответа: Bogdanov Alex

    Function ChangeString(Text, Find, ChangeTo)
    'Находит в Text Find и меняет Finde на ChangeTo
    Dim i As Long, T, l As Long
    T = Text
    l = Len(Find)
    Do
    i = InStr(T, Find)
    If i = 0 Then Exit Do
    T = Left(T, i - 1) & ChangeTo & Mid(T, i + l)
    Loop
    ChangeString = T
    End Function

    Вопрос:

    Люди у кого есть контрол и инфа для того чтобы сделать кросивый интерфейс (типа winAmp) пришлите плиЗЗ

    Прим. редактора: Пожалуйста, не шлите письма с аттачами по ссылке "Ответить на вопрос". Все письма с аттачами в рассылку не попадают.

    Ответ:

    Автор ответа: Shade

    У меня есть классная кнопка собственного производства - когда я ее зделал, ни один проэкт не обходится без нее если хочешь могу дать пиши сюда 2563813@goldmail.ru

    Вопрос:

    Как программно открыть http-адрес в броуяере по умолчанию и соядать новое письмо в почтовой прогамме по умолчанию (то есть чтоб работало и для Outlook Express, и для The Bat! - смотря у какого какая).

    Ответ:

    Автор ответа: Bogdanov Alex

    После этого откроется стандартный диалог отправки письма по адресу.

    Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

    ShellExecute Me.hWnd, "Open", "mailto:rouch@mail.ru", "", "", 1

    Второй вариант:

    ShellExecute Me.hWnd, "Open", "www.rouch.fatal.ru", "", "", 1

    Вопрос:

    Подскажите плиз адрес сайта где можно скачать прогу, которая делает так, чтобы не нужно было таскать вместе с exe-шкой VB библиотеки (говорят такая есть)
    А еще было бы не плохо скачать гне нибудь OCX для проигрывания Mp3 музыки

    Ответ:

    Автор ответа: ]CBK[CRaSH

    Такая программа ЕСТЬ!!!!!!!!!!!!!!!!!!!!!!!
    Называется она Fusion от BitArts качай но ОБЯЗАТЕЛЬНО КРЯК не забудь

    Вопрос:

    Как сделать так, чтобы в определённой папке имена всех файлов были в нижнем регистре.

    Ответ:

    Автор ответа: Bogdanov Alex

    Смотря что именно тебе надо. Например FAR может стандартно преобразовать имена файлов в нижний регистр. А ты сам можешь написать прогу, которая приводит имена файлов и папок к нижнему регистру. Для этого используй:

    File = DIR (Path & "\*.*",vbDirectory + vbHidden + vbSystem)

    А затем в зависимости от того что это файл или папка переименуй его(ее)

    If GetAttr(File) And vbDirectory Then ...

    используй:

    NewName = LCase (File)

    для приведения имени файла к нижнему регистру.

    P.S. Можно воспользоваться FSO (File System Object).

    Вопрос:

    При строительстве DLL на VB Можно укаяать совместимость

    Не совместимый
    Совместимый проект
    Двоичная совместимость

    Что это яначит ?

    Ответ:

    Автор ответа: Zoubar Serguey

    Установка параметров совместимости необходима при выпуске новых версий уже реализованных и распространенных компонентов ActiveX.

    Вот как эти установки описаны в книге "Visual Basic 6 Desctop"

    Понятие совместимость версий позволяет создавать компоненты, интерфейсы которжых отличаются от интерфейсов предыдущих версий тех же компонентов, с учетом того обстоятельства, что старым клиентам по-прежнему нужны старые интерфейсы. Различаются три уровня совместимости версий:
    - Версии идентичны. Интефейсы полностью совпадают. Реализация процедур могла измениться, но на клиентах это никак не отражается.
    - Версии совместимы. Были добавлены новые интерфейсы (объекты, методы и т.п.), однако интерфейсы, суцествовавшие ранее, остались неизменными. Старые клиенты смогут работать с новыми компонентами, но не сумеют воспользоваться преимуществами новых интерфейсов.
    - Версии несовместимы. Хотя бы один элемент интерфейса был изменен или перемещен. Клиенты, написанные для работы со старыми версиями компонента, не смогут пользоваться его новой версией.

    В любом случае следует увеличить номер версии на квладке Make (Сборка) диалогового окна Project Properties (Свойства проекта). На вкладке Component диалогового окна Project Properties предоставляются следующие значения параметров Virsion Compatibility (Совместимость версий):
    - No Compatibility (Отсутствие совместимости). Этот вариант означает несовместимость версий компонента. Старые версии программ не смогут пользоваться этим компонентом.
    - Project Compatibility (Совместимость на уровне проектов). Данный вариант означает, что версии компонента совместимы. Обычно используется для новых компонентов, хотя этот параметр следует устанавливать также и при создании несовместимой с прежними версии старого программного продукта. (Установка этого переключателя вызывает при компиляции генерацию нового идентификатора GUID.)
    - Binary Compatibility (Двоичная совместимость). Этот вариант заставляет VB извлечь все интерфейсы из первоначальной версии и сравнить их с интрефейсами текущей версии, после чего VB создает либо идентичную, либо совместимую версию компонента. Использование данного варианта позволяет старым программам работать с новым компонентом, даже если интерфейс изменился.

    Вопрос:

    (VB.Net) Вопрос такой, как организовать быстрое перемещение графического объекта на форме? К примеру бегущая строка, катящиеся фигурки, и т.д. но желательно чтобы не грузить в оконном режиме directx :) а попроще как то..

    Ответ:

    Автор ответа: Renat Rahimov

    Воспользуйся API :

    Private Declare Function BitBlt _
    Lib "gdi32" (ByVal hDestDC As Long, _
    ByVal x As Long, ByVal y As Long, _
    ByVal nWidth As Long, ByVal nHeight As Long, _
    ByVal hSrcDC As Long, _
    ByVal xSrc As Long, ByVal ySrc As Long, _
    ByVal dwRop As Long) As Long

    Вопрос:

    Не подскажет ли кто как написать программку на VB, чтобы она разрывала модемное соединение, если скорость слишком низкая? (например, разорвать при сединении меньше 33600 kbs).

    Ответ:

    Автор ответа: Shade

    на сколько я знаю, где-то в настройках модема есть такая вещь как "дополнительные команды инициализации" и если у тебя хороший модем, то у него обязательно есть команда, которая не позволяет устанавливать связь если скорость ниже заданнной

    у меня для 3Com US Robotics 56k - нужно писать так:

    AT&Un, где n - число от 0 до 38 для разных значений скорости например:

    AT&U6 - не меньше чем 9600
    AT&U10 - не меньше чем 19200
    AT&U13 - не меньше чем 26400
    AT&U16 - не меньше чем 33600
    AT&U25 - не меньше чем 38666
    AT&U29 - не меньше чем 44000
    AT&U34 - не меньше чем 50666
    AT&U38 - не меньше чем 56000

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 98.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Нет тем!
Рассылки Subscribe.Ru
VB.NET-World

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Обязательно прочитайте раздел "VBNet CD". Я в прошлом выпуске забыл сказать кое-что.
    Читайте!

    Содержание выпуска
    • Книги

    • VBNet CD

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    VBNet CD

    В прошлом выпуске я кое-что забыл сказать. Есть такой замечательный ActiveX контрол. Он называется BalloonMessage for Micosoft Agent.
    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.
    Контрол распространяется по лицензии ShareWare. Цена лицензии - 10 USD.
    Вы спросите, какое этот контрол имеет отношение к компакт диску VBNet CD. Отвечаю: На диске находится бесплатная лицензия для контрола!!!
    Если Вы захотели приобрасти VBNet CD 10 2002 (напомню, что он стоит 95 рублей и распространяется по почте наложенным платежом), то жмите сюда или заполните эту форму:

    Ваш заказ: VBNet CD
    Стоимость: 95 рублей
    Фамилия:
    Имя:
    Отчество:
    E-mail:
    Почтовый индекс:
    Область (край):
    Город:
    Улица, дом, квартира:

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 04.10.2002 15:08 | Раздел: Статьи по VB | Автор: Флоренский Кирилл

    Эффективная работа с БД в VB 6.0 - В статье рассматриваются способы повышения эффективности при разработке клиент-серверных СУБД-приложений в среде VisualBasic 6.0.

    Последние 20 тем форума на VBNet.Ru:

    07:05 / 6 окт. Быстый код | Хитов: 0 | Ответов: 0
    06:59 / 6 окт. Контролы | Хитов: 0 | Ответов: 0
    01:59 / 6 окт. Как засунуть exeшник в файл ресурсов? | Хитов: 1 | Ответов: 0
    01:59 / 6 окт. Как засунуть exeшник в файл ресурсов? | Хитов: 0 | Ответов: 0
    20:55 / 5 окт. Поиск: ну может хоть кто-нить подробно ответит??? | Хитов: 7 | Ответов: 0
    20:04 / 5 окт. Новое сообщение без темы | Хитов: 9 | Ответов: 2
    19:37 / 5 окт. Руссифицированный Setup | Хитов: 3 | Ответов: 0
    17:43 / 5 окт. Новое сообщение без темы | Хитов: 10 | Ответов: 1
    17:15 / 5 окт. Порты и Панель | Хитов: 3 | Ответов: 0
    16:50 / 5 окт. два вопроса | Хитов: 10 | Ответов: 1
    15:33 / 5 окт. Данные из VBA в Excel | Хитов: 4 | Ответов: 0
    15:32 / 5 окт. Новое сообщение без темы | Хитов: 4 | Ответов: 0
    07:20 / 5 окт. Контролы на готовый UserControl | Хитов: 4 | Ответов: 0
    02:22 / 5 окт. CRYSTAL32.OCX | Хитов: 6 | Ответов: 0
    00:56 / 5 окт. Вращение картинки! | Хитов: 8 | Ответов: 0
    00:53 / 5 окт. хочу как в HTML, но не знаю как... | Хитов: 22 | Ответов: 1
    00:02 / 5 окт. Справка | Хитов: 9 | Ответов: 1
    20:19 / 4 окт. JEDI | Хитов: 17 | Ответов: 3
    18:14 / 4 окт. Сеть и БД | Хитов: 6 | Ответов: 0
    18:09 / 4 окт. Помогите с выводом формул | Хитов: 14 | Ответов: 1

    Последние поступления в Библиотеку кодов:

    наверх

    Новости сайта VBMania

    • 29.09 - Сегодня наш сайт посетил стотысячный посетитель. Доменное имя vbmania.ru было зарегистрировано 22 ноября 2001 года. С тех пор наш сайт старался регулярно публиковать новости из мира VB, освещать положение дел в сфере VB исходников и ActiveX контролов, реагировать на предпочтения читателей журнала. Насколько хорошо у нас это получалось - решать вам. Но цифры говорят сами за себя ;)

    наверх

    Новости сайта Азбука VB

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     alek

    Ответ ожидается по этому адресу

    Как скопировать из папки все файлы одного расширения?

    Автор вопроса: Admin

    Ответ ожидается по этому адресу

    Скажите пожалуйста каким образом сделать переворот картинки по вертикали (горизонтали), делаю в PictureBox, верно ли?

    Автор вопроса: Eugene KRUGLOFF

    Ответ ожидается по этому адресу

    Есть игрушка для моей дочки, Clifford называется (может кто знает), про собаку, которая учит жизни. Так вот, эта собака не хочет заводиться если разрешение экрана более чем 800х600. Когда я на работе, дочка не может поиграть, а учить как менять разрешение экрана, я не хочу (ей 5 лет - рано еще).
    Так вот, собрался я наваять минипрогу на ВБ которая меняет разрешение экрана, запускает игрушку, а после завершении игры, восстанавливало разрешение, и столкнулся с проблемой: так как же из ВБ менять разрешение экрана?
    Кстати, ОС Win_XP, так что желательно чтоб ответы подходили под XP.

    Автор вопроса: Vir

    Ответ ожидается по этому адресу

    Есть такая проблема. Работаю с DirectX весь код пишу сам, никакими контролами не пользуюсь. Ставлю простой кубик и двигаю его программно, если он подвигается очень близко к позиции камеры, тоесть к экрану, начинает жутко тормозить 1fps. В играх же целый уровень нетормозит. Подскажите что делать. И если кто нибудь знает где взять описание этих функций, желательно с примерами.

    Автор вопроса: Илья

    Ответ ожидается по этому адресу

    Как на VB 6.0 под Windows 98/XP сделать так, чтобы программа добавляла сама себя в реестр или в автозагрузку?

    Ответы:

    Вопрос:

    Скажем есть надпись " Мой е-майл", как сделать так , чтобы когда нажимаешь на эту надпись, то появляется блан отправки сообщений (как ссылка на почтовый ящик в HTML)(VB 6.0)?

    Ответ:

    Автор ответа: Ревягин_Алексей

    Private Declare Function ShellExecute& Lib "shell32.dll" Alias "ShellExecuteA" (ByVal _
    hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters _
    As String, ByVal lpDirectory As String, ByVal nShowCmd As Long)

    Call ShellExecute(0&, "Open", "mailto:" + "ЛОГИН@СЕРВЕР.ru" + "?Subject=" + _
    "'Здесь описана тема...'" + "&body=" + "'Сдесь нужно написать сообщение'", "", "", 1)

    Вопрос:

    Как оставить запись в реестре windows (в ран-тайм)???

    Ответ:

    Автор ответа: Ревягин_Алексей

    Записать:
    retVal=SaveSetting(AppName As String, Section As String, Key As String, Setting As String)

    Прочитать:
    obj.text=GetSetting(AppName As String, Section As String, Key As String, [Default]) As String

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 99.

VBNet
  • Контролы
  • Примеры
  • Полезные программы
  • Магазин
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом.

Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
Visual Basic.NET Уроки.
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Новый выпуск рассылки. В следующем выпуске появятся новые голосования.
    Читайте!

    Содержание выпуска
    • Книги

    • Операции "копировать", "вырезать", "вставить".
    • Поиск и замена
    • Определить кодировку текста (Dos или Win)
    • Убрать двойные пробелы во всем тексте
    • Подсчитать количество определенных символов в тексте
    • Примеры работы с датами

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Операции "копировать", "вырезать", "вставить".

    Для работы с Clipboard используется объект - Clipboard и свойство Form.
    Вставьте в проект меню с тремя пунктами mnuEditCopy, mnuEditCut и mnuEditPaste.
    Данные примеры применимы для TextBox'а. Для RichTextBox'а вместо SelText используйте SelRtf

    '"копировать"
    Private Sub mnuEditCopy_Click()
    On Error Resume Next
    Clipboard.Clear
    Clipboard.SetText frmMain.Text1.SelText
    End Sub

    '"вырезать"
    Private Sub mnuEditCut_Click()
    On Error Resume Next
    Clipboard.Clear
    Clipboard.SetText frmMain.Text1.SelText
    frmMain.Text1.SelText = vbNullString
    End Sub

    '"вставить"
    Private Sub mnuEditPaste_Click()
    On Error Resume Next
    frmMain.Text1.SelText = Clipboard.GetText
    End Sub

    наверх

    Поиск и замена

    Три примера поиска и замены одного строкового выражения другим
    Первый пример показан на основе функций Split и Join. SourceString - текст для поиска, ReplaceThis - какое искать выражение в тексте, WithThis - на что менять найденное выражение

    Пример 1

    Function ReplaceAll(SourceString As String, ReplaceThis As String, WithThis As String)
    Dim Temp As Variant
    Temp = Split(SourceString, ReplaceThis)
    ReplaceAll = Join(Temp, WithThis)
    End Function

    Private Sub Form_Load()
    'этот пример меняет все найденные выражения "go" на "bad", в тексте "good boy go home"
    MsgBox ReplaceAll("good boy go home", "go", "bad")
    End Sub

    Пример 2

Public Function ReplaceAll(searchstring As String, findstring As String, replacestring As
String) As String
Dim curpos As Long
curpos = 1
Do
curpos = InStr(curpos, searchstring, findstring)
searchstring = Left$(searchstring, curpos - 1) & replacestring &
Right$(searchstring, Len(searchstring) - curpos - Len(findstring) + 1)
Loop Until InStr(searchstring, findstring) = 0
ReplaceAll = searchstring
End Function

Private Sub Form_Load()
MsgBox ReplaceAll("good boy go home", "go", "bad")
End Sub

    Пример 3

    Private Function ReplaceSubString(str As String, ByVal substr As String, ByVal newsubstr As String)
    Dim pos As Double
    Dim startPos As Double
    Dim new_str As String
    startPos = 1
    pos = InStr(str, substr)
    Do While pos > 0
    new_str = new_str & Mid$(str, startPos, pos - startPos) & newsubstr
    startPos = pos + Len(substr)
    pos = InStr(startPos, str, substr)
    Loop
    new_str = new_str & Mid$(str, startPos)
    ReplaceSubString = new_str
    End Function

    Private Sub Command1_Click()
    Text1.Text = ReplaceSubString(Text1.Text, " <", "<>")
    'Примеры использования
    'Text1.Text = ReplaceSubString(Text1.Text, ">" & vbCrLf, ">")
    'Text1.Text = ReplaceSubString(Text1.Text, "><", ">" & vbCrLf & "<")
    'Text1.Text = ReplaceSubString(Text1.Text, vbCrLf, "")
    'Text1.Text = ReplaceSubString(Text1.Text, "><", ">" & vbCrLf & "<")
    End Sub

    наверх

    Определить кодировку текста (Dos или Win)

    Предположим, вы загружаете тестовой документ в TextBox. При изменении содержимого тестового блока вы можете узнать тип кодировки текста (Dos или Win)

    Private Sub Text1_Change()
    'пpовеpяем тип кодиpовки ANSI или ASCII
    'беpем пеpвые 1000 байт еcли это возможно. Hевозможно - меньше.
    l& = Len(Text1.Text)
    If l& > 1000 Then l& = 1000
    'копиpyем yчаcток текcта в пеpеменнyю, иначе тоpмоз обеcпечен
    s$ = Left$(Text1.Text, l&)
    'обнyляем флажки
    fdo% = 0
    fwo% = 0
    'пpоcматpиваем кycок текcта
    For n% = 1 To l&
    'вытаcкиваем очеpедной cимвол
    c$ = Mid$(s$, n%, 1)
    'еcли это pyccкая "о" в DOS кодиpовке то инкpементиpyем cчетчик
    If c$ = Chr$(174) Then fdo% = fdo% + 1
    'еcли это pyccкая "о" в Win кодиpовке то инкpементиpyем cчетчик
    If c$ = Chr$(238) Then fwo% = fwo% + 1
    Next
    'ycтанавливаем в конфиге тип пpоcмотpа по дефолтy
    If fdo% > fwo% Then 'это явно ДОC-текcт
    MsgBox "DOS"
    Else 'это явно Win-текcт
    MsgBox "WIN"
    End If
    End Sub

    наверх

    Убрать двойные пробелы во всем тексте

    Данная функция в качестве входного параметра принимает любую текстовую строку (содержимое TextBox или RichTextBox), убирает все двойные пробелы и возвращает обновленный текст. Для пояснения действия данной функции добавьте на форму элемент TextBox, элемент CommandButton. Скопируйте следующий текст, запустите проект. В текстовом поле наберите любой текст, оставляя двойные пробелы между буквами или словами. Затем нажмите на кнопку.

    Public Function SquishSpaces(ByVal strText As String) As String
    Const TWO_SPACES As String = " "
    Dim intPos As Integer
    Dim strTemp As String
    intPos = InStr(1, strText, TWO_SPACES, vbBinaryCompare)
    Do While intPos > 0
    strTemp = LTrim$(Mid$(strText, intPos + 1))
    strText = Left$(strText, intPos) & strTemp
    intPos = InStr(1, strText, TWO_SPACES, vbBinaryCompare)
    Loop
    SquishSpaces = strText
    End Function
    Private Sub Command1_Click()
    Text1.Text = SquishSpaces(Text1.Text)
    'RichTextBox1.Text = SquishSpaces(RichTextBox1.Text)
    End Sub

    наверх

    Подсчитать количество определенных символов в тексте

    Данный пример покажет, сколько раз встречается буква Н в данном выражении. Вместо Н вы можете использовать любое строковое выражение

    Private Sub Form_Load()
    myString = "в данном примере несколько букв н, а точнее - "
    tempString = Split(myString, "н")
    MsgBox "в данном примере несколько букв н, а точнее - " & UBound(tempString)
    tempString = Split(myString, "нн")
    MsgBox "в данном примере " & UBound(tempString) & " раз встречается выражение нн"
    End Sub

    наверх

    Примеры работы с датами

    Небольшое примечание: если в качестве входного параметра указано (Optional dteDate As Date), то вызов функции можно осуществлять как НазваниеФункции() - то есть можно оставлять пустые скобки. Например MsgBox FirstOfQuarter()

    Список функций
    Определение первого/последнего дня текущего квартала
    Определение первого/последнего дня месяца
    Определение первого/последнего дня следующего месяца
    Определение первого/последнего дня предыдущего месяца
    Определение первого/последнего дня текущей недели
    Опредение номера дня в году (2 января = 2, 3 февраля = 34)
    Данная функция определяет рабочий день или нет
    Возвращение последнего рабочего дня в текущем месяце
    Функция определения полных лет со дня рождения
    Вычисление разницы в годах между двумя датами
    Определение високосности года

    Определение первого дня текущего квартала

    Function FirstOfQuarter(Optional dteDate As Date) As Date
    If CLng(dteDate) = 0 Then
    dteDate = Date
    End If
    FirstOfQuarter = DateSerial(Year(dteDate), Int((Month(dteDate) - 1) / 3) * 3 + 1, 1)
    End Function

    Определение последнего дня текущего квартала

    Function LastOfQuarter(Optional dteDate As Date) As Date
    If CLng(dteDate) = 0 Then
    dteDate = Date
    End If
    LastOfQuarter = DateSerial(Year(Date), Int((Month(Date) - 1) / 3) * 3 + 4, 0)
    End Function

    Определение первого дня месяца

    Function FirstOfMonth(Optional dteDate As Date) As Date
    'если параметр dteDate = 0 то для вычисления берется текущая дата
    If CLng(dteDate) = 0 Then
    dteDate = Date
    End If
    FirstOfMonth = DateSerial(Year(dteDate), Month(dteDate), 1)
    End Function

    Определение последнего дня месяца

    Function LastOfMonth(Optional dteDate As Date) As Date
    'если параметр dteDate = 0 то для вычисления берется текущая дата
    If CLng(dteDate) = 0 Then
    dteDate = Date
    End If
    'Ищется первый день следующего месяца, и вычитается один день
    LastOfMonth = DateSerial(Year(dteDate), Month(dteDate) + 1, 1) - 1
    End Function

    Определение первого дня следующего месяца

    Function FirstOfNextMonth(Optional dteDate As Date) As Date
    If CLng(dteDate) = 0 Then
    dteDate = Date
    End If
    FirstOfNextMonth = DateSerial(Year(dteDate), Month(dteDate) + 1, 1)
    End Function

    Определение последнего дня следующего месяца

    Function LastOfNextMonth(Optional dteDate As Date) As Date
    If CLng(dteDate) = 0 Then
    dteDate = Date
    End If
    LastOfNextMonth = DateSerial(Year(dteDate), Month(dteDate) + 2, 0)
    End Function

    Определение первого дня предыдущего месяца

    Function FirstOfPreviousMonth(Optional dteDate As Date) As Date
    If CLng(dteDate) = 0 Then
    dteDate = Date
    End If
    FirstOfPreviousMonth = DateSerial(Year(dteDate), Month(dteDate) - 1, 1)
    End Function

    Определение последнего дня предыдущего месяца

    Function LastOfPreviousMonth(Optional dteDate As Date) As Date
    If CLng(dteDate) = 0 Then
    dteDate = Date
    End If
    LastOfPreviousMonth = DateSerial(Year(dteDate), Month(dteDate), 0)
    End Function

    Определение первого дня текущей недели

    Function StartOfWeek(D As Variant, Optional FirstWeekday As Integer) As Variant '
    'Пример: MsgBox StartOfWeek(Date)
    If IsMissing(FirstWeekday) Then 'Sunday is the assumed first day of week.
    StartOfWeek = D - Weekday(D) + 1
    Else
    StartOfWeek = D - Weekday(D, FirstWeekday) + 1
    End If
    End Function

    Определение последнего дня текущей недели

    Function EndOfWeek(D As Variant, Optional FirstWeekday As Integer) As Variant
    'Пример: MsgBox EndOfWeek(Date)
    If IsMissing(FirstWeekday) Then 'Sunday is the assumed first day of week.
    EndOfWeek = D - Weekday(D) + 7
    Else
    EndOfWeek = D - Weekday(D, FirstWeekday) + 7
    End If
    End Function

    Опредение номера дня в году (2 января = 2, 3 февраля = 34)

    Function DayOfYear(Optional dteDate As Date) As Long
    If CLng(dteDate) = 0 Then
    dteDate = Date
    End If
    DayOfYear = Abs(DateDiff("d", dteDate, DateSerial(Year(dteDate) - 1, 12, 31)))
    End Function

    Данная функция определяет: рабочий день или нет

    Примечание: Дни с понедельника по пятницу считаются рабочими

    Function IsWorkday(Optional dteDate As Date) As Boolean
    If CLng(dteDate) = 0 Then
    dteDate = Date
    End If
    Select Case Weekday(dteDate)
    Case vbMonday To vbFriday
    IsWorkday = True
    Case Else
    IsWorkday = False
    End Select
    End Function

    Функция возвращает последний рабочий день в текущем месяце (Понедельник-Пятница)

    Function LastBusDay(D As Variant) As Variant
    'Пример: MsgBox LastBusDay(Date)
    Dim D2 As Variant
    If VarType(D) <> 7 Then
    LastBusDay = Null
    Else
    D2 = DateSerial(Year(D), Month(D) + 1, 0)
    Do While Weekday(D2) = 1 Or Weekday(D2) = 7
    D2 = D2 - 1
    Loop
    LastBusDay = D2
    End If
    End Function

    Функция определения полных лет со дня рождения

    Function CalcAge(dteBirthdate As Date) As Long
    'В качестве параметра dteBirthdate необходимо задать дату рождения
    'Пример: MsgBox CalcAge("09/03/75")
    Dim lngAge As Long
    If Not IsDate(dteBirthdate) Then
    dteBirthdate = Date
    End If
    'Проверить, чтобы в качестве входного параметра не была задана дата в будущем
    If dteBirthdate > Date Then
    dteBirthdate = Date
    End If
    'Подсчет разницы в годях между текущей датой и датой рождения
    lngAge = DateDiff("yyyy", dteBirthdate, Date)
    'Вычитается один год, если в этом году дня рождения еще не было
    If DateSerial(Year(Date), Month(dteBirthdate), Day(dteBirthdate)) > Date Then
    lngAge = lngAge - 1
    End If
    CalcAge = lngAge
    End Function

    Вычисление разницы в годах между двумя датами

    Естественно, что значение Bdate должно быть меньше параметра DateToday

    Function Age(Bdate, DateToday) As Integer
If Month(DateToday) < Month(Bdate) Or (Month(DateToday) = Month(Bdate) And
Day(DateToday) < Day(Bdate)) Then
Age = Year(DateToday) - Year(Bdate) - 1
Else
Age = Year(DateToday) - Year(Bdate)
End If
End Function

    Определение високосности года

    Function LeapYear(YYYY As Integer) As Integer
'Функция возвращает -1, если указанный входной
параметр (год) является високосным
'Пример: MsgBox LeapYear(1996)
LeapYear = YYYY Mod 4 = 0 And (YYYY Mod 100 <> 0 Or YYYY Mod 400 = 0)
End Function

Function LeapYear2(YYYY As Integer) As Integer
'Функция возвращает -1, если указанный входной
параметр (год) является високосным
'Пример: MsgBox LeapYear(1996)
LeapYear2 = Month(DateSerial(YYYY, 2, 29)) = 2
End Function

Function IsLeapYear(DateIn As Date) As Boolean
'Функция возвращает True, если год в указанной дате
является високосным
'Проверка: MsgBox IsLeapYear("01/01/00")
If IsDate("29/02/" & Format(DateIn, "yyyy")) = True Then
IsLeapYear = True
End If
End Function

наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Автора: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Автор вопроса:     Роман

    Ответ ожидается по этому адресу

    Подскажите пожалуйсто как сделать так что при наведении курсора на кнопку, она убегала в абсолютное безразличное место?

    Автор вопроса: Роман

    Ответ ожидается по этому адресу

    У кого есть файлик Xvoice.dll или что уж очень похожее (по названию) по возможности прислать по e-mail'у!!!

    Автор вопроса: Серёга

    Ответ ожидается по этому адресу

    Подскажите пожалуйста как сделать так: когда нажимаешь на .exe файл он сам определял полный адрес папки, в которой он находится.

    Автор вопроса: SINED

    Ответ ожидается по этому адресу

    Как программно уянать имя польяователя в сети яа укаяанным компьютером?

    Автор вопроса: Sergey

    Ответ ожидается по этому адресу

    Как сделать Winsock стандартными средствами (с применением WinApi)

    Автор вопроса: Sergey

    Ответ ожидается по этому адресу

    Как сделать автозапуск с 3.5 диска (дискеты)?

    Автор вопроса: Roman

    Ответ ожидается по этому адресу

    как с помощью OLE прописать правильно таблицу в документ WinWord.

    Автор вопроса: Максим

    Ответ ожидается по этому адресу

    Пишу прогу для ведения складского уч?та в кафе. Нужно свяяать меню с калькуляционными картами(компоненты блюда) и со складом. Какие есть идеи или где можно посмотреть аналоги таких БД?

    Автор вопроса: Denis

    Ответ ожидается по этому адресу

    В своей книге (переход на ВБ.нет) г-н Эпплман мягко намекает что теоретически если CLR будет реализована в другой (не Win32) операционной системе то в принципе исходный код можно перекомпилировать для использования в этой среде.
    Понимаю что вопрос мягко говоря не серьезный но все таки сущ. ли практическая реализация сего

    Автор вопроса: Yanus

    Ответ ожидается по этому адресу

    Нодскажите, где можно скачать толковыю книгу по VBA ?

    Автор вопроса: Peter

    Ответ ожидается по этому адресу

    Работаю в VBA, как полученные данные сунуть в ячейки Excel 2002, а потом вынуть. Пришлите пример на мылои плия. Желательно в коде VBA.

    Автор вопроса: Nechaev Sergey

    Ответ ожидается по этому адресу

    Прочитал, как можно заставить модем перезванивать при низкой скорости.
    У меня же все полностью противоположно. Мне надо, чтобы модем коннектился только на 31200. Если больше, то связь очень плохая (такая, что за 10мин можно не получить не байта), а меньше смысла нет.

    Автор вопроса: IgorA

    Ответ ожидается по этому адресу

    Как сделать всплывающую подсказку (ToolTipText)в 2 и более строк?

    Ответы:

    Вопрос:

    Прочитал, как можно заставить модем перезванивать при низкой скорости.
    У меня же все полностью противоположно. Мне надо, чтобы модем коннектился только на 31200. Если больше, то связь очень плохая (такая, что за 10мин можно не получить не байта), а меньше смысла нет.

    Ответ:

    Автор ответа: Nechaev Sergey

    Прочитал, как можно заставить модем перезванивать при низкой скорости.
    У меня же все полностью противоположно. Мне надо, чтобы модем коннектился только на 31200. Если больше, то связь очень плохая (такая, что за 10мин можно не получить не байта), а меньше смысла нет.

    Вопрос:

    Как скопировать из папки все файлы одного расширения?

    Ответ:

    Автор ответа: Mind Engine

    Вот примерчик, сначала закидываются в массив все имена файлов, затем идет копир. Спросите, зачем используется Scripting, отвечу: в отличии от VB`шной FileCopy, здесь можно копирить открытые файлы, a FileCopy на таких вещах глюканет...

    Option Explicit

    Private Sub Command1_Click()

    Dim inis As String, dest As String, filnam As String, store(), i As Long, v As Long, acs

    inis = "C:\Winnt\" 'источник
    dest = "C:\Temp\" 'приемник

    filnam = Dir(inis & "*.dll") 'какие файлы копирить

    Do While filnam <> ""
    ReDim Preserve store(v)
    store(v) = filnam
    v = v + 1
    filnam = Dir
    Loop

    Set acs = CreateObject("Scripting.FileSystemObject")

    For i = LBound(store) To UBound(store)
    acs.CopyFile inis & store(i), dest, True
    Next

    End Sub

    Вопрос:

    Как скопировать из папки все файлы одного расширения?

    Ответ:

    Автор ответа: Bogdanov Alex

    Главная проблема у тебя, на сколько я понял - это получить список файлов с определенным расширением из какой-нибудь папки. Для этого надо воспользоваться функцией Dir, которая первый раз вызывается с параметром, а остальные разы без и возвращает имя файла в папке с данным расширением. Например код типа:

    FileName = Dir (FromPath & "*.exe")
    Do While FileName
    'Копируем FileName куда надо....
    CopyFile FromPath & FileName, ToPath
    FileName = Dir
    Loop

    Скопирует все EXE файлы из папки Windows в папку Folder. Надеюсь понятно.

    Вопрос:

    Скажите пожалуйста каким образом сделать переворот картинки по вертикали (горизонтали), делаю в PictureBox, верно ли?

    Ответ:

    Автор ответа: Bogdanov Alex

    Один из способов - это поворачивать изображение попиксельно ( впринципе все компоненты поступают именно этим способом), для этого лучше всего воспользоваться WinApi функциями GetPixel и SetPixel.

    Declare Function GetPixel Lib "gdi32" Alias "GetPixel" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
    Declare Function SetPixel Lib "gdi32" Alias "SetPixel" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long

    Тут в качестве hdc указываешь hdc своего Picture. Работает довольно быстро, но для больших изображений негодится.

    P.S. Если сам рисуешь на Picture (не картинку грузишь), то не забудь установить свойство AutoRedraw = True

    Вопрос:

    Как на VB 6.0 под Windows 98/XP сделать так, чтобы программа добавляла сама себя в реестр или в автозагрузку?

    Ответ:

    Автор ответа: Bogdanov Alex

    В чем именно проблема? Ты не знаешь функций по работе с реестром или конкретно название секции для автозагрузки?
    1. Если первое, то читай исходники VB Wizard'а. Там даны WinApi функции, которые это делают. Сам-то VB стандартными средствами не может писать данные в реестре абы куда, а только в свой раздел реестра.
    2. Если же второе, то тебе нужна секция:
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

    Вопрос:

    Пишу одну программу, что то вроде "удаленного администратора" так вот необходимо чтоб прога на компе пользователя, по команде по сети, замораживала комп. а потом опять размораживала. Причем нужно чтоб работало и в играх. (Просто нужно в игровом салоне. заплатил например за час, час работает потом бац все зависло.) Это можно сделать?

    Ответ:

    Автор ответа: Bogdanov Alex

    Интересная задачка!
    Очень даже может быть.
    Но для этого тебе придется написать две проги одну клиент, другую сервер. Все это достаточно легко реализовать, если ты когда-нибудь что-нибудь писал для сети. Если не писал, то скажу, что надо воспользоваться WinSock Control'ом. Описаний по нему в сети я видел немало, но если что пиши - кину. Вопрос в другом. Как именно должен "виснуть" комп. Если просто вырубаться, то это очень просто - есть:

    Function ExitWindowsEx Lib "user32" Alias "ExitWindowsEx" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long

    Завершает работу с Windows.

    Параметры
    :
    uFlags - Может принимать следующие значения:
    Константа
    Значение Действие
    EWX_LOGOFF 0 Войти в систему под другим именем
    EWX_SHUTDOWN 1 Завершить работу Windows и подготовить систему к выключению питания.
    EWX_REBOOT 2 Перезагрузить компьютер.
    EWX_FORCE 4 Аварийно завершить все процессы при завершении работы Windows.

    Если сильно притормозить комп - то можно назначить своему процессу наивысший приоритет Windows и выполнить что-нибудь типа

    Do
    Loop

    Короче об этом надо бы поподробнее...

    Вопрос:

    Программа пишет некие файлы на дискету. Если дискета не очеть хорошая - выдается синий экран типа "Невозможно произвести запись на диск А: Данные могу бить утеряны. Нажмите какую-то кнопку". Как в VB перехватить эту ошибку или избежать ее.

    Ответ:

    Автор ответа: Bogdanov Alex

    Напиши код типа:

    Sub Copy2Flopy (FileName)
    On Local Error Goto ErrFlp
    ...
    'Тут код копирования
    ...
    Exit Sub
    ErrFlp:
    'В случае ошибки управление перейдет именно на эту метку!
    MsgBox "При копировании файла возникла ошибка " & Err
    Resume Next
    End Sub

    Вопрос:

    Как растянуть текст в графическом окне PictureBox, если текст периодически меняется и следовательно получается разного размера. Или хотя бы подогнать размеры окна под текст.

    Ответ:

    Автор ответа: Shade

    попробуй использовать функции

    THeight= PictureBox.TextHeight (YourText as String)
    TWidth = PictureBox.TextWidth (YourText as String)

    и на основе полученных значений ты сможешь подогнать окно PictureBox'а

    Вопрос:

    Как добавить программно форму одинаковую даной

    Ответ:

    Автор ответа: Dima

    В проекте есть форма Form1

    Dim x As Form1
    Set x = New Form1
    x.Show

    Вопрос:

    Как добавить программно форму одинаковую даной

    Ответ:

    Автор ответа: Nechaev Sergey

    dim MyNewForm as Form1
    set MyNewForm=new Form1
    mynewform.show

    создает новую копию формы Form1 и отображает ее на экране.

    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили:


Выпуск 100.

VBNet
  • Контролы
  • Примеры
  • Хитрости
  • Полезные программы
  • Книги
  • Форум
VBMania
  • VB-Новости
  • Спец-цех
  • Технологии
  • ActiveX
  • Исходники
  • Человечество
  • Профессия
  • Юмор
Голосование:

Покупали ли Вы CD или книги с сайта VBNet.Ru?

Да, конечно
Только книги
Только диски
Просто игнорирую

Рассылки Subscribe.Ru
VB.NET-World

Рассылки Subscribe.Ru
Старые игры
Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Kirill
Sergey Sapozhnikov
Sobic
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • Snoozex Design
  • IgorykSoft
            • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

    Сегодня юбилейный сотый выпуск рассылки! У кого есть пиво, шлите по адресу pavel@vbnet.ru :-))). Нового практически ничего нет... Появилось обещанное голосование.
    Раздел Вопрос/Ответ сгодня будет пуст (небольшие проблемы с обслуживающим его софтом). Так что ждите пятницы.
    Читайте!

    Содержание выпуска
    • Книги

    • Citycat by Email

    • Новости сайта VBNet
    • Новости сайта VBMania
    • Новости сайта Азбука VB

    • Доска объявлений

    • Вопрос/Ответ

    Книги

    Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)

    Эта книга была задумана как одна из первых книг о.NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
    Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.

    Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)

    Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере пользоваться всеми преимуществами VB .NET.
    Изложены азы всех аспектов языка, которыми должен владеть любой профессиональный разработчик VB .NET
    Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.

    VB.NET для разработчиков (цена ~ 125 руб.)

    Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework, также найдут эту книгу полезной. Хотя книга посвящена Visual Basic.NET, ее основная цель - продемонстрировать взаимодействие Visual Basic и ...
    Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.

    Остальные книги о VB можно найти     здесь.

    наверх

    Citycat by Email

    Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
    Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх

    Новости сайта VBNet

    Дата: 08.10.2002 05:50 | Раздел: Примеры кода | Автор: Чуприна Андрей

    DirectSound Player - Пример использования средств DirectSound в VB. С его помощью можно проигрывать WAV - файлы, изменяя скорость воспроизведения, громкость, баланс между левым и правым каналами, позицию воспроизведения.

    Дата: 08.10.2002 05:31 | Раздел: Статьи по VB | Автор: AntiLoop

    Основы DirectDraw <Вторая редакция> - Это - вторая редакция моего учебника по DirectDraw, написанная только благодаря стараниям некой малоизвестной осиротевшей и полуразвалившейся корпорации Microsoft.

    Дата: 08.10.2002 05:29 | Раздел: Примеры кода | Автор: Чуприна Андрей

    DirectSound Player - Пример использования средств DirectSound в VB. С его помощью можно проигрывать WAV - файлы, изменяя скорость воспроизведения, громкость, баланс между левым и правым каналами, позицию воспроизведения.

    Последние 20 тем форума на VBNet.Ru:

    03:43 / 14 окт. проблемы с фильтром в ADO.RecordSet'e | Хитов: 2 | Ответов: 0
    19:37 / 13 окт. 13.10.02 | Хитов: 12 | Ответов: 0
    17:32 / 13 окт. Оффтопик | Хитов: 11 | Ответов: 0
    16:10 / 13 окт. SPECIAL FOR MAGNUS!!!!! | Хитов: 10 | Ответов: 2
    15:56 / 13 окт. Label - Visual Basic .NET | Хитов: 3 | Ответов: 0
    14:09 / 13 окт. Формы в VB.NET | Хитов: 7 | Ответов: 1
    06:25 / 13 окт. Toolbar | Хитов: 9 | Ответов: 0
    17:39 / 12 окт. Janus GridEX | Хитов: 4 | Ответов: 0
    16:33 / 12 окт. iMac G3 | Хитов: 4 | Ответов: 0
    12:53 / 12 окт. Остаются "хвосты" в MDB-базе :((( | Хитов: 13 | Ответов: 0
    20:27 / 11 окт. Изменение разрешения | Хитов: 35 | Ответов: 7
    17:17 / 11 окт. Net send в 2k/XP | Хитов: 18 | Ответов: 5
    16:08 / 11 окт. Вызов процедур и функций MS SQL2000 средствами ... | Хитов: 5 | Ответов: 0
    16:06 / 11 окт. Новое сообщение без темы | Хитов: 11 | Ответов: 0
    16:05 / 11 окт. Печать | Хитов: 7 | Ответов: 1
    14:26 / 11 окт. Клиент/сервер | Хитов: 27 | Ответов: 1
    13:33 / 11 окт. Как вытенуть иконку из файла | Хитов: 17 | Ответов: 3
    12:31 / 11 окт. Как сослаться на переменную из другой формы? | Хитов: 19 | Ответов: 2
    09:52 / 11 окт. GRID-элементы | Хитов: 11 | Ответов: 0
    20:16 / 10 окт. Poewr Basic 7 | Хитов: 50 | Ответов: 8

    Последние поступления в Библиотеку кодов:

    наверх

    Новости сайта VBMania

    наверх

    Новости сайта Азбука VB

    наверх

    Доска объявлений

    Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Мои программы

    BalloonMessage for MS Agent

    BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Авторы: Шатрыкин Иван и Павел Сурменок.
    Подробнее...

    наверх
    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Нет вопросов.

    Ответы:

    Нет ответов.
    Можете заполнить эту форму, либо отослать вопрос     СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх

    Выпуск подготовили: