VB Студия
Голосование: Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты. Subscribe.Ru увеличило максимальный размер рассылки до 100 кб. В связи с этим вопрос: Какого размера Вы хотели бы получать рассылку? В какой день (дни) недели Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."? С какой периодичностью Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."? Результаты голосования Доска почёта: Sergey Y. Tkachev Кононенко Роман Sergey Sapozhnikov Sobic Ссылки: |
Несколько слов от автора:
Времени мало - готовлю доклад на научно-практическую конференцию. Быстро набросал этот выпуск. Он вышел вовремя.
Читайте! Содержание выпуска
Новости сайта VB Студия
наверх Новости сайта VB Line 28 октября 2001 г. Представляю очень интересную статью: Динамическое создание ДТС-пакетов с помощью VB. Автор работы Андрей Чувахин. В статье показывается программное решение конкретной задачи по копированию данных из таблицы формата ДБФ в базу данных MS SQL Server. 27 октября 2001 г. Сегодня совсем мало обновлений, очень занят. Представляю пример в разделе Примеры как отправить письмо по электронной почте с помощью WinSock. Пример очень интересный, так как позволяет работать с почтой без использования программ посредников. 21 октября 2001 г. Новый сайт про ЭТО Технологии Программирования - Visual Basic, обязательно загляните. Для новичков в разделе Примеры как сделать калькулятор. В Советах можно узнать как открывается CD-ROM. В ActiveX очень хороший контрол для работы с анимационными GIF. 15 октября 2001 г. Здравствуйте, любители Visual Basic! Сегодня совсем мало обновлений. В Примерах можно посмотреть интересный пример: как сохранить картинку в формате GIF и загрузка файлов с FTP сервера. Мало? Сам знаю, что мало, но ничего не поделаешь, нет времени. наверх Выбор элемента листбокса в момент прохода над ним мышки На пустую форму положите листбокс и текстбокс. Ну и этот код, конечно Option Explicit Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _ (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam _ As Long, lParam As Any) As Long Private Const LB_ITEMFROMPOINT = &H1A9 Private Sub Form_Load() With List1 .AddItem "Hello World" .AddItem "Hello Again" .AddItem "Just Example " End With End Sub Private Sub List1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim xPosition As Long Dim yPosition As Long Dim i As Long If Button = 0 Then ' если никакие кнопки не нажаты xPosition = CLng(X / Screen.TwipsPerPixelX) yPosition = CLng(Y / Screen.TwipsPerPixelY) With List1 ' взять выбранный элемент из листа i = SendMessage(.hwnd, _ LB_ITEMFROMPOINT, 0, ByVal _ ((yPosition * 65536) + xPosition)) 'подсветить подсказку к элементу If (i >= 0) And _ (i <= .ListCount) Then .ToolTipText = .List(i) Text1.Text = .List(i) Else .ToolTipText = "" End If End With End If End Sub наверх Заменяем системные цвета на свои собственные На пустую форму положите этот код Option Explicit Private Declare Function SetSysColors Lib "user32" _ (ByVal nChanges As Long, lpSysColor As _ Long, lpColorValues As Long) As Long Private Declare Function GetSysColor& Lib "user32" (ByVal nIndex As Long) 'Можно использовать следующие константы Private Const COLOR_SCROLLBAR = 0 'The Scrollbar colour Private Const COLOR_BACKGROUND = 1 'Colour of the background with no wallpaper Private Const COLOR_ACTIVECAPTION = 2 'Caption of Active Window Private Const COLOR_INACTIVECAPTION = 3 'Caption of Inactive window Private Const COLOR_MENU = 4 'Menu Private Const COLOR_WINDOW = 5 'Windows background Private Const COLOR_WINDOWFRAME = 6 'Window frame Private Const COLOR_MENUTEXT = 7 'Window Text Private Const COLOR_WINDOWTEXT = 8 '3D dark shadow (Win95) Private Const COLOR_CAPTIONTEXT = 9 'Text in window caption Private Const COLOR_ACTIVEBORDER = 10 'Border of active window Private Const COLOR_INACTIVEBORDER = 11 'Border of inactive window Private Const COLOR_APPWORKSPACE = 12 'Background of MDI desktop Private Const COLOR_HIGHLIGHT = 13 'Selected item background Private Const COLOR_HIGHLIGHTTEXT = 14 'Selected menu item Private Const COLOR_BTNFACE = 15 'Button Private Const COLOR_BTNSHADOW = 16 '3D shading of button Private Const COLOR_GRAYTEXT = 17 'Grey text, of zero if dithering is used. Private Const COLOR_BTNTEXT = 18 'Button text Private Const COLOR_INACTIVECAPTIONTEXT = 19 'Text of inactive window Private Const COLOR_BTNHIGHLIGHT = 20 '3D highlight of button Dim OldColor As Long Private Sub Form_Load() 'Эапоминаем текущий цвет OldColor = GetSysColor(COLOR_ACTIVECAPTION) SetSysColors 1, COLOR_ACTIVECAPTION, RGB(255, 0, 0) End Sub Private Sub Form_Unload(Cancel As Integer) 'Восстанавливаем текущий цвет SetSysColors 1, COLOR_ACTIVECAPTION, OldColor End Sub наверх Как убрать программу из списка Ctrl-Alt-Del Чтобы сделать это, вам нужно зарегестрировать программу как сервис. Это делается следующими API-функциями: Вставьте этот код в раздел общих описаний (General Declarations) Public Declare Function GetCurrentProcessId _ Lib "kernel32" () As Long Public Declare Function GetCurrentProcess _ Lib "kernel32" () As Long Public Declare Function RegisterServiceProcess _ Lib "kernel32" (ByVal dwProcessID As Long, _ ByVal dwType As Long) As Long Public Const RSP_SIMPLE_SERVICE = 1 Public Const RSP_UNREGISTER_SERVICE = 0 Чтобы убрать вашу программу из списка Ctrl+Alt+Delete list, используйте процедуру MakeMeService: Public Sub MakeMeService() Dim pid As Long Dim reserv As Long pid = GetCurrentProcessId() regserv = RegisterServiceProcess(pid, RSP_SIMPLE_SERVICE) End Sub Чтобы показать вашу программу в списке Ctrl+Alt+Delete, используйте процедуру UnMakeMeService: Public Sub UnMakeMeService() Dim pid As Long Dim reserv As Long pid = GetCurrentProcessId() regserv = RegisterServiceProcess(pid, _ RSP_UNREGISTER_SERVICE) End Sub Не забудьте дерегистрировать вашу программу, как сервис, чтобы освободить системные ресурсы, используя UnMakeMeService. наверх Как запретить ресайзинг формы, избегая мерцания? Я, Медведев Александр, изобрел очень простой способ избавиться от мерцания при запрещении ресайза формы: Private Sub Form_Resize() Me.Move 0,0,3600,3600 End sub Мой способ позволяет не использовать API со множеством лишних слов :))) Как говорится, все гениальное просто. Private Sub Form_Resize() Me.Enabled = False Me.Enabled = True End Sub наверх Книги Visual Basic 6.0 ( Руководство для программистов )
Язык программирования Visual Basic - мощный
инструмент разработки приложений для 32-разрядных систем Windows 95 и
Windows NT. Нет данных по
автору(ам), «БХВ - Санкт-Петербург» — 2000, 959
стр. SQL (Полное руководство)Второе издание существенно расширенное и обновленное описание языка SQL, являющегося основным инструментом работы с реляционными базами данных. Д. Р. Грофф,
«СПАРРК, Издательская группа BHV» — 2001, 816 стр. Анонсы эхо-конференций СообЧа WindowsWindows, как много в этом слове… Группа, предназначенная
для решения любых проблем и вопросов, возникающих при
работе с операционными системами семейства MS Windows. Подписаться Советы от сНежногоМаленькие полезные советы и обмен скрытыми и
недокументированными фичами, фишками, фенечками и
прибамбасами в ОС, программах и железе. Подписаться наверх Доска объявлений Объявляется конкурс на лучщий баннер для сайта VB Студия. Приз за лучший баннер - 5000 баннеров баннерообменной сети TLE. Вопросы и предложения по этому адресу Требуется человек, знающий HTML для работы с сайтом группы СооБчаVB. Вопросы и предложения по этому адресу
Мои программы BalloonMessage for MS Agent BalloonMessage for Microsoft Agent реализует диалог программы с
пользователем, используя при этом технологию Microsoft Agent. OCX реализует три
типа диалоговых окон: InputBox, MsgBox и MsgLabels. наверх Вопрос/Ответ Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы. Вопросы:Автор вопроса: Serge Ответ ожидается по этому адресу Может кто-то подскажет, как можно автоматизировать отправку факсом "аксес репорт" или "кристал репорт" с помощью VB. Сам не видел, но говорят, что это возможно. Автор вопроса: Мунгалов АВ Ответ ожидается по этому адресу Вопрос такой - как из программы сжать базу ACCESS - удалить физически все удаленные записи. Автор вопроса: Олег Чижов Ответ ожидается по этому адресу Как в VB организовать передачу данных по сети (например, по протоколу TCP/IP)? Автор вопроса: Vint Ответ ожидается по этому адресу Товарищи!!! Очень нужен ОСХ типа таблички но не стандартный и чтобы умел работать со стандартной Данные. Автор вопроса: Света Ответ ожидается по этому адресу Как добавить в Intenet Explorer свой toolbar (kak Google)? Автор вопроса: ReS Ответ ожидается по этому адресу Как в VB подключить сетевой диск. Автор вопроса: Pun Ответ ожидается по этому адресу Как под Access ия программного кода сжать баяу данных. Автор вопроса: Moiseev@SPB.MMBANK.ru Ответ ожидается по этому адресу Нужно сделать редактор временных диаграмм для цифровых устройств - некий цифровой осциллограф. Одиночные сигналы, шины, получения среза в определенный момент и т.д. и т.п. Очень не хочется тратить свое время на ваяние. Подскожите может есть библиотечки сильно могущие помочь в этом нелегком ратном деле. Если знаете отклинитесь. Можно для любой Windows системы разработки. Автор вопроса: Андрей Ответ ожидается по этому адресу Помогите, граждане! Нужно мерить напряжение 40 Гц, подаваемое на линейный вход звуковой карты. Как это сделать? Нашёл прогу - используется микрофонный вход, но как заставить измерять с линейного - не могу разобраться. Нигде в сети не нашёл полного справочника по API, да и вряд ли быстро разберусь - чайник истчо. Спасибо сочувствующим :) Ответы: Вопрос: Вы не подскажите как научить VB копировать каталоги и работать с архиватором. Я только начинаю работать с VB и хотел написать программу резервного копирования. Ответ: Автор ответа: Kirill Я конечно посоветовал бы начинать с чего-нибудь попороще, но с другой стороны надо же когда-то начинать делать и что-то посложнее! :) Работать с каталогами в ВБ не просто, а очень просто. Для этого достаточно подключить к проекту библиотеку Microsoft Scripting Runtime (если в списке библиотек, который выпадает при нажатии в меню "Project" пункта "References..." такого названия нет, но надо нажать там же кнопку "Browse" и вручную найти файл c:\windows\system\scrrun.dll) После подключения библиотеки в программе можно оперировать переменными типа Folder, File и т.п. Самое главное -- для доступа ко всем этим объектам сначала надо создать объект FileSystemObject : '... Dim fso As FileSystemObject Dim iFolder As Folder '... Set fso = New FileSystemObject Set iFolder = fso.GetFolder("полное_имя_каталога") iFolder.Copy "путь_для_резервной_копии" '... Set iFolder = Nothing Set fso = Nothing '... Вобщем крайне полезная библиотека для работы с объектами файловой системы. Вот с архивированием дело обстоит сложнее. Можно пользоваться предположим консольным архиватором, запуская его с помощью команды Shell из VB или используя API-функции (что в принципе надежнее, но для начала сложновато): '... Dim filesToArc As String '... filesToArc = "какой-то_путь" & "*.doc" Shell "arj a " & filesToArc & " полное_имя_архива.arj", vbHide Параметр vbHide нужен, чтобы не показывать юзеру окно архиватора. Есть еще вариант с объявлением внешней функции из dll установленного архиватора, например, WinZip'а, в библиотеке WZ32.DLL которого имеются следующие функции: DragAppendFile DragCreateFiles WZ56 uncompress uncompress_init unzip unzip_init zip zip_init ziplabelDiskette zipmemcompress zipsplit zipwipeDiskette Я так думаю, что функции zip и unzip -- это то, что нужно, но с какими параметрами их запускать, а следовательно и как объявлять их в модуле, я к сожалению не знаю. И еще можно предложить самому написать код для архивирования по известному алгоритму (думаю в И-нете можно довольно просто найти кучу таких алгоритмов с примерами кода) Вопрос: Вы не подскажите как научить VB копировать каталоги и работать с архиватором. Я только начинаю работать с VB и хотел написать программу резервного копирования. Ответ: Автор ответа: Sergey Y. Tkachev Описывать то, как работать с каталогами я не буду - в сети полно статей по этому поводу, а вот архивация - это штука интересная. Когда-то я сам долго мучался этим вопросом, пока мне не подвернулись эти контролы, решающие все проблемы. http://vb-studio.boom.ru/controls/VFunzip.zip - Для раззипования. http://vb-studio.boom.ru/controls/VFzip.zip - Для зипования Вопрос: Не могу найти, что нужно и как писать код для ловли всех (или почти всех) прерываний от клавиатуры и работы с ними. Ответ: Автор ответа: Стас Думаю, может помочь такая вещь, как subclassing: Я в интернете нашел контрол msghook.ocx , который ловит API типа sendmessage(WM_что_угодно), только у него в свойствах надо указать, какие WM_... надо ловить и к каким окнам (в т.ч. контролам) они должны быть адресованы. После чего всякий раз при возникновении этого sendmessage() запускается событие для msghook и при его обработке можно выполнить свой код. Можете заполнить эту форму, либо отослать вопрос СЮДА Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта. |
Выпуск подготовили: | Сурменок Павел и Шатрыкин Иван |