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


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

Нет тем!

Рассылки 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!!!

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

       Новый выпуск рассылки!!!
    Читайте!


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




    Книги

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

    наверх


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

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