VBNet
VBMania
Голосование: Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом. Ссылки: |
Господа!!! читайте MSDN!!! Несколько слов от автора:
звините, что опоздал... Вчера склепал несколько кодов. Только вот, мне ближе .NET, поэтому сегодня коды касаются программирования под .NET Framework (за исключением первого кода).
Читайте! Содержание выпуска
Книги
Остальные книги о VB можно найти здесь. наверх Очистка всех листбоксов на форме Процедура, очищающая все листбоксы, распооженные на указанной в параметре frmTarget форме. Public Sub ClearListBoxes(frmTarget As Form) Dim i As Integer Dim j As Integer Dim ctrltarget As Object For i = 0 To (frmTarget.Controls.count - 1) Set ctrltarget = frmTarget.Controls(i) If TypeOf ctrltarget Is ListBox Then ctrltarget.clear End If Next i End Sub наверх Получение текущей строки DataGrid Очень часто требуется получить строку (DataRow), выделенную в DataGrid. Можно было бы просто получить строку из коллекции Rows объекта DataTable с индексом равным свойству CurrentRowIndex грида, но это будет работать, только если грид не отсортирован. Иначе индекс строки грида и индекс в коллекции Rows не совпадут. Предлагаю вам 2 функции. Вункция GetCurrentRow возвращает текущую строку DataGrid'а, указанного в параметре функции. А функция GetRow позволяет получить строку с произвольным номером. Public Function GetCurrentRow(ByVal Grid As DataGrid) As DataRow Dim cm As CurrencyManager = CType(Grid.BindingContext(Grid.DataSource, Grid.DataMember), CurrencyManager) Dim drv As DataRowView = CType(cm.Current, DataRowView) Return drv.Row End Function Public Function GetRow(ByVal Grid As DataGrid, ByVal ID As Integer) As DataRow Dim cm As CurrencyManager = CType(Grid.BindingContext(Grid.DataSource, Grid.DataMember), CurrencyManager) Dim dv As DataView = CType(cm.List, DataView) Dim drv As DataRowView = dv(ID) Return drv.Row End Function наверх Получение объекта Graphics для PictureBox Небольшая, но несомненно полезная функция. Заимствована мной из книги Евангелоса Петрусоса "Эффективная работа с Visual Basic .NET". Она создаёт объект Graphics для заданного объекта PictureBox. Public Function GetGraphicsObject(ByVal pic As PictureBox) As Graphics Dim bmp As Bitmap bmp = New Bitmap(pic.Width, pic.Height - 50) pic.Image = bmp Dim G As Graphics G = Graphics.FromImage(bmp) Return G End Function наверх Отправка письма средствами TheBat! Для своего проекта я когда-то сделал очень полезную процедуру. Она создаёт письмо и закидывает его в папку OutBox почтовика TheBat!. Заодно вы научитесь производить запись файлов и запускать процесс. Писал я этот код для себя, поэтому в некоторых местах требует доработки. Во-первых, следует изменить имя ящика, куда мы закидываем письмо (у меня он называется "Main"). Во-вторых, нужно предварительно проверить, где лежит TheBat.exe. Опс... Чуть не забыл: нужно ещё положить рядом с вашим exe файл с именем msg.tpl. Он приведён ниже. Это шаблон файла .msg, который будет импортирован в папку OutBox. Процедура отправки письма: Private Sub SendMess(ByVal Text As String, ByVal subject As String, ByVal Name As String, ByVal Email As String) Dim tpl As String Dim mess As String Dim fs As IO.FileStream Dim sr As IO.StreamReader Dim sw As IO.StreamWriter fs = New IO.FileStream(System.AppDomain.CurrentDomain.BaseDirectory & "msg.tpl", IO.FileMode.Open, IO.FileAccess.Read) sr = New IO.StreamReader(fs, System.Text.Encoding.GetEncoding(1251)) tpl = sr.ReadToEnd() mess = Replace(tpl, "[text]", Text) mess = Replace(mess, "[subject]", subject) mess = Replace(mess, "[now]", Now.ToString("r")) mess = Replace(mess, "[to]", Name & " <" & Email & ">") fs = New IO.FileStream("C:\ temp.msg", IO.FileMode.Create, IO.FileAccess.Write) sw = New IO.StreamWriter(fs, System.Text.Encoding.GetEncoding(1251)) sw.Write(mess) sw.Close() fs.Close() Process.Start("C:\Program files\The Bat!\thebat.exe", "/IMPORTF=""\\Main\Outbox"";FILE=C:\temp\temp.msg;READ") 'Здесь следует подправить путь к TheBat.exe и название почтового ящика End Sub Файл msg.tpl. Тут тоже следует кое-что подправить (поля From и Reply-To). Date: [now] From: Your name <vasya@pupkin.ru> X-Mailer: MyProgram Reply-To: Your name <vasya@pupkin.ru> X-Priority: 3 (Normal) To: [to] Subject: [subject] MIME-Version: 1.0 Content-Type: text/plain; charset=Windows-1251 Content-Transfer-Encoding: 8bit [text] наверх Мои программы BalloonMessage for MS Agent BalloonMessage for Microsoft Agent реализует диалог программы с
пользователем, используя при этом технологию Microsoft Agent. OCX реализует три
типа диалоговых окон: InputBox, MsgBox и MsgLabels. Автора: Шатрыкин Иван и Павел Сурменок. наверх Вопрос/Ответ Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы. Вопросы:Автор вопроса: Maxim Ответ ожидается по этому адресу Написал прогу, но не знаю - будет ли работать на других компах: Прога следующего содержания: Создал DTHML страницу. При загрузке, страница читает из реестра адрес(getsetting) и грузит по этому адресу ресурс и и-нета в Image.src. Страница, как и любой DHTML, работает (правильно работает) только при наличии DLL-шки, путь к которой он запоминает при компиле(куда компилировал - там и ищет). Я скомпилил в "С:\", что значительно расширяет список компов, которым прога становится доступна(лучше, чем не чего). Но осенило: а будет ли этот DHTML ВООБЩЕ работать на других машинах?? Может кто-нибудь захочет по-узать "Просмотрщик графики в и-нет"?? Или ответьте пожалуйста на вопрос. Может реестр/ДХТМЛ - это муть, и достаточно WebBrowser.navinate?? Вообще подскажите, как лучше это дело устроить... Даже при помощи той мути, что я на мудрил, нет доступа ко всем ресурсам. Например, фоменковские приколы не грузит. А я встречал прогу, которая делала это легко, вот я тоже хочу такую сделать. Про плохое качество связи с мировой паутиной молчу... Автор вопроса: Александр Ответ ожидается по этому адресу Подскажите пожалуйста или пришлите кусочек исходника как считать данные из памяти или записать при помощи VB Автор вопроса: Sergey Ответ ожидается по этому адресу Где можно найти инфу по всем свойствам и методам winsock! Автор вопроса: P@Ssword Ответ ожидается по этому адресу Как к кнопочкам "свернуть", "раявернуть", "яакрыть" в заголовке окна добавить свою? Автор вопроса: Vao Ответ ожидается по этому адресу Скажите, пожалуйста, как сделать контрол DirListBox в виде проводника? Автор вопроса: Валерий Ответ ожидается по этому адресу У меня нет функции AdressOf (VBA Office97) Как можно ее заменить и чем? Автор вопроса: Rex Ответ ожидается по этому адресу Как можно в проге сделать так, чтобы она была поверх всех окон (как у StatWin 5.5), и запретить или что-то в этом роде доступ к другим программам(меню и др.) кроме этой. И как скрыть её от Ctrl+Alt+Del? Если знаете, то киньте мне на мыло или опубликуйте здесь. Автор вопроса: Ladyzhenkov Alexander Ответ ожидается по этому адресу У меня пара вопросиков: 1. Возможно ли сделать под VB форму нестандартной геометрии? К примеру, с отверстиями, скруглёнными краями и т.п. В Delphi такая фишка имеется. Если можно, примерчик пжалста... 2. Как проверить, существует ли такая-то директория или файл в ней? Автор вопроса: Bilenko Anatoly Ответ ожидается по этому адресу Как работать с объектом MSWord Microsoft Equation ??? Автор вопроса: Alex Ответ ожидается по этому адресу Как получить список компов локальной сети? Автор вопроса: Анатолий Ответ ожидается по этому адресу Как определить координаты курсора в TextBox или RichTextBox (т.е. номер текущей строки и номер текущего символа на этой строке) с последующей их передачей в StatusBar. Это нужно для контроля при вводе форматированных данных Автор вопроса: Роман Ответ ожидается по этому адресу Как пользоваться Microsoft Voice Commands? Автор вопроса: goodroman Ответ ожидается по этому адресу Как получить дескриптор (hwnd) активного окна, которое не принадлежит моему приложению? Т.е. GetActiveWindow не прокатывает. Автор вопроса: HoodWin Ответ ожидается по этому адресу Подскажите как работает API функция и как можно записать про помощи неё новое значение в определённую ячейку памяти. Вот как выглядит функция: WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long Объясните, что значат параметры IpBuffer, nSize и lnNumberOfBytesWritten и в какой из них нужно записывать новое значение. И ещё подскажите как работает ReadProcessMemory и объясните её параметры. Очень нужно. Автор вопроса: Dalius Ответ ожидается по этому адресу Nuzhen instaler, kotoryj zainstalirujet .exe, .NET Framework a tak zhe Sybase db, t.e. setup, kotoryj zapuskajet drugije setupy. Mozhet uzhe jest gotovyje produkty? Автор вопроса: Володя Ответ ожидается по этому адресу Некоторые программы, которые я создал,ну не как не хотят запускаться на "компе" моего друга. При запуске выдаётся ошибка о повреждённом файле динамической библиотеки. Кто знает, подскажите в чём дело? Автор вопроса: Vir Ответ ожидается по этому адресу Подскажите, кто может зает, как с фотокамеры считать фотографию программно, за любую инфу блогодарен, желательно без DLL/OCX. Автор вопроса: 001 Ответ ожидается по этому адресу У меня такой вопрос: я делал проекты на ASP, но ни разу еще не запусал их в ИНЕТ. Подскажите, имеет ли бесплатный хостинг поддержку ASP скриптов? Ответы: Вопрос: Известно, как картинку, которая находится в Picture1.Picture сохранить через диалоговое окно. А как сделать, чтобы в Листбоксе диалогового окна можно было бы выбирать несколько форматов сохранения (BMP,JPG,GIF)? Ответ: Автор ответа: Maxim CommonDialog1.Flags = cdlOFNFileMustExist + cdlOFNHideReadOnly CommonDialog1.Filter = "Точечный рисунок (*.bmp)|*.bmp|JPEG (*.jpg)|*JPG|GIF (*.gif)|*.gif|" CommonDialog1.ShowOpen Вопрос: Подскажите, пожалуйста, можно ли восстановить из EXEшника исходник? Ответ: Автор ответа: Maxim Дисассемблером, например, WinDasm. Вопрос: Подскажите как пользоваться API функциями OpenProcess, ReadProcessMemory, WriteProcessMemory? Ответ: Автор ответа: Maxim Api.com или api.net (не помню) Вопрос: Как сделать так, чтобы программа, прописалась в реестре винды (где нбудь в Run)? Ответ: Автор ответа: Денис Добавить в автозагрузку: Set reg = CreateObject("wscript.shell") reg.regwrite "HKLM\Software\Microsoft\CurrentVersion\Run\" & "Имя файла", "c:\Путь" Удалить из автозагрузки: Set reg = CreateObject("wscript.shell") Reg.Regdelete "HKLM\Software\Microsoft\CurrentVersion\Run\" & "Имя файла" Вопрос: Как бы мне к серваку подключиться? Есть IP сервака, порт, логин и пароль. После этого на серваке выполнить некоторую команду и "прочитать" его ответ? Ответ: Автор ответа: AndroiD Winsock'ом... Могу кинуть сэмпл для "общения" с e-mail сервером. Вопрос: Народ, кто-нибудь создавал отчуждаемые приложения Ассеss или может что слышали по этой теме? Ответ: Автор ответа: Артем Меняйленко В Office Developer Edition есть Setup Kit, создающий wizard, инсталлирующий базу и Run-time модуль для ее запуска без Access. Вопрос: Как сделать, чтобы при клике по метке с "мыльным" адресом открывалась заготовка сообщения? Ответ: Автор ответа: Vladimir [PRC] Запустить браузер или почтовик по умолчанию: Shell "start http://адрес сайта/" - открытие страницы в браузере Shell "start mailto:e-mail" - создание сообщения для адресата e-mail Ответ: Автор ответа: AndroiD ShellExecute'ом. В качестве параметра - строка вида "mailto:vassya_pupkin@mail.ru" Откроется стандарный мэйлер и сам создаст новое сообщение на указанный адрес. Можно туда же добавить "?Subject=тема". Ответ: Автор ответа: Славик 'Объявление (данный пример для модуля) Public 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) 'Этот код вставляешь в событие Label_Click() Call ShellExecute(0&, "Open", "mailto:" + "адрес@mail.ru " + "?Subject=" + "Тема письма" + "&body=" + "Письмо", "", "", 1) Ответ: Автор ответа: Maxim 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) Private Sub Label1_Click() Label1.FontBold = True Call ShellExecute(0&, "Open", "mailto:" + "Miki@online.sinor.ru" + "?Subject=" + _ "Как сделать, чтобы при клике по метке с "мыльным" адресом открывалась заготовка сообщения?" + "&body=" + "Привет, Максим!!!", "", "", 1) End Sub Вопрос: Как сделать help? Ответ: Автор ответа: AndroiD Micosoft Help Workshop. Клепает хелп из RTF файлов. Или html. Есть в комплекте VB. Ответ: Автор ответа: Maxim У меня есть целая глава электронной(HTML) книги, где рассказывается о хелпе в стиле WinHelp. Могу намылить. В архиве весит около 100 кб. Если ты это имел в виду. Вопрос: Расскажите, как осуществляется в VB передача параметров в программу и прием ей их. Ответ: Автор ответа: AndroiD Параметры передаются так же, как и любой другой проге. А чтобы их узнать, надо воспользоваться ф-ей Command$. Потом ее можно разбить на массив параметров функцией Split. По разделителю "-". Я так делаю. Ответ: Автор ответа: Артем Меняйленко Для этого есть переменная Command$, содержащая ключи командной строки. Ответ: Автор ответа: Данила Приём и передачу можно сделать 3 способами: командной строкой, промежуточным файлом, записью в реестре (не рекомендуется). 1) Передача: Shell "путь и командная строка". Приём: w = Command 2) Передача: пишем файл (к примеру TXT с помощью команд Open и Output) и запускаем приложение. Приём: открываем файл (к примеру TXT с помощью команд Open и Input) 3) не привожу по причине выше Ответ: Автор ответа: Nechaev Sergey Есть фунция command(), которая выдаст тебе все, что написал юзер после имени файла проги в командной строке. Как ты будешь обрабатывать полученныую строку - решать тебе. Вопрос: Как можно произвести сохранение html-страницы методами VB, при условии, что броузер написан в VB, путем использования стандартных компонентов VB Ответ: Автор ответа: AndroiD А просто стандартными инет контролами открываешь страницу как текстовый файл, заливаешь и сохраняешь с расширением htm. Вопрос: При написании программы поиска и обработки файла dbf в архиве возникли вопросы 1. как организовать поиск файла по маске 2. разархивировать Zip без использования WINZip Ответ: Автор ответа: CRAZYDIMA Юзай WinAPI! FindFirstFile, FindNextFile, FindClose! Там указывай путь поиска с маской и организовывай рекурсию по сканированию вложенных папок. Если будет напряг - пиши. Ответ: Автор ответа: Соловьёв Александр Цитата с форума RELIB.com: http://vbrussian.com/Files/AfileLib.zip - ActiveX DLL для работы с архивами RAR или ZIP. DLL представляет из себя простой интерфейс для работы с консольными версиями указанных архиваторов. Так -же содержит под 50 методов для работы с файлами. Такие как удаление непустого каталога со всем содержимым, копирование непустого каталога, и многое другое (пример включен в архив). Автор Андрей Федоров От себя - пробовал, все работает!!! Если будут проблемы с поиском консольных версий архиваторов, мыль мне ngale@mail.ru - пришлю!!! Можете заполнить эту форму, либо отослать вопрос СЮДА Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта. |
|||||||||||||||
Выпуск подготовили: |
Сурменок Павел |