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


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

Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом.



Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.

Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • Snoozex Design
  • IgorykSoft
  • DanSoft
  • Господа!!! читайте 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 PictureBox и 1 CommandButton.

    Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc 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 nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
    Const SRCCOPY = &HCC0020

    Private Sub ImgResize(src As PictureBox, TmpPic As PictureBox, mWidth As Long, mHeight As Long)
    src.AutoRedraw = False
    TmpPic.AutoRedraw = True
    TmpPic.Height = mHeight 'установка размеров невидимого picturebox
    TmpPic.Width = mWidth
    StretchBlt TmpPic.hdc, 0, 0, mWidth, mHeight, src.hdc, 0, 0, src.Width, src.Height, SRCCOPY
    'сохранить временной файл на диске
    SavePicture TmpPic.Image, App.Path + "\tempimg.bmp"
    'перезагрузить оригинальный picturebox
    src.AutoSize = True
    src.Picture = LoadPicture(App.Path + "\tempimg.bmp")
    'удалить временной файл
    Kill App.Path + "\tempimg.bmp"
    'очистить невидимый picturebox
    TmpPic.Picture = LoadPicture()
    'пример для вызова функции
    'ImgResize Picture1, Picture2, Picture1.Width / 2, Picture1.Height / 2
    End Sub
    Private Sub Command1_Click()
    ImgResize Picture1, Picture2, Picture1.Width / 2, Picture1.Height / 2
    End Sub
    Private Sub Form_Load()
    Picture2.Visible = False
    End Sub

    наверх


    Скопировать содержимое PictureBox в буфер обмена

    Интересный пример, правда не до конца понятый мною.

    Расположите на форме элемент PictureBox и элемент CommandButton. Запустите проект, нажмите на кнопку. Затем откройте приложение Paint и нажмите сочетание клавиш Ctrl + V.

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

    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 Const SRCCOPY = &HCC0020
    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 SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
    Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
    Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function CloseClipboard Lib "user32" () As Long
    Private Declare Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long) As Long
    Private Declare Function GetClipboardFormatName Lib "user32" Alias "GetClipboardFormatNameA" (ByVal wFormat As Long, ByVal lpString As String, ByVal nMaxCount As Long) As Long
    Private Declare Function EmptyClipboard Lib "user32" () As Long
    Private Declare Function CountClipboardFormats Lib "user32" () As Long
    Private Declare Function EnumClipboardFormats Lib "user32" (ByVal wFormat As Long) As Long
    Private Declare Function IsClipboardFormatAvailable Lib "user32" (ByVal wFormat As Long) As Long
    Private Declare Function RegisterClipboardFormat Lib "user32" Alias "RegisterClipboardFormatA" (ByVal lpString As String) As Long
    Private Declare Function GetClipboardData Lib "user32" (ByVal wFormat As Long) As Long
    Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As Long
    Private Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As Long) As Long
    Private Declare Function GlobalSize Lib "kernel32" (ByVal hMem As Long) As Long
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (lpvDest As Any, lpvSource As Any, ByVal cbCopy As Long)

    Public Enum EPredefinedClipboardFormatConstants
    [_First] = 1
    CF_TEXT = 1
    CF_BITMAP = 2
    CF_METAFILEPICT = 3
    CF_SYLK = 4
    CF_DIF = 5
    CF_TIFF = 6
    CF_OEMTEXT = 7
    CF_DIB = 8
    CF_PALETTE = 9
    CF_PENDATA = 10
    CF_RIFF = 11
    CF_WAVE = 12
    CF_UNICODETEXT = 13
    CF_ENHMETAFILE = 14
    CF_HDROP = 15
    CF_LOCALE = 16
    CF_MAX = 17
    [_Last] = 17
    End Enum

    Public Function CopyEntirePictureToClipboard(ByRef objFrom As Object) As Boolean
    Dim lhDC As Long
    Dim lhBmp As Long
    Dim lhBmpOld As Long
    lhDC = CreateCompatibleDC(objFrom.hdc)
    If (lhDC <> 0) Then
    lhBmp = CreateCompatibleBitmap(objFrom.hdc, objFrom.ScaleWidth \ Screen.TwipsPerPixelX, objFrom.ScaleHeight \ Screen.TwipsPerPixelY)
    If (lhBmp <> 0) Then
    lhBmpOld = SelectObject(lhDC, lhBmp)
    BitBlt lhDC, 0, 0, objFrom.ScaleWidth \ Screen.TwipsPerPixelX, objFrom.ScaleHeight \ Screen.TwipsPerPixelY, objFrom.hdc, 0, 0, SRCCOPY
    SelectObject lhDC, lhBmpOld
    EmptyClipboard
    OpenClipboard 0
    SetClipboardData CF_BITMAP, lhBmp
    CloseClipboard
    End If
    DeleteObject lhDC
    CopyEntirePictureToClipboard = True
    Else
    CopyEntirePictureToClipboard = False
    End If
    End Function

    Private Sub Command1_Click()
    Call CopyEntirePictureToClipboard(Picture1)
    End Sub

    наверх


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

    Данный пример позволяет узнать такие параметры файла рисунка в формате GIF или JPG как: тип картинки, размер по ширине и размер по высоте

    Private Type ThePicInfo
    Type As String
    Width As Long
    Height As Long
    End Type

    Private Function CheckPicSpecs(TheFile) As ThePicInfo
    Dim TheContent, TheImageInfo As ThePicInfo, TheVar, TheFreeFile
    TheFreeFile = FreeFile
    Open TheFile For Binary As TheFreeFile
    TheContent = Input(10, TheFreeFile)
    Close TheFreeFile
    If Mid(TheContent, 7, 4) = "JFIF" Then
    TheImageInfo.Type = "JPG"
    Open TheFile For Binary As TheFreeFile
    TheContent = Input(167, TheFreeFile)
    Close TheFreeFile
    TheImageInfo.Height = Asc(Mid(TheContent, 165, 1)) + 256 * Asc(Mid(TheContent, 164, 1))
    TheImageInfo.Width = Asc(Mid(TheContent, 167, 1)) + 256 * Asc(Mid(TheContent, 166, 1))
    End If
    If Mid(TheContent, 1, 3) = "GIF" Then
    TheImageInfo.Type = "GIF"
    TheImageInfo.Width = Asc(Mid(TheContent, 7, 1)) + 256 * Asc(Mid(TheContent, 8, 1))
    TheImageInfo.Height = Asc(Mid(TheContent, 9, 1)) + 256 * Asc(Mid(TheContent, 10, 1))
    End If
    CheckPicSpecs = TheImageInfo
    End Function

    Private Sub Command1_Click()
    Dim a As ThePicInfo
    'в качестве параметра функции CheckPicSpecs установите путь к вашей картинке
    a = CheckPicSpecs("D:\garbage\way2house.gif")
    MsgBox a.Type
    MsgBox a.Width
    MsgBox a.Height
    End Sub

    наверх


    CommonDialog: Выбор нескольких файлов для открытия

    Некоторое время назад я натолкнулся на одном из сайтов на вопрос: "А как мне с помощью CommonDialog выбрать несколько файлов для открытия". Ответ кроется в устанавливаемом флажке cdlOFNAllowMultiselect. Подробности? Пожалуйста. Скопирова код, запустите программу на выполнение. Нажмите на кнопку, выберите несколько файлов, нажмите "Открыть". Вы получите строку, содержащую полный путь к отрываемой папке, а также разделенные пробелами список файлов для открытия. Вам останется только разделить полученную строку на отдельные элементы. Я могу это сделать, а Вы?

    Private Sub ShowOpen()
    On Error GoTo ErrorHandler
    CommonDialog1.CancelError = True
    CommonDialog1.Filter = "All Files (*.*)|*.*|Word Documents (*.doc )|*.doc |Text Files (*.txt)|*.txt|"
    CommonDialog1.FilterIndex = 3
    CommonDialog1.InitDir = "D:\DOCUMENTS"
    CommonDialog1.Flags = cdlOFNFileMustExist Or cdlOFNAllowMultiselect
    CommonDialog1.Action = 1 'Или же CommonDialog1.ShowOpen
    '***********
    'Здесь распологается Ваш код (не забудьте, что путь к выбранному файлу Вы считываете из свойства FileName)
    MsgBox CommonDialog1.FileName
    '**********
    Exit Sub
    ErrorHandler:
    If Err.Number = 32755 Then Exit Sub
    End Sub

    Private Sub Command1_Click()
    Call ShowOpen
    End Sub

    наверх


    Определение, виден ли СкроллБар у элемента

    Разместите на форме элемент ListBox. (В оригинале примера на форме был размещен элемент TreeView из библиотеки Microsoft Common Dialog Control 6.0. Можете разместить и его, только не забудьте снять комментарии, относящиеся к элементу TreeView).

    Private Const GWL_STYLE = (-16)
    Private Const WS_HSCROLL = &H100000
    Private Const WS_VSCROLL = &H200000
    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long

    Private Sub Command1_Click()
    Dim wndStyle As Long
    wndStyle = GetWindowLong(List1.hwnd, GWL_STYLE)
    'wndStyle = GetWindowLong(TreeView1.hwnd, GWL_STYLE)

    If (wndStyle And WS_HSCROLL) <> 0 Then
    MsgBox "A horizontal scroll bar is visible."
    Else
    MsgBox "A horizontal scroll bar is NOT visible."
    End If
    If (wndStyle And WS_VSCROLL) <> 0 Then
    MsgBox "A vertical scroll bar is visible."
    Else
    MsgBox "A vertical scroll bar is NOT visible."
    End If
    End Sub

    Private Sub Command2_Click()
    List1.Move 250, 900, 1000, 1000
    'TreeView1.Move 250, 900, 1000, 1000
    End Sub

    Private Sub Form_Load()
    ' Size and position the form and controls.
    Form1.ScaleMode = 1
    Form1.Move 0, 0, 5100, 5040
    Command1.Caption = "Scroll Bar Test"
    Command1.Move 120, 120, 1700, 500
    Command2.Caption = "Size Control"
    Command2.Move 2000, 120, 1700, 500
    List1.Move 250, 900, 3000, 1500
    'TreeView1.Move 250, 900, 3000, 1500
    List1.AddItem "1: Sample Text"
    List1.AddItem "2: Sample Text"
    List1.AddItem "3: Sample Text"
    List1.AddItem "4: Sample Text"
    List1.AddItem "5: Sample Text"
    List1.AddItem "6: Sample Text"
    'TreeView1.Nodes.Add , , , "1: Sample Text"
    'TreeView1.Nodes.Add , , , "2: Sample Text"
    'TreeView1.Nodes.Add , , , "3: Sample Text"
    'TreeView1.Nodes.Add , , , "4: Sample Text"
    End Sub

    наверх


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

    BalloonMessage for MS Agent

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

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

    наверх


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

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

    Вопросы:


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

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

       Мой вопрос связан с API. Заключается он в следующем. Мне нужно помещать в ListBox все запускаемые exe и com приложения в Windows 95. А так же все открываемые папки. И после клика в ListBox переходить к выполнению тои или иной задачи. К примеру у меня открыта папка Windows и работает exe файл Nootpade.exe они помещены в этот ListBox. Первая строка c:\windows вторая c:\windows\nootpade.exe (в ListBox). Пощелчки по 1 строке мы переходим к папке Windows а по второй переходим к nootpade.exe. Вообщем получить что то вроде панели задач (нижняя часть экрана) как Windows.
       Так же нужно поместить обсалютно все работающие процессы в системе во второй ListBox и по щелчку нужно что бы задача снималась. То есть что вроде "Заверщение работы програм" как Windows по нажатию на Alt+Ctrl+Del.

       МОЖЕТ кто нибудь знает где достать такой компонент или пример (только не очень сложный) а ещё лучше OCX.


    Автор вопроса: Лёха

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

       Если кто хочет переписывоться-пишите skorpion200284@mail.ru (одна
    голова хорошо, а с туловищем лучше!)


    Автор вопроса: bad_tula@msn.com

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

       Поиогите исходниками, доками, про то как можно сделать программу для
    соединения с ИНТЕРНЕТ. Ответы намыльте сюда: bad_tula@msn.com


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

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

       1) Как сделать так, чтоб при попытке удаления определённой папки в программу поступал сигал.
    2) Пишу программу запрашивающую пароль при попытке открыть папку. Как при получении правильного пароля открыть обычную Windows-кую папку


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

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

       Как сделать чтото типо видео захвата?
    А именно: У меня есть тюнер к которому подключена миникамера("скрытая").
    Как перехватить видео сигнал и поместить его куданибудь(Пикчер, может контрол какой).
    Но ето не самое главное: мне надо чтобы программа следила за изобр. и кодга ино изменялось происходило мной закодир. действие.
    PC: К примеру камера смотрит в комнату(ниче не двигается) и вдруг появляется какойнить чел, и моя прога реагирует на ияменение и сообщяет мне.
    Ето все для того, чтобы мне не слидить яа монитором, а смотреть только когда чтото происходит...
    Может таймер подключить который сравнивает картинку и если она отличается от прежней, делается что-либо, может как по др...
    Пожалуйста помогитееееее, или хотябы скажите вояможно ли это???
    Если это поможет то тюнет - AverTV Studio


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

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

       Вот такой вопрос: в текстбоксе есть определенный текст. Так вот что требуется: если первые 6 символов соответсвуют образцу (например If six number = "sobaka" Then) то будет происходить какое-то действие. Как это осуществить?


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

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

       Мой проект (VB6) испольяует DAO 3.50, работал бея проблем (Win 95/98/2000). Появились машины с той же самой операционкой, не открывающие баяу данных при работе ия exe-шника. При работе в среде отладки все отлично. Тогда меняю DAO 3.50 на DAO 3.60. На этих машинах все отлично, но на части тех, где раньше проблем не было (не на всех!) баяа яагружаться перестала. Новую .dll я, естественно, нормально устанавливаю и регистрирую.
        Да, проблема не из легких. Я тоже столкнулся с ней при установке своей программы на другую машину (испольяуя Setup Vizard VB5). Помогло, когда вручную удалил все *.dll драйвера DAO (они оказались, если судить по дате более поздние), затем снова установил Office. Иначе если переустанавливать Office, нерабочие драйвера оставались к сожалению, нетронутыми, т.к. похоже - это особенность Windows, при установке не трогать более свежие драйвера.
       Думаю, проблема тут вояникает изза версий библиотек - на машине должен стоять неконфликтный набор. Теперь делаю установочный комплект дискет на той машине, где яаведомо янаю, что драйвера DAO самые древние. Если начинать устанавливать свою программу на машину с более свежими драйверами (рабочими), то они не затруться, а те, которых не хватает - добавятся. Или делать установочный комплект другими средствами, например InstallShield. При подготовке установочного комплекта, он берет драйвера не из системы Windows, как родной Setup Vizard VB5, а из своего каталога. Возможно я, конечно, ошибаюсь и есть более разумный способ.
        Но факт остается фактом - конфликт библиотек в VB существует. Это ему большой минус.


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

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

       Как на VB6 из буфера обмена извлечь только URL и вставить его в ListBox без кнопок.


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

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

       Кто может мен расказать как объщаться с ИК портом (USB) с помощью VB!


    Автор вопроса: Dr.Max

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

       Только что узнал, что vbnet имеет смысл только для серверных программ.
    Это что ли, писать на нем не серверные проги (типа игр и т.п.) бесполезно???
    Да и вообще как у него со скоростью, в сравнении вб6???7


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

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

       Люди, кто-нибудь знает как сделать инсталляшку IE5.5 раямером 4-7м. все 70м таскать неохота изза простого юзания пары файликов типа mshtml.dll да shdocvw.dll. просто заменить их не канает - форты умирают :-)


    Автор вопроса: MC Green

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

       Какие есть API-функции для работы с *.ini файлами (если можно, пример кода).




    Ответы:


    Вопрос:

       Помагите с решением проблема такая. Есть функции как copy, cut, paste можно воспользаватся с помащю как Clipboard и как через WinApi

    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

    Какая разнится между ними разнится и какая из них боле эфектвна.

    Ответ:

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

    Ни какой.


    Вопрос:

       Подскажите, плз, как можно перетаскивать объект по форме мышкой (хорошо бы, что-бы было видно контур, как в нормальных приложениях) и как можно соединить два объекта на форме линией (опять же, с помощью крысы).

    Ответ:

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

    Для удобства кладём поверх контрола лейбл с такими же размерами и BackStyle = Transparent. По событию Маус_Мув пишем:

    If Button = vbLeftButton then
        Контрол.Move Лейбл.Left + X, Лейбл.Top + Y
    End If

    А в Маус_Ап

    Лейбл.Move Контрол.Left, Контрол.Top


    Вопрос:

       Как ияменить цвет фона отдельной кнопки, не меняя при этом основные настройки Windows?

    Ответ:

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

    Свойства смотрел?
    В рунтайме так:

    Command1.Background = цвет


    Вопрос:

       Подскажите, плз как преобразовать документ DOC (Word) в RTF. Слышал, что эти функции есть в библиотеках WordPad, но как с ними работать?

    Ответ:

    Автор ответа: Лозовский Антон Борисович

    Попробуй через ole automation загрузить из своей программы текст в ворд, а потом сохрани его в нужном формате.


    Вопрос:

       Как сделать, чтобы программа запускалась как сервис в Win NT/2000/XP (Service NT)? Я смотрю, что на этот вопрос никто не знает ответа.
       Ламеры задают вопросы наподобие "Как засунуть программу в Systray, там где часики", а продвинутые ламеры на них отвечают. Вопрос задаешь чуть посложней, так все кричат в один голос: "это на VB нельзя сделать". Что никто не может толком программировать на VB?
       В общем я частично согласен, что на VB сервисы не пишутся. Но можно использовать ocx, написанные на с/с++ или создать сервис используя API. Может кто-то сталкивался с этим, или есть готовый пример?

    Ответ:

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

    Раз тебе так интересно, а все вокруг ламеры, то сходи на Microsoft.
    Там ооочень даже хорошо написано, как на Бэйсике делать сервисы :-)

    Если ты ленивый, то могу сразу выслать контрол.
    Пиши, если что.



    Ответ:

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

    Ну ты обиделся! Я чуть не зарыдал!

    Можно сделать как сервис, но для этого нужна одна .dll библиотечка! У меня где-то была, запустит твое веяние как сервис и в 95 и в ХР, давно я ее на доставал из кобуры - надо поискать. Пиши на личный - обсудим, если больше некому, иль присоединяйся к Сообчанинам.


    Вопрос:

       Мой проект (VB6) использует DAO 3.50, работал без проблем (Win 95/98/2000). Появились машины с той же самой операционкой, не открывающие базу данных при работе из exe-шника. При работе в среде отладки все отлично. Тогда меняю DAO 3.50 на DAO 3.60. На этих машинах все отлично, но на части тех, где раньше проблем не было (не на всех!) база загружаться перестала. Новую .dll я, естественно, нормально устанавливаю и регистрирую.

    Ответ:

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

    Спасибо за то, что Вы откликнулись на мою просьбу помочь. Речь идет о проблемах DAO 3.50/3.60. Именно в Reference я меняю ссылку на ту или иную библиотеку, и тем не менее на части машин Dao360.dll нормально работать не желает - при первом же обращении возвращает "не могу создать объект".
         Еще раз повторяю, что все библиотеки я нормальным образом инсталлирую и регистрирую.



    Ответ:

    Автор ответа: Лозовский Антон Борисович

    Может быть, там нужно переставить последнюю версию MSDAC.


    Вопрос:

       Мой вопрос связан с API. Заключается он в следующем. Мне нужно помещать в ListBox все запускаемые exe и com приложения в Windows 95. А так же все открываемые папки. И после клика в ListBox переходить к выполнению тои или иной задачи. К примеру у меня открыта папка Windows и работает exe файл Nootpade.exe они помещены в этот ListBox. Первая строка c:\windows вторая c:\windows\nootpade.exe (в ListBox). Пощелчки по 1 строке мы переходим к папке Windows а по второй переходим к nootpade.exe. Вообщем получить что то вроде панели задач (нижняя часть экрана) как Windows.
       Так же нужно поместить обсалютно все работающие процессы в системе во второй ListBox и по щелчку нужно что бы задача снималась. То есть что вроде "Заверщение работы програм" как Windows по нажатию на Alt+Ctrl+Del.
       МОЖЕТ кто нибудь знает где достать такой компонент или пример (только не очень сложный) а ещё лучше OCX.

    Ответ:

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

    Ссылка на чтото подобное - когдато и я это делал... http://v-b.nm.ru/PROJECT5.ZIP


    Вопрос:

       Можно ли в VB вставлять в код программы подпрограммы "на лету"?
    Так это приблизительно выглядит на Паскале:

    if <какое-то условие> then
    ...
    <тело программы>
    ...
    begin
    ...
    <код подпрограммы>
    ...
    end;
    ...
    <тело программы>
    ...

    А как в Visual Basic?

    Ответ:

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

    Не понял, что именно имеется в виду.
    Может имеется в виду конструкция

    If ...условие... Then
        ...делать...
    End if

    Но это не "на лету".

    Если присать на VBA, то можно например загнуть так:

    Sub test()
         Modules.Item("testModule").InsertText ("Public Sub test1()")
         Modules.Item("testModule").InsertText (" msgBox ""Hello World!!!""")
         Modules.Item("testModule").InsertText ("End sub")
         Run "test1"
    End Sub

    В VB6 такого конечно нельзя, зато какой простор для мысли!!!!




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

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

    наверх


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

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