Книги
|
|
Переход на 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 можно найти
здесь.
наверх
MS Agent CD
Уникальный компакт диск от Шатрыкина
Ивана (VBNet.Ru)! На диске вы сможете найти все
для работы с Microsoft Agent!
- Ядро Agent для установки на ваш компьютер,
если его там еще нет - вы можете его
распространять с вашими программами.
- Полный справочник по Agent от Microsoft -
используйте технологию Agent на полную мощь.
- Справочник по Agent на русском языке от
Анатолия Климова - уникальный справочник.
- Статьи по технологии Agent! - научитесь
работе с компонентом Agent с самых азов.
- Русский модуль речевого синтеза! - Ваша
программа заговорит по-русски!
- Коллекция примеров по работе с Agent -
несколько примеров от Microsoft и от сайта
VBNet.Ru.
- Редактор персонажей от Microsoft - создайте
свои уникальный персонаж!
- Уникальная коллекция персонажей! -
десятки бесплатных персонажей для ваших
программ, выберите персонажа по вкусу!.
- Другие примочки к Agent-у в подарок!
Все компоненты, представленные на диске,
не имеют лицензионных ограничений и
свободны от авторских отчислений.
Покупайте диск - вы не пожалеете!
Стоимость: 95 рублей
наверх
Спрятать программу из Панели Задач
Данный пример покажет, как можно спрятать вашу
программу из панели задач, а затем показать.
Обратите внимание на функцию SetWindowPos - во
время показа формы вы можете установить место
появления формы, а также новые размеры формы.
Разместите на форме 3 элемента CommandButton и элемент
Timer. При нажатии на Command1 программа прячется как из
панели задач, так и из видимых программ. Событие
Timer1_Timer через 5 секунд покажет вашу програаму. При
нажатии на Command2 программа удаляется из панели
задач, но остается видимой, нажатие на Command3
покажет вашу программу в панели задач. Одна
странность: при нажатии второй раз на Command2
программа будет показана на панели задач.
Const WS_EX_APPWINDOW = &H40000
Const GWL_STYLE = (-16)
Const GWL_EXSTYLE = (-20)
Const SW_HIDE = 0
Const SW_NORMAL = 1
Private Declare Function GetWindowLong Lib "user32" Alias
"GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias
"SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As
Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA"
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal
nCmdShow As Long) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal
hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As
Long, ByVal wFlags As Long) As Long
Const SWP_SHOWWINDOW = &H40
Const SWP_HIDEWINDOW = &H80
Dim ret&
Private Sub Command1_Click() 'Этот код спрячет вашу программу
из панели задач, также спрячет саму форму
ret = SetWindowPos(Form1.hwnd, 0, Form1.Left, Form1.Top, Form1.Width, Form1.Height,
SWP_HIDEWINDOW)
Timer1.Enabled = True
End Sub
Private Sub Form_Load()
Timer1.Interval = 5000
End Sub
Private Sub Timer1_Timer() 'Этот код покажет вашу форму через
5 секунд
ret = SetWindowPos(Form1.hwnd, 0, 0, 0, 500, 500, SWP_SHOWWINDOW)
End Sub
Private Sub Command2_Click() 'событие спрячет вашу прогу из
панели задач. Программа остается видимой
ShowWindow Form1.hwnd, SW_HIDE
ret = GetWindowLong(Form1.hwnd, GWL_EXSTYLE)
SetWindowLong Form1.hwnd, GWL_EXSTYLE, ret Xor WS_EX_APPWINDOW
ShowWindow Form1.hwnd, SW_NORMAL
Timer1.Enabled = False
End Sub
Private Sub Command3_Click() 'событие покажет программу в
панели задач
ShowWindow Form1.hwnd, SW_HIDE
ret = GetWindowLong(Form1.hwnd, GWL_EXSTYLE)
SetWindowLong Form1.hwnd, GWL_EXSTYLE, ret Or WS_EX_APPWINDOW
ShowWindow Form1.hwnd, SW_NORMAL
Timer1.Enabled = False
End Sub
наверх
Проверка новых версий программы через Интернет
Данный пример покажет, как ваша программа может
проверять через Интернет, появилась ли новая
версия. Естественно, должно быть активное
соединение с Инетом.
Прежде всего вам нужен, к примеру, текстовой
файл в Инете, в котором лежит необходимая
информация о версии файла (в данном примере всего
лишь дата последнего изменения программы -
2001_07_15). Также вам необходимо расположить на форме
элемент Inet1 (меню Project|Components - Microsoft
Internet Transfer Control 6.0) а также элемент CommandButton
Private Sub Command1_Click()
a$ = Inet1.OpenURL("http://sharig.webzone.ru/version.txt", icString)
'поскольку мы точно знаем, сколько символов в
новой дате, то...
a$ = Mid(a$, 1, 10)
If a$ = "" Then
MsgBox "Сервер недоступен, попробуйте загрузить
попозже.", vbOKOnly, "Обновление программы"
Exit Sub
End If
'вы можете предусмотреть (самостоятельно) с чем
сравнивать новую дату (a$) с предыдущей
("2001-12-14")
If a$ <> "2001-12-14" Then
y$ = "На сервере появилась новая версия
программы. Хотите загрузить?"
b$ = MsgBox(y$, vbYesNo, "Обновление программы")
'запуск броузера к странице загрузки программы
If b$ = 6 Then Shell ("C:\Program Files\Internet Explorer\IExplore -nohome" +
"http://sharig.webzone.ru/IndexAbout.htm"), vbMaximizedFocus
Else
MsgBox "На сервере старая версия"
End If
End Sub
наверх
Как в программе переждать паузу между выполнениями команд
Предположим, вам надо подождать несколько секунд перед выполнением каких-либо действий в вашей программе. Вашему вниманию предлагается два решения проблемы. Первое решение прислали из группы SOOBCHA_VB, второе - где-то нашел в бесконечных примерах на моем жестком диске.
ВАРИАНТ 1. Если вам нужно переждать
несколько СЕКУНД
Function Delay(Pause As Single)
Dim Start As Single
Start = Timer
Do While Timer < Start + Pause
DoEvents
Loop
End Function
ВАРИАНТ 2. Если вам нужно переждать
несколько МИНУТ
Public Sub Sleeping(NumberOfMinute As Double)
Dim FinishTime As Date
FinishTime = DateAdd("n", NumberOfMinute, Now)
Do Until FinishTime <= Now
DoEvents
Loop
End Sub
ПРОВЕРКА ВЫПОЛНЕНИЯ КОДА ВАРИАНТА 1 ИЛИ 2
Private Sub Form_Paint()
Print Time
'выберите, какой вариант вам больше по душе
Delay (5) 'или Sleeping (5)
'и в том, и в другом случае указывается время в
секундах
Print Time
End Sub
ВАРИАНТ 3. Если вам нужно переждать
несколько СЕКУНД...
Private Declare Sub sapiSleep Lib "kernel32" Alias "Sleep" (ByVal
dwMilliseconds As Long)
Private Sub Form_Paint()
Print Time()
Call sapiSleep(1000) 'в миллисекундах
Print "Прежде чем напечататься, прошло 1000
миллисекунд"
Print Time()
End Sub
наверх
Запустить приложение, ассоциированное с расширением файла
'ВАРИАНТ1
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 Declare Function GetDesktopWindow Lib "user32" () As Long
Function startdoc(DocName As String)
Dim Scr_hDC As Long
Scr_hDC = GetDesktopWindow()
startdoc = ShellExecute(Scr_hDC, "Open", DocName, "", "C:\",
1)
End Function
Private Sub Command1_Click()
Dim r As Long
'укажите путь к вашему файлу
r = startdoc("D:\garbage\garik.xls")
End Sub
'ВАРИАНТ2
Предположим, у вас есть файл в формате htm. Вам
необходимо открыть его в программе по умолчанию
(у большинства это ИнтернетЭксплорер). Данный код
запустит Эксплорер и откроет в своем окне
указанный вами htm-файл.
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
Const SW_SHOWMAXIMIZED = 3
'использование
ShellExecute 0, "open", "D:\Basic\htm\api01.htm", "",
"", SW_SHOWMAXIMIZED
'или
'ShellExecute 0, "open", "api01.htm", "", "",
SW_SHOWMAXIMIZED
наверх
Подсчитать количество копий запущенной программы
Данный пример покажет, как можно подсчитать
количество запущенных окон броузера Microsoft Internet
Explorer. Только одна проблема:
при вторичном исполнении кода происходит
суммирование с предыдущими результатами
подсчета. Если найдется желающий докопаться до
ошибки, пришлите мне исправленный
вариант.
Расположите на форме элемент CommandButton,
а также добавьте дополнительный отдельный модуль.
'КОД ФОРМЫ
Private Sub Command1_Click()
Dim iIEInstances As Integer
iIEInstances = AppInstances("Microsoft Internet Explorer")
MsgBox iIEInstances
End Sub
'КОД МОДУЛЯ
Option Compare Text
Private Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long,
ByVal lParam As Long) As Long
Private Declare Function GetWindowText Lib "user32" Alias
"GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As
Long) As Long
Private pbExact As Boolean
Private psAppString As String
Private piAppCount As Integer
Public Function AppInstances(AppNamePart As String, Optional ExactMatchOnly As Boolean) As
Integer
'параметры:
'AppNamePart = любая часть заголовка или приложения
'пример использования
'dim iIEInstances as integer
'iIEInstances = AppInstances("Microsoft Internet Explorer")
Dim lRet As Long
psAppString = AppNamePart
pbExact = ExactMatchOnly
lRet = EnumWindows(AddressOf CheckForInstance, 0)
AppInstances = piAppCount
End Function
Private Function CheckForInstance(ByVal lhWnd As Long, ByVal lParam As Long) As Long
Dim sTitle As String
Dim lRet As Long
Dim iNew As Integer
sTitle = Space(255)
lRet = GetWindowText(lhWnd, sTitle, 255)
sTitle = StripNull(sTitle)
If sTitle <> "" Then
If pbExact Then
If sTitle = psAppString Then piAppCount = piAppCount + 1
Else
If InStr(sTitle, psAppString) > 0 Then piAppCount = piAppCount + 1
End If
End If
CheckForInstance = True
End Function
Private Function StripNull(ByVal InString As String) As String
Dim iNull As Integer
If Len(InString) > 0 Then
iNull = InStr(InString, vbNullChar)
Select Case iNull
Case 0
StripNull = InString
Case 1
StripNull = ""
Case Else
StripNull = Left$(InString, iNull - 1)
End Select
End If
End Function
наверх
Связать расширение файла с приложением
Данный пример покажет, как можно связать файлы с расширением .BAR с вашим приложением. В моем случае - это приложение для редактирования текстовых файлов.
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias
"RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As
Long) As Long
Private Declare Function RegSetValue Lib "advapi32.dll" Alias
"RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As
Long, ByVal lpData As String, ByVal cbData As Long) As Long
' Return codes from Registration functions.
Const ERROR_SUCCESS = 0&
Const ERROR_BADDB = 1&
Const ERROR_BADKEY = 2&
Const ERROR_CANTOPEN = 3&
Const ERROR_CANTREAD = 4&
Const ERROR_CANTWRITE = 5&
Const ERROR_OUTOFMEMORY = 6&
Const ERROR_INVALID_PARAMETER = 7&
Const ERROR_ACCESS_DENIED = 8&
Private Const HKEY_CLASSES_ROOT = &H80000000
Private Const MAX_PATH = 260&
Private Const REG_SZ = 1
Private Sub Command1_Click()
Dim sKeyName As String
Dim sKeyValue As String
Dim ret&
Dim lphKey&
'Создание ключа "MyApp".
sKeyName = "MyApp"
sKeyValue = "My Application"
ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)
ret& = RegSetValue&(lphKey&, "", REG_SZ, sKeyValue, 0&)
'Создание ключа, связанного с "MyApp".
sKeyName = ".BAR"
sKeyValue = "MyApp"
ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)
ret& = RegSetValue&(lphKey&, "", REG_SZ, sKeyValue, 0&)
'Коммандная линия для приложения"MyApp".
sKeyName = "MyApp"
sKeyValue = "D:\Basic\MyProjects\SharPad\SharPad.exe %1"
ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)
ret& = RegSetValue&(lphKey&, "shell\open\command", REG_SZ,
sKeyValue, MAX_PATH)
End Sub
наверх
Мои программы
BalloonMessage for MS Agent
BalloonMessage for Microsoft Agent реализует диалог программы с
пользователем, используя при этом технологию Microsoft Agent. OCX реализует три
типа диалоговых окон: InputBox, MsgBox и MsgLabels.
Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
наверх
Вопрос/Ответ
Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.
Вопросы:
Автор вопроса: ]CBK[CRaSH
Ответ ожидается по этому
адресу
Люди занимаюшиеся ОпенГЛ ям на ВБ напишите мне письмо я создал проект 3D редактора и 3D gamesА. Хочу посоветоваться и т.д.
Автор вопроса:
Макс
Ответ ожидается по этому
адресу
Как скопировать файл из и-нета ,просто указав проге путь к этому файлу.
Автор вопроса:
Алекс
Ответ ожидается по этому
адресу
Срочно нужен пример кода на vb6 анимации палитры.
Автор вопроса:
shadow
Ответ ожидается по этому
адресу
Необходимо сделать проярачные окна именно в ВИН98. По ссылке лежит пример
http://www.sources.ru/vb/skinnable_desktop_taskbar.zip.
Там испольяуется посторонняя библиотека.Я немогу подключить е? к своему проекту - ошибка - немогу найти файл.
Автор вопроса:
shadow
Ответ ожидается по этому
адресу
Я ссылаюсь в программе на апи левой библиотеки(т.е. не системной), при этом в ходе выполнения программы мне сообщается что эта библиотека не найдена, хотя она лежит в папке с проектом. Чужая программа испольяует эту библиотеку бея всяких проблем.
Автор вопроса:
Petrenko
Ответ ожидается по этому
адресу
Помогите пожалуйста у меня никак не получаеться создать ярлык програмно.
Ответы:
Вопрос:
Подскажите, как повернуть Image на определённое количество градусов.
Например это стрелка от часов,и её нужно поворачивать каждую минуту на 6 градусов.
Ответ:
Автор ответа:
Макс
На vbstreets.da.ru есть такая статья в разделе "статьи на русском" .
Вопрос:
Не подскажет ли кто-нибудь мне как создавать/запускать ярлычки в виндоусе ну или местоположение некого OCX который умеет все это делать.
Ответ:
Автор ответа:
Nechaev Sergey
Создание ярлыка
Private Declare Function OSfCreateShellLink Lib "vb6stkit.dll" Alias "fCreateShellLink" (ByVal lpstrFolderName As String, ByVal lpstrLinkName As String, ByVal lpstrLinkPath As String, ByVal lpstrLinkArguments As String, ByVal fPrivate As Long, ByVal sParent As String) As Long
Private Sub Form_Load()
OSfCreateShellLink "C:\Win\Рабочий стол" & vbNullChar, "Блокнот", "C:\Win\Notepad.exe", "", True, ""
End Sub
Вопрос:
Срочно нужна функция для создание линии. обыкновенно простой такой линии
Ответ:
Автор ответа:
Nechaev Sergey
object.Line (x1, y1) - (x2, y2), [color]
Вопрос:
Срочно нужна функция для создание линии. обыкновенно простой такой линии
Ответ:
Автор ответа:
Jumanjee
Form.Line (x0,y0)-(x1,y1),color
x0,y0 - начальная точка
x1,y1 - конечная точка
координаты задаются в единицах указанных в свойстве ScaleMode
color - цвет; можно задавать как в HEX форме так и через ф-цию QBCOLOR
Вопрос:
Срочно нужна функция для создание линии. обыкновенно простой такой линии
Ответ:
Автор ответа:
Kurt Haeldar
В Visual Basic есть функция Line (x1, y1) - (x2, y2), color, [B | BF]
Параметры:
x1,y1 - начало линии
x2,y2 - конец линии
color - цвет
[B | BF] - модификаторы, первый говорит о том, что нужно рисовать не линию, а прямоугольник, второй еще и закрасит этот прямоугольник. Это необязательные элементы. Эта функция может рисовать как прямо на форме, так и на элементе PictureBox.
Другой способ - API функции. Например, LineTo.
Вопрос:
Срочно нужна функция для создание линии. обыкновенно простой такой линии
Ответ:
Автор ответа:
Мунгалов Андрей
Если нужно рисовать линию на форме, то вот так:
Me.Line(Координата Х1,Координата Y1)-(Х2,Y2), цвет линии (можно так RGB(255, 255, 255))
Координаты подставляются в "Твипах" As Single
Цвет As Long
Вопрос:
Люди срочно нужен VB5 подскажите где скачать можно.
Ответ:
Автор ответа:
Nechaev Sergey
на базаре примерно за 50-80р. :-)
VB - это коммерческий продукт. Кстати, на базаре скорей всего найдешь VB6/7, но не 5.
Вопрос:
Кто знает как пользоваться файлами (.RES) содержащие ресурсы, больше интересуют диалоговые окна.
Ответ:
Автор ответа:
P@Ssword
Delphi насмотрелся? Это тебе не Builder, VB так не умеет :(
Вопрос:
Файл класса MyClass
--------------------
Private sMyName as string
Public Propery Get MyName() as string
myName=sMyName
End Property
В выполняемой программе
---------------------
Dim objMyClass as MyClass
set objMyClass = New MyClass
Debug.Print objMyClass.Name
должно выводить сообщение:
objMyClass
Что и где писать
Ответ:
Автор ответа:
Зубарь Сергей
VB не будет сам выводить имя переменной, определенный как класс.
Можно только создать свойство Name у интересующего класса и потом считать его значение. Причем само значение необходимо сначала определить, например в процедуре инициализации экземпляра класса
Private sMyName as string
Private Sub Class_Initialize()
sMyName = "objMyClass"
End Sub
Public Property Get Name() as string
Name=sMyName
End Property
В выполняемой программе
---------------------
Dim objMyClass as MyClass
set objMyClass = New MyClass
Debug.Print objMyClass.Name
будет выведено сообщение:
objMyClass
(Правда смысла во всей этой конструкции абсолютно никакого :-\)
Вопрос:
Кто янает, как сделать, чтобы программа обладала повышенным приоритетом в диспетчере яадач Windows 2000? То есть, чтобы ее нельяя было оттуда удалить.
Ответ:
Автор ответа:
P@Ssword
Повышенный приоритет не поможет - надо, вроде, запускаться как сервис.
Вопрос:
Кто янает, как сделать, чтобы программа обладала повышенным приоритетом в диспетчере яадач Windows 2000? То есть, чтобы ее нельяя было оттуда удалить.
Ответ:
Автор ответа:
Vladimir
Могу достать вот такие:
InstallShield Express v3.53
InstallShield Express v3.0
InstallShield Express v2.11
...
еще и такие:
InstallShield Developer v7.02
InstallShield Professional v6.30
InstallShield 2000 v6.10
...
Да еще и куча всего... за 1 WMZ
Вопрос:
Как можно черея VB определять и яадавать имя компьютера и его IP-адрес Можно ли в VB и VBA испольяовать API SetComputerName
Ответ:
Автор ответа:
P@Ssword
Определить:
На форму - Winsock, у него свойство LocalIP.
Задавать:
Никак. На этом основано отслеживание IP - адресов в голосованиях, и т.д., и т.п., и ДТП.
Вопрос:
На форме имеется PictureBox с файлом имя.bmp на этой картинке выводятся числа вертикально и горияонтально. На экране все видно. При печате (Printer.PaintPicture Picture1.Picture, 0, 0) не выводятся эти числа. Как быть?
Ответ:
Автор ответа:
Артём
Ты просто печатаешь картинку, загружённую из файла. Чтоб напечатать то, что было написано и нарисовано, используй picture1.image
Вопрос:
Как сделать чтобы просматривать рисунок размерами больше формы
Ответ:
Автор ответа:
P@Ssword
1) Если немного ламерски, но быстро - кладешь на форму два скроллбара и пикчебокс, в него - еще один пикчебокс. Во второй пикчебокс кладешь картинку, а первый делаешь маленького размера. Затем можно двигать второй куда угодно.
2) Можно воспользоваться Image со Stretch = True.
Можете заполнить эту форму, либо отослать вопрос
СЮДА
Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
наверх