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


VBNet VBMania
Голосование:

Ваш голос отсылается по 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
  • Господа!!! читайте MSDN!!!

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

       По-прежнему "висит" раздел Книги. Больше ничего нового не произошло.
    Читайте!


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




    Книги

    Занимательное программирование. Visual Basic

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


    Автор: Симонович С, Евсеев Г
    Издательство: АСТ-Пресс, Инфорком - Пресс
    Год издания: 2001
    Кол-во страниц: 320
    Стоимость: 61 р.
    Формат: 60x90/16
    Переплёт: твёрдый

    Информатика в задачах, примерах, алгоритмах/Visual Basic for Application

    Настоящий сборник задач представляет собой практическое пособие для учащихся средних и высших учебных заведений, изучающих информатику. Особенность сборника в том, что он позволяет научиться создавать собственные алгоритмы решения задач, а также дает возможность преподавателю информатики в процессе обучения использовать индивидуальный подход к ученикам без дополнительных затрат времени. Автор сознательно приводит в качестве ответов только численные значения, так как существует множество алгоритмов решения каждой задачи. Читатель может использовать в процессе работы с задачником любые языки программирования. В частности, решение задач из сборника поможет приобрести практические навыки написания макросов в приложениях Microsoft Office на языке Visual Basic Application.


    Автор: Алиев В
    Издательство: Солон - Р
    Год издания: 2001
    Кол-во страниц: 144
    Стоимость: 41 р.
    Формат: 60x88/16
    Переплёт: мягкий

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

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


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

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

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


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

    Практика программирования: Бейсик, Си, Паскаль (+ дискета). Самоучитель

    Содержится более 130 готовых к исполнению программ, большинство из которых представлено на трех алгоритмических языках - Бейсике, Си и Паскале. Все разделы предваряются описанием соответствующих конструкций каждого алгоритмического языка. При этом особое внимание обращается на общность языковых средств рассматриваемых систем программирования - QBasic, Turbo С (Borland C++) и Turbo Pascal. Текстам программ предшествуют советы по их разработке с учетом специфики того или иного алгоритмического языка и описание наиболее характерных особенностей.


    Автор: Кетков Александр, Кетков Юлий
    Издательство: БХВ - Петербург
    Год издания: 2001
    Кол-во страниц: 480
    Стоимость: 131 р.
    Формат: 70x100/16
    Переплёт: мягкий


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

    наверх


    Изменить дату последней модификации файла

    Расположите на форме элемент CommandButton. Замените путь к файлу "C:\1.txt" на путь к вашему файлу. В Проводнике нажмите правой клавишей мыши на вашем файле и посмотрите дату, когда файл был "Изменен:". Запустие нижеприведенный код на выполнение и снова посмотрите на дату изменения файла.

    Option Explicit
    Private Type FILETIME
    dwLowDate As Long
    dwHighDate As Long
    End Type
    Private Type SYSTEMTIME
    wYear As Integer
    wMonth As Integer
    wDayOfWeek As Integer
    wDay As Integer
    wHour As Integer
    wMinute As Integer
    wSecond As Integer
    wMillisecs As Integer
    End Type
    Private Const OPEN_EXISTING = 3
    Private Const FILE_SHARE_READ = &H1
    Private Const FILE_SHARE_WRITE = &H2
    Private Const GENERIC_WRITE = &H40000000
    Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, _
    ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
    Private Declare Function LocalFileTimeToFileTime Lib "kernel32" (lpLocalFileTime As FILETIME, lpFileTime As FILETIME) As Long
    Private Declare Function SetFileTime Lib "kernel32" (ByVal hFile As Long, ByVal MullP As Long, ByVal NullP2 As Long, lpLastWriteTime As FILETIME) As Long
    Private Declare Function SystemTimeToFileTime Lib "kernel32" (lpSystemTime As SYSTEMTIME, lpFileTime As FILETIME) As Long
    Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
    Public Function SetFileDateTime(ByVal FileName As String, ByVal TheDate As String) As Boolean
    'параметры: TheDate - дата последней модификации файла
    'FileName - имя файла
    'функция возвращает: True в случае успеха, False - в обратном случае
    If Dir(FileName) = "" Then Exit Function
    If Not IsDate(TheDate) Then Exit Function
    Dim lFileHnd As Long
    Dim lRet As Long
    Dim typFileTime As FILETIME
    Dim typLocalTime As FILETIME
    Dim typSystemTime As SYSTEMTIME
    With typSystemTime
    .wYear = Year(TheDate)
    .wMonth = Month(TheDate)
    .wDay = Day(TheDate)
    .wDayOfWeek = Weekday(TheDate) - 1
    .wHour = Hour(TheDate)
    .wMinute = Minute(TheDate)
    .wSecond = Second(TheDate)
    End With
    lRet = SystemTimeToFileTime(typSystemTime, typLocalTime)
    lRet = LocalFileTimeToFileTime(typLocalTime, typFileTime)
    lFileHnd = CreateFile(FileName, GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_EXISTING, 0, 0)
    lRet = SetFileTime(lFileHnd, ByVal 0&, ByVal 0&, typFileTime)
    CloseHandle lFileHnd
    SetFileDateTime = lRet > 0
    End Function

    Private Sub Command1_Click()
    Dim a As Boolean
    a = SetFileDateTime("c:\1.txt", Now)
    'или: Call SetFileDateTime("c:\1.txt", "21/01/1998")
    End Sub

    наверх


    Изменение расширений всех файлов в папке

    Прежде всего установите ссылку на Microsoft Scripting Runtime через меню Project | References.
    Вызов функции прост: ChangeExtension "путь к папке", "новое_расширение_файла", ""
    Пример: ChangeExtension "D:\1\2", "htm", ""
    В данном примере используются
    функции определения имени файла с расширением и без.

    Public Function ChangeExtension(ByVal FolderName As String, ByVal NewExtension As String, OldExtension As String) As Boolean
    Dim oFso As New FileSystemObject
    Dim oFolder As Folder
    Dim oFile As File
    Dim sOldName As String
    Dim sNewName As String
    Dim iCtr As Long
    Dim iDotPosition As Integer
    Dim sWithoutExt As String
    Dim sFolderName As String
    sFolderName = FolderName
    If Right(sFolderName, 1) <> "\" Then sFolderName = sFolderName & "\"
    Set oFolder = oFso.GetFolder(FolderName)
    'перебор каждого файла в указанной папке
    For Each oFile In oFolder.Files
    sOldName = sFolderName & oFile.Name 'старый путь/имя файла
    sNewName = sFolderName & Spliting1(Spliting(oFile.Name, "\"), ".") & "." & NewExtension 'новое имя файла
    'файл с новым именем уже может существовать
    On Error Resume Next
    Name sOldName As sNewName
    Err.Clear
    On Error GoTo ErrorHandler
    Next
    ChangeExtension = True
    ErrorHandler:
    Set oFile = Nothing
    Set oFolder = Nothing
    Set oFso = Nothing
    End Function

    'функция Spliting определяет полное имя файла
    'функция Spliting1 определяет только имя файла
    Private Function Spliting(sFullPath As String, point As String)
    Dim str1() As String
    str1 = Split(sFullPath, point)
    Spliting = str1(UBound(str1))
    End Function
    Private Function Spliting1(sFullPath As String, point As String)
    Dim str1() As String
    str1 = Split(sFullPath, point)
    Spliting1 = str1(0)
    End Function

    Private Sub Command1_Click()
    'ChangeExtension "D:\1\2", "htm", "txt"
    ChangeExtension "D:\1\2", "htm", ""
    End Sub

    наверх


    Получить DOS-имя файла

    Функция GetShortName в качестве входного параметра принимает длинное имя файла и возвращает DOS-имя файла

    Private Declare Function GetShortPathName Lib "kernel32.dll" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
    Private Function GetShortName(lName As String) As String
    Dim DosName As String
    Dim LenOfDosName As Long
    DosName = Space(256)
    LenOfDosName = GetShortPathName(lName, DosName, 256)
    GetShortName = Left$(DosName, LenOfDosName)
    End Function

    Private Sub Form_Load()
    Dim LongName As String
    LongName = "C:\Program Files\Internet Explorer\Iexplore.exe"
    MsgBox GetShortName(LongName)
    End Sub

    наверх


    Конвертация размера файла (байты в кило-, мегабайты)

    Очень хороший пример при работе с текстовыми файлами. При загрузке файла вы передаете в функцию полное имя файла и получаете "удобоваримое" обозначение размера файла. В данном примере ссылка на файл уже расположена в функции.

    Dim FileSize1 As String
    Dim FileSize2 As String
    Private Function FileSize()
    Static xx
    FileSize1 = FileLen("C:\Мои документы\courier.txt")
    xx = FileSize1 / 1024
    If Len(FileSize1) >= 7 Then
    FileSize2 = Format((xx / 1024), "0.00")
    FileSize2 = FileSize2 & " MB"
    ElseIf Len(FileSize1) >= 4 Then
    xx = Format((FileSize1 / 1024), "0.00")
    FileSize2 = xx & " K"
    Else
    FileSize2 = FileSize1 & " Bytes"
    End If
    Print "File: " & "C:\Мои документы\courier.txt " & vbCrLf & "Old Size: "; FileSize1 & vbCrLf & "New Size: " & FileSize2
    Me.Caption = "C:\Мои документы\courier.txt " & " - Size: " & FileSize2
    End Function

    Private Sub Command1_Click()
    Call FileSize
    End Sub

    наверх


    Создание индекса htm-файлов

    Данный пример позволяет создать в одном htm-файле ссылки на все htm-файлы, находящиеся в одной директории

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

    Option Explicit
    Dim h, h1 As Integer

    Private Sub Command1_Click()
    StartIndex ("D:\vbcode") 'путь к папке индексации файлов
    End Sub

    Public Function StartIndex(fPath As String)
    h = 0
    On Error GoTo ErrorHandler
    File1.Path = fPath
    Dim FileName As String 'имя файла для индекса
    FileName = fPath & "\sharig.htm"
    Dim fr
    fr = FreeFile()

    Open FileName For Output As #fr
    Print #fr, "<html>"
    Print #fr, "<head>"
    Print #fr, "<title>Индексация файлов</title>"
    Print #fr, "</head>"
    Print #fr, "<body>"
    Dim i As Integer
    For i = 0 To File1.ListCount - 1
    On Error Resume Next
    Dim FNum As Integer
    Dim txt As String
    FNum = FreeFile
    Open fPath & "\" & File1.List(i) For Input As #FNum
    txt = Input(LOF(FNum), #FNum)
    Close #FNum
    Dim s() As String
    Dim s1 As String
    s = Split(txt, vbCrLf)
    Dim d As Integer
    d = 0
    For h = 0 To UBound(s)
    d = InStr(1, s(h), "<title>")
    If d <> 0 Then Exit For
    Next
    If d = 0 Then
    MsgBox "У файла --" & File1.List(i) & "-- нет заголовка"
    h = 1: s(h) = "<title>" & "Временный заголовок" & "</title>": d = 1
    End If
    s1 = Mid(s(h), d + 7)
    h = InStr(1, s1, "</title>")
    s1 = Mid(s1, 1, h - 1)
    Print #fr, "<p>" & "<a href=" & Chr(34) & File1.List(i) & Chr(34) & ">" & s1 & "</a></p>"
    Next
    Print #fr, "</body>"
    Print #fr, "</html>"
    Close #fr
    StartIndex = FileName
    Exit Function

    ErrorHandler:
    MsgBox FileName, , "Имя файла"
    End Function

    Public Function Splitting(s As String, s1 As String)
    Dim ass() As String
    Dim as1 As String
    as1 = s
    ass = Split(as1, s1)
    Splitting = ass(1)
    End Function

    наверх


    Получить атрибуты файла (GetFileAttributes)

    Получение атрибутов файла с помощью API-функции GetFileAttributes

    Const READONLY = &H1
    Const HIDDEN = &H2
    Const SYSTEM = &H4
    Const DIRECTORY = &H10
    Const ARCHIVE = &H20
    Const NORMAL = &H80
    Const COMPRESSED = &H800
    Private Declare Function GetFileAttributes Lib "kernel32.dll" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long

    Private Sub Command1_Click()
    Dim val As String
    Dim attr As Long
    attr = GetFileAttributes("C:\MSDOS.SYS")
    If (attr And &H1) = &H1 Then
    val = " 'Только для чтения',"
    End If
    If (attr And &H2) = &H2 Then
    val = val & " 'Скрытый',"
    End If
    If (attr And &H4) = &H4 Then
    val = val & " 'Системный',"
    End If
    If (attr And &H20) = &H20 Then
    val = val & " 'Архивный',"
    End If
    If (attr And &H80) = &H80 Then
    val = val & " 'Нормальный',"
    End If
    If (attr And &H800) = &H800 Then
    val = val & " 'Компрессированный',"
    End If
    val = Left(val, Len(val) - 1)
    If (attr And &H10) = &H10 Then
    MsgBox "Данная папка имеет атрибуты " & val
    Else
    MsgBox "Данный файл имеет атрибуты " & val
    End If
    End
    End Sub

    наверх


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

    BalloonMessage for MS Agent

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

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

    наверх


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

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

    Вопросы:


    Автор вопроса:
    Владимир Капустин

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

       Раз уж в прошлом номере вообще не было вопросов, то рискну задать несколько вопросов по VB3.
      
    1. Как различить и закрыть приложение MS DOS в Win 3.
    2. Как найти путь(приложения) или значок окна, зная его ручку (hWnd).


    Автор вопроса: Игорь Куз

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

       Как на форме VB6 создать подчинённую форму для отображения данных из таблицы связанной с главной отношением "один-ко-многим"? (Наподобие подчинённой формы в ACCESS)


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

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

       Что бы послать почту с моей Form пишу:

    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 Declare Function GetDesktopWindow Lib "user32" () As Long

    Private Sub Label1_Click()
    'Выяываем маил с адресом
    Call ShellExecute(0&, "Open", "mailto:" + "ЛОГИН@СЕРВЕР.ru" + "?Subject=" + "'Здесь описана тема...'" + "?body=" + "'Сдесь
    нужно написать сообщение'", "", "", SW_SHOWNORMAL)
    End Sub

    Но в почтовой программе текст 'Сдесь нужно написать сообщение' выводится там где вводится тема. Помогите сделать так чтобы в текстовом поле ияображалать текст


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

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

       Как уянать какая клавеша нажата если forma не активна. Например: в каком либо редакторе нажимается какая либо кнопка а Forma обрабатывает это нажатие


    Автор вопроса: Сергей Кузичев

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

       Есть форма с MSHFlexGrid к которой подсоединен рекордсет с иерархическим рекордсетом. Как сделать так, чтобы при открытии формы FlexGrid покаяывал подчиненный рекордсет в свернутом виде.


    Автор вопроса: Мунгалов АВ

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

       Если на VB написать прогу и записать на болванку, чтобы она запускалась при запуске сидюка. Понятно в основном. так а если на машине не библиотек VB она же не запуститься? проверку можно сделать и если нет библиотек, то их копирнуть тут же. во как завернул?


    Автор вопроса: Сергей Копистинский

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

       Как, например, по нажатии кнопки, запускался файл .mp3


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

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

       Как на VB программно соединиться с базой ORACLE?
    Я попытался это сделать, но в DataGrid отображаются только заголовки полей...


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

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

       Как сохранить картинку в JPG или GIF ?


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

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

       Подскажите пожалуйста как использовать ресурсы (диалоги, строки, графику и т.д.) DLL файлов. И где можно найти статью как писать DLL'ы на VB.


    Автор вопроса: Koksu RUT

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

       Как зделать так, что бы при клике по записи во флексгриде запись отображалась в тектовом поле?




    Ответы:


    Вопрос:

       У меня 2 вопроса:
    1.Подскажите, как на VB определить папку(путь), где стоит система?
    2.Можно ли на VB отключать яаставку Windows в свойствах экрана?

    Ответ:

    Автор ответа: K. Igor

    Пример показывает как при помощи использования функции API GetSystemDirectory получить имя системного каталога Windows.

    Текст:

    Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
      
    Function GetSysDir() As String
      
    Dim strBuffer As String
    Dim ret As Long
      
    strBuffer = Space$(1024)
    ret = GetSystemDirectory(strBuffer, 1024)
    GetSysDir = Trim$(Left$(strBuffer, ret))
      
    End Function


    Вопрос:

       У меня 2 вопроса:
    1.Подскажите, как на VB определить папку(путь), где стоит система?
    2.Можно ли на VB отключать яаставку Windows в свойствах экрана?

    Ответ:

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

    1.
    Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
    'Получение директории C:\WINDOWS\SYSTEM
      
    Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
    'Директория "C:\WINDOWS"
    Private Function GetSysDir() As String
         Dim szBuffer As String * 50
         Dim lngRet As Long
         
         lngRet = GetSystemDirectory(szBuffer, 50)
         GetSysDir = Left$(szBuffer, lngRet)
         If Right(GetSysDir, 1) <> "\" Then GetSysDir = GetSysDir & "\"
    End Function
      
    Private Function GetWinDir() As String
         Dim szBuffer As String * 50
         Dim lngRet As Long
         
         lngRet = GetWindowsDirectory(szBuffer, 50)
         GetWinDir = Left$(szBuffer, lngRet)
         If Right(GetWinDir, 1) <> "\" Then GetWinDir = GetWinDir & "\"
    End Function
      
    'Использование
    Private Sub Form_Load()
          MsgBox GetWinDir
          MsgBox GetSysDir
    End Sub
      
    или объединяем наши 2 функции:
      
    Private Function GetDirectory(szDirName As String) As String
         Dim szBuffer As String * 50
         Dim lngRet As Long
         
         If LCase(szDirName) = "sys" then
            lngRet = GetSystemDirectory(szBuffer, 50)
         ElseIf LCase(szDirName) = "win" then
            lngRet = GetWindowsDirectory(szBuffer, 50)
         End If
         GetDirectory = Left$(szBuffer, lngRet)
         If Right(GetDirectory, 1) <> "\" Then GetDirectory = GetDirectory & "\"
    End Function
      
    'Использование
    Private Sub Form_Load()
          MsgBox GetDirectory("win")
          MsgBox GetDirectory("sys")
    End Sub
      
      
    2.
    Можно, в файле System.ini, который храниться в каталоге WINDOWS есть ссылка на имя текущей заставки и если её удалить, то и заставки не будет.
    Сделать это можно так:
      
    Private Sub SwitchOffScreenSaver()
         Dim FileNoRd As Integer
         Dim FileNoWr As Integer
         Dim WinDir As String
         Dim szData As String
         Dim szExample As String
                 
         szExample = "SCRNSAVE.EXE"
         WinDir = GetWinDir 'Используем нашу новую функцию для получения каталога Windows (см. выше)
         FileNoWr = FreeFile 'Получаем свободный номер для записи
         'открываем временный файл для построчного сохранения данных.
         Open "C:\mytemp.tmp" For Output As #FileNoWr
            FileNoRd = FreeFile 'Получаем свободный номер для чтения
            'открываем рабочий файл для анализа и изменения
            Open WinDir & "System.ini" For Input As #FileNoRd
               Do Until EOF(FileNoRd)
                  Line Input #FileNoRd, szData
                  'Если мы находим в файле наш пример и его длина совпадает,
                  If Mid(szData, 1, Len(szExample)) = szExample Then
                     'то очищаем значения найденной строки для _
                      отключения заставки.
                     szData = szExample & "="
                  End If
                  Print #FileNoWr, szData
               Loop
         Close 'Закрываем все открытые файлы
         'Копируем новые данные из временного файла в System.ini
         FileCopy "C:\mytemp.tmp", WinDir & "System.ini"
         Kill "C:\mytemp.tmp" 'Удаляем временный файл
    End Sub


    Вопрос:

       Подскажите, как засунуть картинки в DLL и как с ними потом работать (т.е.выдёргивать из этой же DLL-ки).

    Ответ:

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

    В начале заходим в меню Add-Ins, затем Add-In Meneger... .Там находим строчку Visual Basic 6 Resource Editor и справа от описания есть флажки, устанавливаем Loaded/Unloaded и Load on StartUp. На стандартной панели инструментов должнен появиться VB Resource Editor. Запускаем и добовляем всё что душе угодно. Всё наши картинки там.
      
    Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long
    Private Declare Function ExtractIconEx Lib "shell32.dll" Alias "ExtractIconExA" (ByVal lpszFile As String, ByVal nIconIndex As Long, phiconLarge As Long, phiconSmall As Long, ByVal nIcons As Long) As Long
      
    Private Sub Command1_Click()
         Dim hIcon As Long
         
         ExtractIconEx "C:\my.dll", 0, hIcon, 0, 1
         DrawIcon Form1.hdc, 0, 0, hIcon
    End Sub
      
    У формы свойство ScaleMode должно быть 3 - Pixel


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

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

    наверх


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

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