VBNet
VBMania
Голосование: Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом. Доска почёта: Sergey Y. Tkachev Кононенко Роман Kirill Ссылки: |
Господа!!! читайте MSDN!!! Несколько слов от автора:
Я на две недели уеду в Питер. Выпуски 106 и 107 этой рассылки уже введены и выйдут в срок. Правда, в них Вы не увидите раздела Вопрос/Ответ. А вот со следующими придётся подождать... Выпуски 108 и 109 выйдут 15 или 16 ноября. Дальше всё пойдёт по плану. Обновления на сайте запланированы, так что через день будут появляться новые статьи и примеры.
Читайте! Содержание выпуска
Книги
Остальные книги о VB можно найти здесь. наверх MS Agent CD Я сильно извиняюсь за задержку с рассылкой компакт диска "MS Agent CD". Заказы на диск будут приниматься в течении недели (до 8 ноября). Затем диск будет разослан всем заказчкам. наверх Сколько цветов может отобразить видеокарта Расположите на форме элемент CommandButton. Данная опция зависит от настроек вашей
видеокарты в панели управления - ЭКРАН - вкладка
"Настройка" - "Цветовая палитра".
Функции для работы с памятью компьютера Честно говоря, размещая данный код на страницах сайта, я толком не смог связать данные, получаемые с помощью этих функций с реальными данными, предоставляемыми операционной системой Windows98. Но вдруг вам кое-что пригодится... Private Type MEMORYSTATUS dwLength As Long dwMemoryLoad As Long dwTotalPhys As Long dwAvailPhys As Long dwTotalPageFile As Long dwAvailPageFile As Long dwTotalVirtual As Long dwAvailVirtual As Long End Type Private pUdtMemStatus As MEMORYSTATUS Private Declare Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer As MEMORYSTATUS) Public Function AvailablePhysicalMemory() As Double 'Return Value in Megabytes Dim dblAns As Double GlobalMemoryStatus pUdtMemStatus dblAns = pUdtMemStatus.dwAvailPhys AvailablePhysicalMemory = BytesToMegabytes(dblAns) End Function Public Function TotalPhysicalMemory() As Double 'Return Value in Megabytes Dim dblAns As Double GlobalMemoryStatus pUdtMemStatus dblAns = pUdtMemStatus.dwTotalPhys TotalPhysicalMemory = BytesToMegabytes(dblAns) End Function Public Function PercentMemoryFree() As Double PercentMemoryFree = Format(AvailableMemory / TotalMemory * 100, "0#") End Function Public Function AvailablePageFile() As Double 'Return Value in Megabytes Dim dblAns As Double GlobalMemoryStatus pUdtMemStatus dblAns = pUdtMemStatus.dwAvailPageFile AvailablePageFile = BytesToMegabytes(dblAns) End Function Public Function PageFileSize() As Double 'Return Value in Megabytes Dim dblAns As Double GlobalMemoryStatus pUdtMemStatus dblAns = pUdtMemStatus.dwTotalPageFile PageFileSize = BytesToMegabytes(dblAns) End Function Public Function AvailableMemory() As Double 'Return Value in Megabytes AvailableMemory = AvailablePhysicalMemory + AvailablePageFile End Function Public Function TotalMemory() As Double 'Return Value in Megabytes TotalMemory = PageFileSize + TotalPhysicalMemory End Function Private Function BytesToMegabytes(Bytes As Double) As Double Dim dblAns As Double dblAns = (Bytes / 1024) / 1024 BytesToMegabytes = Format(dblAns, "###,###,##0.00") End Function Private Sub Command1_Click() Print AvailableMemory Print AvailablePageFile Print AvailablePhysicalMemory Print PageFileSize Print PercentMemoryFree Print TotalMemory Print TotalPhysicalMemory End Sub наверх Примеры работы с BIOS Данный пример покажет дату Bios'аВАРИАНТ 1 'ВАЖНОЕ ПРИМЕЧАНИЕ: Используйте данный код только в Windows 95/98 'Использование кода в Windows 2000/NT приводит к краху приложения Private Declare Sub GetMem1 Lib "msvbvm50.dll" (ByVal MemAddress As Long, var As Byte) Private Function GetBIOSDate() As String Dim p As Byte, MemAddr As Long, sBios As String Dim i As Integer MemAddr = &HFFFF5 For i = 0 To 7 Call GetMem1(MemAddr + i, p) sBios = sBios & Chr$(p) Next i GetBIOSDate = sBios End Function Private Sub Command1_Click() MsgBox "Дата Bios'а: " & GetBIOSDate End Sub ВАРИАНТ 2 Private Type BIOS_DATE s As String * 8 End Type Private Declare Sub CopyMemory Lib "Kernel32" Alias "RtlMoveMemory" (pDest As Any, pSource As Any, ByVal ByteLen As Long) Public Function BIOS() As String Dim sDB As BIOS_DATE CopyMemory sDB, ByVal &HFFFF5, 8& BIOS = sDB.s End Function Private Sub Command1_Click() MsgBox BIOS End Sub наверх Установить новую дату и время на компьютере Данный пример установит новое время на компьютере. Для установления новой даты на компьютере, снимите комментарии в функции SetNewTime. Одна проблема: после выполнения кода, не
происходит обновления времени в SystemTray. Если кто
знает, как обновить время в SysTray, то напишите ведущему раздела.
Определение появления и изымания компакт-диска Данный пример автоматически определит появление и изымание компакт-диска в приводе СД-РОМ. Проверка действия примера очень проста: запустите ваш VB Project на выполнение, затем отктройте дверцу СД-РОМа, вставьте диск, закройте СД-РОМ и смотрите на сообщение на вашей форме. В данном примере вам ОБЯЗАТЕЛЬНО потребуется модуль,
а также расположите на форме элемент Label.
Вызов окна "Свойство COM1" и "Настройка параллельного порта" Private Declare Function ConfigurePort Lib "winspool.drv" Alias "ConfigurePortA" (ByVal pName As String, ByVal hwnd As Long, ByVal pPortName As String) As Long Private Sub Command1_Click() 'MsgBox ConfigurePort("", Me.hwnd, "COM1:") 'MsgBox ConfigurePort("", Me.hwnd, "LPT1:") Call ConfigurePort("", Me.hwnd, "COM1:") Call ConfigurePort("", Me.hwnd, "LPT1:") End Sub наверх Мои программы BalloonMessage for MS Agent BalloonMessage for Microsoft Agent реализует диалог программы с
пользователем, используя при этом технологию Microsoft Agent. OCX реализует три
типа диалоговых окон: InputBox, MsgBox и MsgLabels. Автора: Шатрыкин Иван и Павел Сурменок. наверх Вопрос/Ответ Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы. Вопросы:Автор вопроса: Vir Ответ ожидается по этому адресу Подскажите как работать с FTP - сервером; тоесть вводить адресс, имя, пароль. Автор вопроса: Lofgeornost Ответ ожидается по этому адресу Имеется 2 звуковых файла... каждый из них представляет примерно такую стуктуру 1011100111 (1-сигнал, 0-пустота)...частота сигналов может быть разной, а вот пробелы между сигналами (0) всегда одинаковы. Требуется средствами VB сравнить эти два файла, причем сравнивать по пробелам между сигналами. P.S. Побайтовое сравнение не пойдет... т.к. частота сигналов разная, вся загвоздка во времени этих сигналов... Если у кого какие есть идеи (любые), шлите на мыло Автор вопроса: Саша Ответ ожидается по этому адресу Подскажите где взять Function и Sub у WinInet ? Все кто хоть немного знает что-то шлите на email. Автор вопроса: Гернович Валентин Ответ ожидается по этому адресу Работаю во всякого рода рекламных и публицистических газетах очень давно, собралось кучу разных скриптов и програмулек целая гора, пишу свои скрипты, базы данных и программы.... И вот в один прекрасный день задумал написать большую программу "идеальная газета", в которой есть все: верстка и учет рекламы, верстка и учет текстов, планирование верстки текстовых полос, сбор информации с новосных сайтов, кроссворды и сканворды, верстка тв программы, и т.д. Предполагаю все это сделать: хранение данных в ACCESS или MsSQL, оболочка в VB. Модули для Corel, InDesign, PageMaker, PhotoShop, Ventura 1:C Бухгалтерия, и т.д. Программа бесплатной не будет. Собираю команду. Все кто в ее войдет будут иметь право ее распространять. Если увас возникли какие либо мысли по этому поводу пишите. Пишите мне на адрес rdw@rdw.by Автор вопроса: Islentyev Dmitri Ответ ожидается по этому адресу В который раз вопрошаю как сделать DLL на VB так, чтобы С++ программы могли использовать функции DLL Автор вопроса: Petr Ответ ожидается по этому адресу Как сделать распечатку на принтр из txt файла? Автор вопроса: DDA Ответ ожидается по этому адресу 1. Как прочитать название CD-привода, т.е. если зайти в "свойства системы" на закладку "Устройства" и открыть ноду "Устройства чтения компакт-дисков" - то там сразу видно название устройста (ASUS CDS360 ..., Teac ... и т. д.). А вот как енто програмно прочитать ?????? 2. Народ, дайте ПРЯМУЮ ссылку на программу Fusion (прога внедрения ядра в ЕХЕ-шник), а то я пытался найти через поисковики и там столько мусора попадалось ... так и не откопал нормальную. Автор вопроса: Dr.Max Ответ ожидается по этому адресу Есть код Dim vData As Variant vData = Me.Inet1.OpenURL("http://vbstreets.ru/bookstore/20.gif", icByteArray)' подклучаем библиотеку Internet Transfer control Open "C:\pic.gif" For Output As #1 Print #1, , vData Close #1 Но ,как вы уже поняли,он не работает.точнее работает ,но "недорабатывает". Код должен сохранить рисунок ,он его сохраняет ,но рисунка -то нет! Тоже самое при попытке сохранить веб страницу . т. е. файл есть ,но пустой! Придательский красный крестик и всё!!! Мне кажется ,что проблема не в открытии файла,а в его сохранении. Помогите!!!!!!!!!! Автор вопроса: LexSys Ответ ожидается по этому адресу 1. Как с помощью WinSock пересылать файлы между клиентом и сервером... 2. Как сфотографировать экран клиента и отравить на сервер в PictureBox... ЖЕЛАТЕЛЬНО С ПРИМЕРАМИ!!! Автор вопроса: Eugene KRUGLOFF Ответ ожидается по этому адресу Вопрос по VBA (WORD). Нужна функция окна диалога для открытия папки (не файла!). Внимание! API функция - не работает, на то есть причины. Автор вопроса: samit Ответ ожидается по этому адресу Возможно ли средствами VB докачивать какой-либо файл, т.е. качаем...связь обрывается...перезваниваем...докачиваем... Если можно, напишите как! Автор вопроса: Александр Ответ ожидается по этому адресу На Вашем сайте нашел интересные советы по ВБ. Не будете ли Вы так любезны ответить новичку еще на несколько вопросов.Не очень сложно , чтобы я понял. 1.Могу ли я из своего ВБ 6 открыть какой-либо документ из моего компьютора или более конкретно - окно для связи с Интернетом и нажать кнопку подключения и тд .2.Из ВБ 6 можно говорят заблокировать любое окно виндоус. А если кто-то заблокировал окно / к примеру настройку часов в компьютере и тп / , можно ли взломать этот запрет , ведь его коды мне не видны.и я не знаю даже с помощью какой программы и языка это заблокировано 3.Я нашел маленькую програмку для ВБ, которая позволяет увидеть данные за звездочками .Я ее коды скопировал, заустил ,запаролил данные в текстовом окне своей ВБ-формы и действительно звездочки открываются. Но вот что я не понял: ведь она работает когда пароль размещен на моей ВБ-форме, А как же быть если скрытые данные расположены в другом месте 4.У меня на вэб-странице есть ВБ 6-форма с окном Text, в который можно вписывать текст / типа гостевой книги/ .Можно ли с помощью кода в моей ВБ-форме сделать чтобы этот текст добавлялся в мою форму на сервере, чтобы при новом открытии страницы этот текст сохранялся 5.Я вставляю в пикче-бокс флэш-анимацию, а она в нем не движется Автор вопроса: Nick Ответ ожидается по этому адресу Чтотакое ping (пинг) и что яначит запинговать? Автор вопроса: Eros Ответ ожидается по этому адресу как проверить готовность сетевого устройства (например\\Mat1\c\OSTAT,...) и если оно готово,то скопироватьтуда несколько файлов. Мой ПК в группе nod4, ПК польяователей в группе mat. например, в \\Mat1\c\OSTAT,\\Mat2\c\OSTAT,\\Mat3\c\OSTAT,...,\\Mat13\c\OSTAT. Автор вопроса: ADmin Ответ ожидается по этому адресу Помогите разобраться в чем дело, хочу вывести на принтер картинку, и повернуть ее по горизонтали и вертикали (одновременно), переворачивает только по горизонтали, делаю следующим образом Printer.PaintPicture Image1, xx + 125, yy + 125, -125, -125 Что я делаю не так? Ответы: Вопрос: У меня вот какой вопрос - пишу: Private Sub Command1_Click() a = a + 1 If Text2.Text = "" Then Winsock1.RemoteHost = "ip адрес сервера" + ad Winsock1.RemotePort = Text1.Text Winsock1.Connect Winsock2.RemotePort = Text1.Text Winsock2.RemoteHost = "ip адрес сервера" + ad Winsock2.Connect Winsock1.SendData Text3.Text Winsock2.SendData Text2.Text Winsock1.SendData "START" Winsock1.SendData Text3.Text If LISMCOM.Text1.Text <> "OK" Then MsgBox "NO!" Else Winsock1.RemotePort = Text1.Text Winsock1.RemoteHost = Text2.Text Winsock1.Connect Winsock2.RemotePort = 1002 Winsock2.RemoteHost = Text2.Text Winsock2.Connect End If End Sub Запускаю... На Winsock1.SendData Text3.Text пишет ошибку №40006: "Wrong protocol or connection state" и т.д. Может кто подскажет, что мне делать? Ответ: Автор ответа: Sergey Y. Tkachev Скорее всего у тебя сокет просто не успевет посылать данные. Я не пробовал запускать твой код, но то, что у тебя подряд два сенда, это неправильно. Есть событие SendComplete, которое позволяет убедиться в том, что данные отосланы Вопрос: Как измерять скорость кода программы????????? Чего-то сшал про такую апи - функцию. Ответ: Автор ответа: ViTal Как ни странно - временем выполнения этого самого кода! :) Можешь использовать встроенный в ВБ Timer. Ну а если ОЧЕНЬ хочется использовать АПИ, то пользуй: Declare Function timeGetTime Lib "winmm.dll" () As Long Вопрос: Есть текстовый файл ,10 столбцов на 10 сток ,еще есть массив ,тоже 10х10 ,а теперь вопрос: как загнать файл в массив ? Ответ: Автор ответа: Tibor Если я тебя правильно понял то тебе нужно зделать так: Dim ArrFileStr() As String Dim f$ Dim r& f$ = FreeFile ReDim ArrFileStr(0) Open FileName For Input As #f While Not EOF(f) r = UBound(ArrFileStr) Input #f, ArrFileStr(r) ReDim Preserve ArrFileStr(r + 1) Wend Close Вот собственно и всё, теперь файл FileName у тебя забит в массив ArrFileStr Вопрос: Есть текстовый файл ,10 столбцов на 10 сток ,еще есть массив ,тоже 10х10 ,а теперь вопрос: как загнать файл в массив ? Ответ: Автор ответа: phis Очень просто это сделать (для примера - исходники с метками(label)) Разместив на форме одну метку, выбрав в меню копировать, вставляешь в эту же форму. VB предлагает сделать массив - ОК! Расставив метки в соответствующем порядке нужно проверить, что метки располагаются по порядку (т. е. по порядку индексов) Private Sub Command1_Click() Dim mas(9, 9) As Integer Dim j, i As Byte For i = 0 To 9 For j = 0 To 9 mas(i, j) = Int(Rnd * 100) 'присваиваем массиву случайные значения (если записать mas(i,j)=i*10+j, то метки примут значения, соответствующие их индексам) Label1(i * 10 + j).Caption = mas(i, j) Next j, i End Sub Если тебе интересны исходники динамического массива, пиши: phis@bee-s.com Вопрос: 1. Для просмотра HTML странички к програме прицепил объект WebBrowser. Задаю свойству Navigate полный путь и имя файла. Открывает все нормально. В документе есть ссылки внитри текста. При нажатии на любую из них ругается, что немогу открыть страницу и т.д. (будто ее не существует). Хотя какое-то время назад (как только я начинал делать свою програму) все работало нормально. Что делать. 2. Записываю в фаил строку текста. В нем есть запятые, точки, все как положено. При чтении из фала VB почемуто воспринимает знаки препинания как разделители записей, и , соответственно, они пропадают. Выручайте, мож кто знает. Записываю в фаил по OUTPUT, читаю INPUT. Ответ: Автор ответа: Данила записывай Line Input Line Output Вопрос: 1. Для просмотра HTML странички к програме прицепил объект WebBrowser. Задаю свойству Navigate полный путь и имя файла. Открывает все нормально. В документе есть ссылки внитри текста. При нажатии на любую из них ругается, что немогу открыть страницу и т.д. (будто ее не существует). Хотя какое-то время назад (как только я начинал делать свою програму) все работало нормально. Что делать. 2. Записываю в фаил строку текста. В нем есть запятые, точки, все как положено. При чтении из фала VB почемуто воспринимает знаки препинания как разделители записей, и , соответственно, они пропадают. Выручайте, мож кто знает. Записываю в фаил по OUTPUT, читаю INPUT. Ответ: Автор ответа: Артём Кривокрисенко 1.Хм. Тяжёлый случай. Если контрол через некоторе время стал так работать, то ты, наверное, случайно изменил какое-то свойство контрола. Удали WebBrowser и поставь туда точно такой же. 2.Тоже тяжёлый случай. Очевидно, для чтения ты используешь оператор Input #1, strText Этот оператор может неправильно считывать информацию из файла (Например, концом строки считать символ табуляции или ещё какой-нибудь - это можно уточнить в MSDN). Лично я использую While Not eof(1) Line Input #1, strText strAll=strAll & strText & vbCrLf wend strAll=left(strAll, Len(strAll)-2) Вопрос: Увидел в форуме, что столкнулся с аналогичной проблемой, решил спросить, не выяснил как перебросить таблицу из ворда в эксель? Ответ: Автор ответа: Артём Кривокрисенко Ничего сложного - используй OLE. Можно попробовать скопировать таблицу в Экселе и вставить в Ворд (таким способом таблица может вставиться не как объект Экселя, а как обычная Вордовская таблица Вопрос: У меня такой вопрос, я делаю прогу типа проводника, как сделать так чтобы ия List можно было выбрать файл и открыть его. Т.е как ссылаться на объекты ия Васика(ВБ). Ответ: Автор ответа: Артём Кривокрисенко Если я рправильно понял проблему, тебе надо заполнить ListBox названиями файла. Нет ничего проще - используй FileListBox. Вопрос: народ не поможетели в такой ситуации :нужна функция которой я даю строку текста и символ (букву,цифру либо спец символ), а она мне возращает слово в котором есть этот знак (не его номер), да и ещё слово может состоять не только из букв, а и из смеси букв, цифр и заков. Ответ: Автор ответа: Артём Кривокрисенко Используй функцию InStr и InStrRev Вопрос: (VB.net) Вопрос такой, мне нужно чтобы программа заменяла в файлах некоторые байты на другие, то есть символы, слова и т.д., не меняя размер файла! к примеру как делают программы закачек, они создают пустые файлы, а потом набивают пустышки на нужные данные, вот и я бы такое сделать хотел, кто поможет советом как это сделать? Ответ: Автор ответа: Артём Кривокрисенко Открывать файл надо в двоичном (Binary) режиме. Потом заполнить нулями, а в процесе закачки заменять нули нужными данными Вопрос: Как использовать в Basic функцию Rnd для любых символов(букв.цифр) Напешите код. Если кто знает. Ответ: Автор ответа: Артём Кривокрисенко strSymbol=chr(1+int(rnd*255)) Вопрос: Люди хелп плиз, проблема вобщем то такая. Написал кое какую прогу, все работало нормально, Вставил в нее код созданный макросам в Excele? теперь при сохранении данных в таблице все идет как надо. При попытке ее открыть после сохранения Excel не запускается, и причем сам Excel висит в меню завершения программ вызываемых Ctrl+Alt+Del. На закрытие Excelя использую такой код " wBook.SaveAs файл' где файл переменная. wBook.Close Set wBook = Nothing ' если Excel запускали мы, то надо бы его закрыть If StartedNew Then exapp.Quit End If Set exapp = Nothing Убираю код написаный макросом все опять нормально работает. В чем проблема? Ответ: Автор ответа: Артём Кривокрисенко Мне кажется, нужно убрать последнюю строку Вопрос: нужно сделать чтобы прога определяла имя своего файла и место нахождения app.exeName - че то не работае Ответ: Автор ответа: Артём Кривокрисенко Несколько дней назад зад отвечал на подобный вопрос App.exename возвращает только имя файла без пути. App.Path возвращает путь к файлу (без последнего слэша) Вопрос: Подскажите ссылки где можно найти документацию и исходняки для 3D програмирования DirectX. Если нетрудно киньте на E-Mail исходняки, можно урезая файлы .3ds .x и т.д. Мне нужно именно 3D, а не плоская графика. Ответ: Автор ответа: Артём Кривокрисенко Первая ссылка - www.msdn.microsoft.com Вторая - диски MSDN Вопрос: Вопрос 1: Как сделать так,чтобы программу невозможно было выгрузить, а если её выгрузить, то запускалась бы копия программы. Вопрос 2: У меня есть программа. Как сделать так, чтобы она брала данные из внешнего файла (например .txt) и загружала их оттуда (В этом файле должны находиться переменные вместе с данными) Ответ: Автор ответа: Nechaev Sergey 2. Пример чтения system.ini Private Sub Form_Load() ff = FreeFile Open "C:\win\system.ini" For Input As #ff Do While Not EOF(ff) Line Input #ff, buffer Text1.Text = Text1.Text & vbCrLf & buffer Loop End Sub Вопрос: Хелп плиз, как зделать так, чтоб моя программа повторно не запускалась а при попытке повторного запуска выдала сообщение типа "программа уже запущена" Ответ: Автор ответа: Nechaev Sergey Private Sub Form_Load() If App.PrevInstance Then MsgBox "Уже запущено" End End Sub Вопрос: Как мне по имеющемуся пути осуществить перебор всех файлов, находящихся в данной конкретной папке (исключая подпапки). Есть ли такая вояможность в VB6 или какими функциями API необходимо польяоваться? Ответ: Автор ответа: Nechaev Sergey Кидаешь на форму FileListBox, задаешь ему папку, требуемое расширение и прочие параметры, потом перебираешь все это в цикле For n=0 to File1.ListCount-1...Next Вопрос: Каким образом можно из VB получать и обрабатывать системные события Windows ! Например, читать клавиатуру. Ответ: Автор ответа: Я Зайти на сайт dansoft.narod.ru в разделе библеотеки скачай файл DanLib.dll бросай в system'у пиши regsvr32 danlib.dll Он может перехватавать нажатие мыши и клавиатуры причем на глобальном уровне и без счетчика. использование: Сначало внеси в ссылки (у меня русский VB6) это библиотеку. добавь Label1 на Form Пиши это в Form Dim WithEvents Sh As cSystemHook Private Sub Form_Load() Set Sh = New cSystemHook Sh.SetHook End Sub Private Sub Form_Unload(Cancel As Integer) Set Sh = Nothing End Sub Private Sub Sh_KeyDown(KeyCode As Integer, Shift As Integer) Label1.Caption = KeyCode ' Если ты добавишь ниже keycode=49, то какую бы кнопку юзер не нажал будет нажиматься цифра "1" End Sub Можете заполнить эту форму, либо отослать вопрос СЮДА Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта. |
|||||||||||||||
Выпуск подготовили: |
Сурменок Павел |