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


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

Ваш голос отсылается по 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 можно найти
    здесь.

    наверх


    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 для ответа

    наверх


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

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