VBNet
VBMania
Голосование: Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом. Ссылки: |
Господа!!! читайте MSDN!!! Несколько слов от автора:
Обратите внимание на раздел "VBNet CD '06 2003"!
Читайте! Содержание выпуска
Книги
Остальные книги о VB можно найти здесь. наверх VBNet CD '06 2003 VBNet.Ru представляет новый компакт диск "VBNet CD '06 2003"! CD содержит только новые материалы, почти всё, содержавшееся на предыдущих CD было удалено! Что же нового на CD? Добавлено 19 программ в раздел "Софт". Главная программа на этом CD - DirectX 9 SDK. Это пакет для разработки мультимедийных приложений (графика, 3D, звук и т.д.). Имеются примеры, в том числе и на VB .NET. Другие программы:
Добавлено 11 интересных книг о Visual Basic и .NET на английском языке. В разделе "Примеры" несколько новых примеров на Visual Basic .NET по работе с Direct3D 9 и .NET Framework. 10 примеров по программированию под новую версию Office - Office 2003. А также движок форума на ASP .NET с исходниками! В разделе "Эксклюзив" моя новая статья о криптографии в .NET и несколько примеров на Visual Basic .NET о симметричном шифровании и использовании WMI. А также коллекция музыки в формате MIDI и болшая коллекция иконок! Ну и конечно свежая версия сайта VBNet.Ru. С момента выхода предыдущего выпуска "VBNet CD" на VBNet.Ru появилось 7 статей, 8 ActiveX-контролов, 44 примера и около 5000 сообщений в форуме! Полное содержание диска можно скачать здесь: http://vbnet.ru/vbshop/vbnetcd062003.zip. Цена диска, включая почтовые расходы: 100 рублей. Диск распространяется по почте наложенным платежом. Магазин компакт-дисков был немного улучшен. Теперь он больше похож на солидные интернет-магазины. Вы можете заказать сразу несколько дисков (сейчас в нашем магазине продаётся 4 диска). Действует система скидок постоянным покупателям. Наш магазин расположен по адресу http://vbnet.ru/vbshop/cdshop.asp Мы всегда рады Вас видеть! наверх Установка и получение флага .NET. Две функции для работы с флагами. Если вы не знаете, что это такое, поясню. Часто в одной переменной целого типа (обычно Integer или Long) хранится несколько логических значений. Каждое значение занимает один бит. Такое часто встречается в API-функциях. Функция SetFlag устанавливает флаг, а функция GetFlag получает значение флага. 'Устанавливает флаг. Передаётся исходная переменная, устанавливаемый флаг и значение флага (True или False) 'Возвращается переменная, в которой установлен нужный флаг. Public Function SetFlag(ByVal Flags As Integer, ByVal Flag As Flags, ByVal Value As Boolean) As Integer If Value = True Then Return (Flags Or Flag) Else Return (Flags And (Not Flag)) End If End Function 'Получает значение флага. Передаётся исходная переменная и флаг. Возвращается значение флага - True или False Public Function GetFlag(ByVal Flags As Integer, ByVal Flag As Flags) As Boolean Return Convert.ToBoolean(Flags And Flag) End Function наверх Время выполнения кода .NET. Часто необходимо измерить время выполнения куска кода. Как это сделать? В .NET это делатется с помощью классов DateTime и TimeSpan. Dim datebefore As Date 'Здесь хранится время запуска кода Dim dateafter As Date 'Здесь время окончания кода Dim tspan As New TimeSpan 'Это для вычисления разницы между dateafter и datebefore 'Засекаем время datebefore = Now '---здесь располагается код--- 'Смотрим время dateafter = Now tspan = dateafter.Subtract(datebefore) MsgBox("Время выполнения: " & tspan.TotalMilliseconds.ToString) наверх Использование WMI .NET. WMI (Windows Management Instrumentation) - это Microsoft'ская реализация WBEM, система для управления Windows. С помощью WMI можно получить много очень поезной информации, например, серийный номер, дату выпуска и название BIOS, модель процессора, объём оперативной памяти, информацию о логических дисках и часовых поясах и т.д. Ниже приведён пример получения информации о BIOS. Положите на форму TextBox с именем txtOutput, Multiline=True. Хотя можно обойтись и без этого, просто вместо вывода информации в TextBox сделайте вывод в консоль. Да, чуть не забыл... Добавьте в Project|Add Reference ссылку на System.Management и импортируюте пространство имён System.Management, вставив вверху файла .vb такую строку: Imports System.Management 'Очищаем TextBox txtOutput.Text = "" Try 'Обработчик ошибок Dim searcher As New ManagementObjectSearcher 'Создаём объект ManagementObjectSearcher searcher.Query = New SelectQuery("Select * From Win32_BIOS") 'Задаём запрос 'Запрос пишется на языке структурированных запросов SQL Dim obj As ManagementObject 'Здесь будет храниться объект WMI Dim prop As PropertyData 'А здесь - свойство For Each obj In searcher.Get 'Получаем объекты и перебираем их в цикле For Each For Each prop In obj.Properties 'Получаем свойства объекта obj и перебираем их в цикле For Each 'Здесь пришлось вставить проверку на Nothing, потому что при попытке конвертировать Nothing в строку методом ToString возникает ошибка If IsNothing(prop.Value) = True Then txtOutput.Text &= prop.Name & " = {Nothing}" & vbCrLf Else txtOutput.Text &= prop.Name & " = " & prop.Value.ToString & vbCrLf End If Next Next Catch exp As Exception MsgBox(exp.Message, MsgBoxStyle.Critical) End Try наверх Мои программы BalloonMessage for MS Agent BalloonMessage for Microsoft Agent реализует диалог программы с
пользователем, используя при этом технологию Microsoft Agent. OCX реализует три
типа диалоговых окон: InputBox, MsgBox и MsgLabels. Автора: Шатрыкин Иван и Павел Сурменок. наверх Вопрос/Ответ Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы. Вопросы:Автор вопроса: Rex Ответ ожидается по этому адресу Как можно прикрепить звук (wav,mp3) к программе, чтобы потом его воспроизвести (через Mci)? Автор вопроса: Rex Ответ ожидается по этому адресу Как узнать загруженность процессора? Автор вопроса: Rex Ответ ожидается по этому адресу Как поместить в панель задач иконку, клик по которой позволит открыть программу, контекстное меню. Автор вопроса: FAS_WL Ответ ожидается по этому адресу Есть такая проблема при посимвольной обработке строки... Dim TMP As String Dim TMP2 As String Dim X As Integer For X = 1 to Len(TMP) Step 0 TMP2 = TMP2 & Mid(TMP, X, 1) X = X + 1 Next X Проблема в том, что перебор строки состоящий всего из 10 тыс. символов занимает самое малое минуту, а если требуется перебрать 5 000 000 символов, например файл обработать... как можно повысить скорость работы? Повышал приоритет программы до RealTime, но это почти не заметно... Буду благодарен любому совету, или примеру намыленному на SoundMuzic@narod.ru; Автор вопроса: юра Ответ ожидается по этому адресу Как программировать LPT - порт? Автор вопроса: Vovan Ответ ожидается по этому адресу У меня возник такой вопрос>>> Имеется база данных Аксэс. Как можно сделать,чтобы например со странички Searhc.asp ввести в поле слово и в базе данных это все проверилось на наличее этого слова в тексте и если такое слово присутствует, вывести на страничку текст, в котором это слова есть. Другими словами мне нужем поиск по базе данных для ASP программирования! Прошу помочь в моей сложной работе. Автор вопроса: Анатолий Ответ ожидается по этому адресу Как отсортировать двумерный массив раямерностью 10Х3 по первому столбцу, но при этом сохранить первоначальную свяяь между строками массива, если можно пришлите кусок кода? Автор вопроса: Игорь Ответ ожидается по этому адресу Как свяяать CHM-файл справки, созданный с помощью HTML Help Workshop, с конкретными объектами VB-приложения для получения контекстно-зависимой помощи? Автор вопроса: Тарасова Надежда Сергеевна Ответ ожидается по этому адресу Как вызвать хранимую процедуру c SQL Server'a в коде программы на VB6 ? Автор вопроса: ]CBK[C...R...a...S...H Ответ ожидается по этому адресу Люди кто может сказать реально VB.NET отличается от VB? Автор вопроса: CRAZYDIMA Ответ ожидается по этому адресу Народ, кто-нибудь делал в ListBox в ВБ6.0 плоские полосы прокрутки? Сам листбокс может быть плоским, а полосы - что-то не получается. догадываюсь, что можно отправить мессагу, а какую - не представляю, пока... Автор вопроса: Maxim Ответ ожидается по этому адресу Помогите написать код программы который при наведении курсора на папку в Explorer покаяывал бы ее раямер на Form. Или хотя бы ссылку на инфу или исходники или API функции которыми можно воспользоваться. Автор вопроса: 001 Ответ ожидается по этому адресу Имеется некоторая проблема: нашел очень неплохую литературку (Книга +CD) по VB.Net. Стоит довольно приличных денег при довольнол подробной информации. Если кто имел дело с VB.Net подскажите, стоит ли нанего переходить и есть ли у него какие-нибудь особые требования к системе? Автор вопроса: Владимир Ответ ожидается по этому адресу Как на VB6 заполнить форму на web-странице и сделать клик на submit. При таких вариантах пишет ошибка метод не поддерживается Private Sub Command1_Click() Dim Vladimir As String Explorer.Visible = True Explorer.Navigate "C:\WINDOWS\Рабочий стол\RoboForm1.htm" Delay 2 'задержа необходима для загрузки страницы 'Explorer.Document.Forms(0).Ваше_имя.Value = Vladimir Explorer.Document.Forms(0).Ваше_имя.Write "Vladimir" 'Explorer.Document.InputBox.Ваше_имя.Put "Vladimir" 'Explorer.Document.Forms(0).Добавить_новое.Click End Sub Где можно об этом узнать,или что нужно сделать. В интернете ничего не нашел. Автор вопроса: goodroman Ответ ожидается по этому адресу Как получиь Hwnd активного в данный момент окна, но выяванного не моей программой (т.е. GetActiveWindow не прокатывает)? Автор вопроса: Дмитрий Ответ ожидается по этому адресу Подскажите, если знаете, как можно изменить вид кодировки отображения файлов, загружаемых в richtextbox? Еще вопрос: как и с помощью какого control'а можно (если можно) загрузить word'овский документ для корректного просмотра и/или редактирования? Ответы: Вопрос: Как сделать help? Ответ: Автор ответа: Yuri Samsonov На первом диске Visual Studio есть HTML Help Workshop. Там в хэлпе подробно описано, как чего делать. Общий принцип: создаешь на каждую статью помощи HTML-страничку, затем в этой проге создаешь содержание и подключаешь ранее созданные статьи. При необходимости можно задать ключевые слова по которым потом будет осуществляться поиск в хэлпе. Компилируешь, получаешь .chm-файл - файл помощи. Кидаешь в папку к своему проекту; в проекте указываешь имя хэлп-файла (Preferences...->Help file). Вопрос: Подскажите пожалуйста или пришлите кусочек исходника как считать данные из памяти или записать при помощи VB Ответ: Автор ответа: shadow To CRAZYDIMA: Зачем человеку файл в память катать? Он трейнер к игрушке сделать хочет Вот так это делается: Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 'У вас все должно быть в одну строчку Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessld As Long) As Long Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAcess As Long, ByVal blnheritHandle As Long, ByVal dwProcessld As Long) As Long Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAdress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddess As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWriten As Long) As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Private Sub Command1_Click() Dim hwnd As Long Dim pid As Long Dim pHandle As Long Dim MemVal As Long MemVal = Val(Text1.Text) hwnd = FindWindow(vbNullString, "GTA3") If (hwnd = 0) Then MsgBox "нет такого окна" Exit Sub End If GetWindowThreadProcessId hwnd, pid pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid) If (pHandle = 0) Then MsgBox "немогу хендл взять" Exit Sub End If WriteProcessMemory pHandle, &H94139C, MemVal, 4, 0& WriteProcessMemory pHandle, &H9413A0, MemVal, 4, 0& CloseHandle pHandle End Sub Private Sub Command2_Click() Dim hwnd As Long Dim pid As Long Dim pHandle As Long Dim MemVal As Long hwnd = FindWindow(vbNullString, "GTA3") If (hwnd = 0) Then Exit Sub GetWindowThreadProcessId hwnd, pid pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid) If (pHandle = 0) Then Exit Sub ReadProcessMemory pHandle, &H94139C, MemVal, 4, 0& Text2 = Trim(Str(MemVal)) CloseHandle pHandle End Sub Вопрос: У меня пара вопросиков: 1. Возможно ли сделать под VB форму нестандартной геометрии? К примеру, с отверстиями, скруглёнными краями и т.п. В Delphi такая фишка имеется. Если можно, примерчик пжалста... 2. Как проверить, существует ли такая-то директория или файл в ней? Ответ: Автор ответа: VMJ Лови: http://www.azbukavb.narod.ru/vbcod/vbcod11.html Ответ: Автор ответа: efimov_oleg Почитай архивы. Там были примеры про XЗ--стиль кнопок и т.д. Узнать есть ли папка или файл - через функцию Dir() Прочти Help по ней - там все понятно. Ответ: Автор ответа: shadow Есть встроенные функции: Private Sub Command1_Click() Dim strTmp strTmp = Dir("c:\window*", vbDirectory) ' не путать с DirListBox!!!!!!!! Print strTmp strTmp = Dir("c:\windows\*.txt") 'выведет первый найденный файл с расширением *.txt Print strTmp End Sub 'также 'vbNormal = 0 'Обычный файл.Используется дефолтом 'vbReadOnly = 1 'только чтение 'vbHidden = 2 'скрытый 'vbSystem = 4 'системный 'vbVolume = 8 'метка тома 'vbDirectory = 16 папка 'комбинации атрибутов 'vbHidden+vbDirectory выводит скрытые папки Вопрос: Как получить список компов локальной сети? Ответ: Автор ответа: •Creator• пользуйся этим: Private Declare Function WNetOpenEnum Lib "mpr.dll" Alias "WNetOpenEnumA" (ByVal dwScope As Long, ByVal dwType As Long, ByVal dwUsage As Long, lpNetResource As Any, lphEnum As Long) As Long Private Declare Function WNetEnumResource Lib "mpr.dll" Alias "WNetEnumResourceA" (ByVal hEnum As Long, lpcCount As Long, ByVal lpBuffer As Long, lpBufferSize As Long) As Long Private Declare Function WNetCloseEnum Lib "mpr.dll" (ByVal hEnum As Long) As Long Могу прислать пример после обменом инфой! Он выдаст список всех машин во всех рабочих группах, делал сам, жалко отдавать. пишите •Creator• Вопрос: Nuzhen instaler, kotoryj zainstalirujet .exe, .NET Framework a tak zhe Sybase db, t.e. setup, kotoryj zapuskajet drugije setupy. Mozhet uzhe jest gotovyje produkty? Ответ: Автор ответа: Kuznetsoft Попробуй, например, "Innosetup" http://www.innosetup.com Он бесплатный, и довольно удобный. Текст инсталяшки храниться в файле скриптами. Можно в любое время че-то подредактировать и скомпилить инсталяшку заново... Вопрос: Как сделать, чтобы скрытые папки отображались в DirListBox’e? Ответ: Автор ответа: ]CBK[C...R...a...S...H Там вроде есть параметр hidden поставь там true. Вопрос: Помогите написать код программы который при наведении курсора на папку в Explorer показывал бы ее размер на Form. Или хотя бы ссылку на инфу или исходники или API функции которыми можно воспользоваться. Ответ: Автор ответа: Шкуренко Александр Простейший пример. Dim cnn As ADODB.Connection Dim rst As ADODB.Recordset Const ServerName = "comp\testserver" ' имя SQL сервера Const DataBase = "TestTable" 'имя базы данных Sub AsyncExecute() On Error GoTo ErrHandler Set cnn = New ADODB.Connection ' создаем объект ' подключаемся к базе данных (в этом примере к базе, находящейся на SQL сервере) ' если к базе Access, в строке коннекта нужно изменить провайдера и имя пользователя ' (обычно вместо "sa" - "admin") cnn.Open "Provider=sqloledb;Data Source=" _ & ServerName & ";Initial Catalog=" _ & DataBase, "sa", "sql" Set rst = New ADODB.Recordset ' создаем объект rst.Open "SELECT * FROM Table1", cnn, adOpenStatic, adLockBatchOptimistic, adAsyncExecute ' можно было вместо adAsyncExecute использовать adAsyncFetch( строки после заполнения кэша ' будут получены асинхронно) Timer1.Enabled = True ' включаем таймер Me.MousePointer = vbArrowHourglass Exit Sub ErrHandler: MsgBox Err.Number & " " & Err.Description, vbCritical + vbOKOnly End Sub Private Sub Timer1_Timer() If rst.State = adStateExecuting Then Exit Sub End If ' ОК. Все строки запроса получены Timer1.Enabled = False Me.MousePointer = vbArrow End Sub З.Ы. А вообще тема интерфейса баз данных довольно интересная. Если есть желание развивать тему дальше пишите. Можете заполнить эту форму, либо отослать вопрос СЮДА Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта. |
|||||||||||||||
Выпуск подготовили: |
Сурменок Павел |