Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Visual Basic для новичков и профессионалов 54


 
Краткая информация для подписчика:
   
Номер выпуска:
54
Дата отправки:
11.11.2006
Ведущий (автор):
Константин
Подписчиков на текущий выпуск:
7134
Ссылка на архив рассылки:
Ссылка на архив этого выпуска:
   
Обратите внимание! Ниже представлена интересная информация.
WWW.VISUALBASIC.NOKA.RU - ПОРТАЛ НАШЕЙ РАССЫЛКИ. ЗДЕСЬ ВЫ НАЙДЕТЕ МНОГО ВСЕГО ИНТЕРЕСНОГО И ПОЛЕЗНОГО! ПРИМЕРЫ, ПРОГРАММЫ, КОНТРОЛЫ, СТАТЬИ И МНОГОЕ ДРУГОЕ!

ПРАКТИЧЕСКАЯ РАБОТА С Visual Studio.Net И Microsoft Office - ДАННАЯ НОВОСТНАЯ РАССЫЛКА СОЗДАНА ДЛЯ РАБОТЫ С ПРОГРАММНЫМИ ПРОДУКТАМИ ТАКИХ СИСТЕМ, КАК VISUAL STUDIO.NET И MICROSOFT OFFICE. В СТАТЬИ БУДЕТ ВКЛЮЧЕНО ВСЁ, ЧТО ХОТЯ БЫ КОСВЕННО КАСАЕТСЯ ЭТИХ ДВУХ ПАКЕТОВ ПРОГРАММИРОВАНИЯ, К ПРИМЕРУ, VBSCRIPT, HTML, XML И ТАК ДАЛЕЕ. ОСОБЕННО ТЩАТЕЛЬНО БУДЕТ ОБСУЖДАТЬСЯ СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ И ОБЩНОСТЬ МЕЖДУ ЭТИМИ ДВУМЯ РЕАЛИЗАЦИЯМИ СИСТЕМ ПРОГРАММИРОВАНИЯ. ТАК ЖЕ БУДЕТ ЗАТРОНУТА ТЕМА ВОПРОСОВ И ОШИБОК, СВЯЗАННЫХ ПРИ РАБОТЕ С ЯЗЫКОВЫМ КОДОМ. В ДАННОЙ РАССЫЛКЕ БУДЕТ ДОБАВЛЕНА КОЛОНКА ДЛЯ ЧИТАТЕЛЕЙ, В КОТОРОЙ КАЖДЫЙ СМОЖЕТ ВЫСКАЗАТЬ СВОИ МЫСЛИ ПО ПОВОДУ ТЕКУЩЕЙ ТЕМЫ ОБСУЖДЕНИЯ И ЗАДАТЬ ИНТЕРЕСУЮЩИЙ ЕГО ВОПРОС. ИНИЦИАТИВА НЕ НАКАЗЫВАЕТСЯ, А НАОБОРОТ ПООЩРЯЕТСЯ. ВОЗМОЖНЫ ВАРИАНТЫ ВЕДЕНИЯ СОВМЕСТНЫХ ПРОЕКТОВ, ОПИСАНИЕ И КОД КОТОРЫХ БУДЕТ ПОЯВЛЯТЬСЯ В СООТВЕТСТВУЮЩЕЙ ГРАФЕ.

Ведущий рассылки Visual Basic для новичков и профессионалов: Очень интересная рассылка, с большим удовольствием просматриваю выпуски. Автор очень старается, выпуски получаются очень красивые и объемные. Советую подписаться, темы очень интересные!

Работа с макросами в Visual Studio.Net
Создаваемые макросы будут использовать объектную модель для доступа и автоматизации различных частей IDE. Ниже будет продемонстрировано применение макросов для автоматизации ряда простых задач и рассказано о применении объектной модели к документам и окнам IDE. А так же рассмотрены события с приведением нескольких примеров... Подписаться

Элемент управления Animation
Эту статью меня побудила написать рассылка . В ней задаются множество вопросов на которые довольно легко ответить самому задавшему, если пользоваться справочными материалами. Итак, предположим нам нужно проиграть avi-файл... Подписаться

Игровая зона
Вот решил в качестве развлечения иногда писать про игры, а то код наверное некоторым из вас уже совсем надоел. И ведь это был только Visual Basic, так как в следующих выпусках планирую рассказать про C++, от которого даже у любителей C# может случится нервное расстройство. Сегодняшней темой обсуждения выбрана культовая игра Fallout I... Подписаться

ХОТИТЕ СОХРАНИТЬ ЗДОРОВЬЕ И ЗРЕНИЕ В ОСОБЕННОСТИ? ТОГДА ЧИТАЙТЕ СТАТЬЮ О ТОМ, КАК УБЕРЕЧЬ ЗРЕНИЕ ЗА КОМПЬЮТЕРОМ
Здравствуйте уважаемые читатели!

Хочу поговорить с Вами на тему здоровья, в особенности зрения. Сначала позвольте задать вопрос: как у Вас обстоят дела со зрением? Как у Ваших друзей, знакомых?

Да и вообще, обращали внимание у скольких людей проблемы со зрением? Сколько носят очки или контактные линзы? ВОТ!!! Вот именно! В наш XXI век это настоящая катастрофа!

Как сохранить зрение, работая на компьютере? Всегда ли ежедневная работа на компьютере приводит к ухудшению зрения? Эти вопросы очень давно волнуют человечество. Ни для кого не секрет, что компьютер с каждым днем все глубже и глубже проникает в нашу жизнь, и современный человек не может жить, работать, а зачастую и отдыхать без него. С помощью этого устройства мы зарабатываем деньги, покупаем товары в интернет-магазинах, заводим знакомства, читаем новости, ведем деловую и личную переписку. С каждым днем все большее количество людей связывает с компьютером свой досуг, привязываясь к нему, как к близкому другу. Благодаря компьютеру смотрим видео, прослушиваем музыку, играем, наслаждаемся ресурсами Интернета, общаемся и т. д.

Проблема сохранения зрения является, наверное, одной из самых актуальных проблем для пользователей компьютера, и игнорировать её - значит подвергать себя риску заработать различные болезни глаз если не в ближайшее время, то в недалеком будущем.

В настоящее время подавляющее большинство людей испытывает повышенную нагрузку на зрение, независимо от того, являются ли они пользователями компьютера: у кого-то много бумажной работы, кто-то находится в условиях плохой освещенности и т. д. Однако работа на компьютере имеет особенность, которая невыгодно отличает её от работы, например, с бумагами: на бумаге человек видит изображение, которое создано с помощью непрерывных линий, а то же самое изображение на компьютере из отдельных постоянно мерцающих точек. Именно поэтому глаза пользователя страдают намного больше.

Нагрузка на зрение начинает повышаться еще со школьной скамьи, и в течение всей жизни практически никогда не уменьшается (даже в отпуске мы смотрим телевизор, читаем книги и газеты и т. д.). По утверждению ученых, около 80 % информации об окружающем мире человек получает благодаря своему зрению. Это лишний раз подчеркивает необходимость бережно относиться к здоровью глаз, ведь любую болезнь гораздо легче предупредить, чем излечить.


Компьютерный зрительный синдром (КЗС или CVS).

С каждым днем неуклонно растет количество пользователей компьютера, которые становятся пациентами офтальмолога. Это обусловлено тем, что в настоящее время среди пользователей компьютера получила распространение новая форма глазной патологии, называемая компьютерным зрительным синдромом. Это расстройство не передается от человека к человеку, а является ярко выраженным профессиональным заболеванием. Если вам посчастливилось до настоящего момента избежать данной болезни, то нет никакой гарантии, что через некоторое время вам не потребуется помощь офтальмолога, особенно если вы проводите за компьютером хотя бы несколько часов в день.

Признаком компьютерного зрительного синдрома являются неприятные и болезненные ощущения, которые пользователь испытывает после длительной работы. Отмечу, что понятие "длительная работа" для каждого человека индивидуально: в зависимости от особенностей конкретного организма это может быть и несколько минут, и несколько часов. Возникновение компьютерного зрительного синдрома обусловлено следующими особенностями работы на компьютере:

   * свечение монитора;
   * отсутствие на экране четких границ изображения, которые мы привыкли видеть на бумажном носителе
   * мерцание монитора;
   * постоянный перевод взгляда с клавиатуры па монитор;
   * относительно невысокая контрастность изображения;
   * устаревший или плохо настроенный монитор, недостаточное или слишком яркое освещение;
   * плохая организация рабочего места

и т. д.

Основная причина зрительных нарушений при работе с компьютером лежит в “неэкологическом” характере самого изображения на экране компьютера. Сформировавшаяся в процессе эволюции зрительная система человека не предназначена для работы с монитором. В отличие от естественного изображения, изображение на мониторе - является светящимся, дискретным (пиксельным), мерцающим. В окружающей природе глаз человека видит объекты совершенно иначе. Излишняя световая энергия приводит к нарушению фотохимических процессов сетчатки. Дискретный характер изображения “обманывает” аккомодацию глаза. Мерцание изображения изменяет зрачковую реакцию.

Считывание такого сигнала для органа зрения - это очень напряженный (даже стрессовый) режим работы, приводящий вначале к повышенному зрительному утомлению, а затем и к ряду функциональных нарушений, объединенным термином “астенопия”. В них входят неприятные ощущения в области глаз, временное ухудшение зрения вдаль и вблизи, возникновение или прогрессирование близорукости.

Но как же тогда быть с многочисленными статьями, в которых утверждается, что пользователи ПК жалуются на головную боль, быстро наступающую усталость, даже появление симптомов сердечно-сосудистых, нервных, желудочно-кишечных и прочих заболеваний? Оказывается, во всем виновато, как ни парадоксально, зрение!

Удивительной особенностью зрительной системы человека является то, что она может “легко” адаптироваться к “агрессивному” воздействию компьютера. Однако эта “легкость” является кажущейся. На самом деле, когда зрение работает с большими перегрузками, то наступает общее переутомление организма, что равносильно стрессу. Отсюда - и головные боли и ощущение усталости. Если стресс длительный, возникает момент, когда слабейшее звено в цепи рвется: у одних может обостриться язва, у других сбоит сердечно-сосудистая система, у третьих - нервная и т.п.


Надеюсь, Вы поняли что может произойти, если сейчас ничего не предпринять…

Итак, что нужно делать, чтобы сохранить зрение?
Это Вы можете узнать из моей новой книги – Save Your Eyes, аналогов которой в рунете не существует! Описывать её в этой статье я не буду, Вы можете узнать все сами – www.save-eyes.ru

Ну а теперь, разрешите откланяться, думаю выводы Вы сделали.


С уважением, Валерий Янковский.  

Есть вопросы? Пишите! E-mail: admin@save-eyes.ru, save-eyes@rambler.ru

НОВОСТИ
Здравствуйте, уважаемые подписчики!

Начну с того, что мне интересно ваше мнение о рассылке. Дело в том, что многие подписавшиеся вскоре начинают отписываться, указывая при этом разные причины. Последний раз я получил такое письмо: При отписке от рассылки подписчик указал причину - Не успеваю читать!
Мне очень интересно, как невозможно прочитать рассылку за неделю? Нейжели из-за этого стоит отписываться?
Прошу присылать свои предложения, пожелания, критику в на vb-question@list.ru с темой mnenie. Я прошу откликнуться всех, давайте будем вместе делать любимую рассылку лучше! Обещаю, что все присланные мне письма будут отвечены и опубликованны.

Также обратите внимание на анонс рассыки ПРАКТИЧЕСКАЯ РАБОТА С Visual Studio.Net И Microsoft Office и небольшую статью, посвященную книге Save Your Eyes, опубликованные выше.

ВОПРОСЫ И ОТВЕТЫ
Сегодня в выпуске: Турнирная таблица в момент выхода рассылки:

Вопросов:

0
Ответов: 13
Вопросов без ответов: 19
Всего задано вопросов: 242
Всего ответов на вопросы: 449
Средне ответов на вопрос: 2,01
Всего ответов с прикрепленными файлами: 60
Средне ответов с файлами: 13%
   
 
 
Внимание! Чтобы ваш вопрос попал в рассылку, используйте ссылку выше. Чтобы ответить на вопрос, пользуйтесь ссылками, которые расположены после вопроса. Если не соблюдать данных правил, ваш вопрос или ответ просто не попадет в рассылку, так как не будет распознан системой! Используйте формат письма - txt, а не html, этим самым вы сэкономите мне время и рассылка будет выходить быстрее!
1 Игорь
177
2 *Casper*
174
3 Bourn None
135
4 visualprogs@yandex.ru
103
5 Bullet [PCLO]
99
6 Stormbringer
92
7 Master (Роман)
87
8 Андрей
73
9 Перекладов Владимир
66
10 Oleg K.
63
НОВЫЕ ВОПРОСЫ
Новых вопросов не поступало.
Вопросы, нуждающиеся в ответах
184/ Здравствуйте!
Я по поводу субклассирования.
Определяю стандартную оконую функцию в модуле. Как теперь сделать так, чтобы эта функия вызвала другую, именно из той копии класса, которая субклассирует даное окно?
Напремер:
У меня есть три контрола:

ContrA субклассирует окно 1
ContrB --////--- 2
ContrC --////--- 3

и NewWindowFunction (в стандартном модуле) если она будет вызвана как можно узнать какая именно копия котнрола ёё вызвала? И вызвать функцию именно того контрла, которая ёё вызвала?

Может ёще существует какой-нибудь другой алгоритм? А то я понатия не имею как можно его организовать.

А как еще можно субклассировать окно пренадлежащее другому процессу?
SetWindowLong конечно возвращае ошибку. Для этой цели пользовался специальным контролом, но хотелось бы "избавиться" от необходимости его присутствия для даных целей.
[Ответить]
211/Уважаемые эксперты. Как в VB.Net перетаскивание картинки сделать таким же наглядным, как в VB6? В VB6 указываешь для перетаскиваемой картинки в качестве свойства DragIcon саму картинку, и таскаешь имено ее. А в VB.Net такого свойства нет и таскаешь какой-то перечеркнутый кружок. Не красиво и не наглядно.[Ответить]

212/В VB6 c помощью ShowDefaultCharacterProperties вызываю в своей программе галерею MS агентов. 2 вопроса по работе с ней. 1) Почему в галерее показывается только 5 стандартных агентов, хотя в C:\Windows\Msagent\Chars их у меня 16? 2) Как передать в программу ссылку на выбранного в галерее агента?[Ответить]

214/в дополнению к 206 вопросу. Для вывода данных из MS SQL использую запрос и DataGrid Public Sub zapros1(sSQL) Set rs = New ADODB.Recordset With rs .ActiveConnection = cn .CursorLocation = adUseClient .CursorType = adOpenKeyset .Source = sSQL .Open End With Set frmZagruzka.DataGrid1.DataSource = rs Files_name = DataGrid1.Text End Sub хотел спросить, есть ли иной путь передачи сведений из MS SQL в части передачи одного значения (например: количества строк)сразу в переменную, кроме как создавать невидимый на форме DataGrid1 передавать ему сведения, а потом забирать из DataGrid1 сведения (как показано выше).[Ответить]

215/Доброго времени суток. Недавно скачал "iRender 3D 2.5", правда не знаю как им пользоваться. Напишите пожалуйста пару примерчиков. Заранее спасибо.[Ответить]

216/Доброго времени суток, уважаемые разработчики. Делаю РПГ. В ней карту, типа Фоллаутовской. Столкнулся с такой проблемой: есть поле с картинкой (местность, вид сверху), по ней двигаеться обьект, в данном случае кружок. Есть черно-белая маска местности.. Так вот как сделать так, чтобы кружок двигался только в пределах белой области маски, а на черную не лез? Заранее благодарю. [Ответить]

219/Создал программу на VB6: по клику выскакивает очередной Перл или Перл по набранному номеру. Вопрос: как спрограммировать "Поиск Перла по набранному Слову"?.Сама программа KvintEssencGrac.rar находится на http://graciologiy.narod.ru/, а также на http://freesoft.ru/?id=667597. По требованию вышлю исходники. [Ответить]
220/Как в VB и VB.NET перехватить событие ВРАШЕНИЕ КОЛЕСИКА МЫШИ, например в Grid'е?[Ответить]
221/Здравствуйте! У меня вопрос: В моей программе есть определенные шрифты, которые есть не у каждого, но есть в папке с моей программой. Как мне сделать так, чтобы эти шрифты при установке программы автоматически устанавливались в папку Шрифты на ПК. Благодарю. Владимир.[Ответить]
222/Здарова всем! У меня такой вопрос (желательно отвечать подробнее, потому как я новичок). Мне надо сделать так, чтобы вtext моей программыкопировался определённый текст из html в браузере. Думаю вопрос понятен :) Спасибо![Ответить]
223/И снова поводу автоматизации (Вопрос # 204). Дело не в том, что мне нужен механизм копирования и хранение кода, он уже существует и встроен в Visual Studio.NET (раскрывающаяся панель справа). И не в классах дело, так как это не автоматизация, и лишь способ конструирования данных. В общем, я говорю даже не о проектировании кода, и даже не о проектировании как таковом, а о способах сделать эти процессы легче, быстрее, безошибочней и самое главное всеобъемлющими, имеется в виду то, что сама система должна подсказывать о следующем шаге. Ведь по существу все действия проделываемые программистами являются циклическими, это и называется опытом. Начинаем с мастеров, а дальше всё идёт, возвращаясь на круги своя. Короче, в Visual Studio.NET можно сделать всё что угодно, вопрос же не в этом. А в том, как добиться желаемого, более лёгким путём используя Add-In или что-либо в этом роде? Причём дело не в самом создании Add-In, это описывается в MSDN достаточно подробно, а в том, что же с помощью него необходимо автоматизировать в первую очередь. В общем, пишите, что бы вы хотели добавить в Visual Studio.NET, а так же в Visual Basic 6.3, который входит в состав AutoCAD, Corel, Microsoft Office и так далее.[Ответить]
224/Здравствуйте Подскажите как реализовать DOS печать на VB6.0, на работе только матричные принтеры Epson LX300 и Epson LX1050. Пользуюсь методом создания файла на диске с последующим открытием его DOS приложением, или просто командой "copy to prn...". Нет ли более изящного и правильного способа похожего на использование объекта printer (объект, свойства, события) ну или в крайнем случае строка инициализации и функции WinAPI ?[Ответить]
225/Здравствуйте. Вопрос такой. Мне нужно изменить структуру уже заполненной базы (в ручную нерационально, потому что эти изменения надо будет сделать 11 раз в разных географических местах) Хотела автоматизировать. Вопрос - как открыть существующую таблицу. чтобы можно было изменять ее структуру? ( изменить названия неокторых полей и его комментарий, затем добавить новые поля) Заранее и всегда - спасибо![Ответить]
226/Чтобы отправлять сообщения по локальной сети через службу сообщений в своей программе на VB6, я написал вот так. ExecCmd "net send " & user & " " & text 'где ExecCmd - модуль ждущий завершения вызваной програмы, user – пользователь, text - текст сообщения. Как отправить сообщение не через вызов net send, а через функцию API или через WinSock или ...? Если это возможно, то как перед отправкой проверить есть ли пользователь в сети? [Ответить]
227/Здравствуйте! Подскажите каким образом можно сделать свод по таблице. Имеется один столбец текстовый и пара числовых. Заранее спасибо.[Ответить]
228/Уважаемые программисты. Написал программу для учета товара на складе, в базе данных Access. И вопрос таково характера при выписке товара со склада на Накладной нужна сумма прописью. Помогите с написанием кода для суммы прописью. Заранее благодарен.[Ответить]
232/Здравствуйте! Подскажите, как можно в отчете в один rptTextBox объединить данные из двух полей?[Ответить]
233/Здравствуйте! Подскажите как можно в отчет в одном контроле rptTextBox объединить данные из вдух полей базы?[Ответить]
237/Подскажите, пожалуйста, как можно изменить существующую форму в Excel, та что окрывается в меню "Данные" - "Форма"? Я использую свою базу данных, в которой более 150 столбцов и вводить данные не так уж удобно, при открытии стандартной формы, выдается ошибка: "В форме данных слишком много полей". Можно ли как-нибудь вытащить этот стандартный код и переписать его для себя? Заранее спасибо за ответ![Ответить]
240/Помогите пожалуйста решить проблему! Есть задание, написал скрипт на vbs но теперь столкнулся с проблемой последовательности выполнения скрипта по времени. Меня интресует выполнение процесса строго после предыдущего. т.е. 1. Сначало какое то время тратиться на выполнение выгрузки из базы данных 2,3 минуты примерно (всегда по разному) 2. Далее фаил выгрузки нужно скопировать кудато на сервер. 3. Запустить службу или еще какое нибудь действие с этим файлом и т д при запуске моего скрипта он выполняет все сразу. Как сделать допустим что бы пока не закончил процесс выгрузки из базы он не начинал выполнять процесс копирования??? ИТД[Ответить]

ОТВЕТЫ НА ВОПРОСЫ
Вопрос # 218
Здравствуйте, у меня два вопроса о защите: 1) Как сделать так, чтобы программа работала только с CD диска. 2) Как сделать так чтобы при установке программа требовала серийный номер, а по истечении 3-х дней без этого номера браковалась или блокировалась.

Отвечает
Игорь
1) Как сделать так, чтобы программа работала только с CD диска.

Попытаюсь ответить на этот вопрос на примитивном уровне, как я сам его вижу.
Смысл будет понятен, а раскрутить фантазию сможете далее сами. В моем
примере есть одно СУЩЕСТВЕННОЕ ЗАМЕЧАНИЕ по этому поводу, о котором скажу в
конце ответа.

Обеспечить работу программы только с компакт диска можно путем проверки его
индивидуального серийного номера. Для этого я использую функции библиотеки
Microsoft Scripting Runtime (файл SCRRUN.DLL). Подключите его к проекту
через меню ПРОЕКТ > ССЫЛКИ. Далее в форму проекта (можно и в главный модуль
в процедуру MAIN, только не забыть в свойствах проекта, указать загрузку
именно с нее) вставьте ниже написанный код.

Option Explicit

Private NFSO As New FileSystemObject
Private Const SerialNumber As Long = 123456789

Private Sub Form_Load()
Rem: Сначала получим серийный номер диска на котором находится запускаемая
программа...
Dim AppDiskSerialNumber As Long
AppDiskSerialNumber = NFSO.GetDrive(Left$(App.Path, 1)).SerialNumber

Rem: Теперь необходимо сравнить полученное значение _
с константой sSerialNumber, которая заведомо известна...
If AppDiskSerialNumber <> SerialNumber Then
Rem: Выдаем срообщение...
MsgBox "Выполнение программы прервано!", vbExclamation + vbOKOnly,
App.Title

Rem: Терминальное завершение программы...
End

End If

End Sub


В данном случае при загрузке проекта будет сравниваться два значения:
серийный номер диска с которого запускается Ваша программа и константа
SerialNumber (заведомо известный серийный номер диска). Если эти значения
будут разными, то проект прекратит дальнейшую загрузку и закроется. Таким
образом, если кто-нибудь попытается переписать Вашу программу на другой
диск, то, соответственно, серийный номер не совпадет с указанным Вами и
произойдет неприятный облом:

Ну а теперь о СУЩЕСТВЕННОМ ЗАМЕЧАНИИ о котором я говорил вначале. Дело в
том, что вписывать серийный номер в виде константы, как показано у меня в
примере категорически нельзя! После того, как вы скомпилируете проект и
запишите его на диск, то серийный номер диска после записи измениться и Вы
окажитесь в глупом положении. Но и из этого положения можно выкрутиться,
например вместе с записанным диском давать ключ, который будет прописываться
в реестре и подходить только к данному диску и всякие переписывания окажутся
напрасными.

Узнать серийный номер компакт диска можно с помощью функции
NFSO.GetDrive("E").SerialNumber
Здесь <Е> - это первая буква дисковода компакт диска.

Я не буду описывать все подробности как это можно сделать т.к. ничего
сложного в этом нет, просто немного фантазии и, конечно же, знания Visual
Basic.

2) Как сделать так чтобы при установке программа требовала серийный номер, а
по истечении 3-х дней без этого номера браковалась или блокировалась.

В данном примере я использую стандартные функции Visual Basic для работы с
датами и функции для работы с реестром (вложены в архиве прилагаемого
примера, их можно заменить своими функциями для работы с реестром).

В код модуля формы впишите следующий код.

Option Explicit

Private Const sRegPath As String = "Software\MyTrialAppName"

Private Sub Form_Load()
Rem: Проверяем наличие ключа в реестре _
При первом запуске программы, ясное дело, его не будет...
If regVALUEEXISTS(HKEY_CURRENT_USER, sRegPath, "FirstStart") = False Then
Rem: Записываем значение в реестр - текущую дату...
regWRITESTRING HKEY_CURRENT_USER, sRegPath, "FirstStart", Now
Else
If Overload = True Then
Rem: выдаем сообщение о окончании срока...
MsgBox "Пробный период истек!", vbExclamation + vbOKOnly, App.Title

Rem: Терминальное завершение программы...
End
End If

End If

End Sub

Private Function Overload() As Boolean
Dim dtDate1 As Date, dtDate2 As Date
dtDate1 = Now

Rem: Добавляем 3 дня к записи, имеющейся в реестре...
dtDate2 = DateAdd("d", 3, regREADSTRING(HKEY_CURRENT_USER, sRegPath,
"FirstStart", Now))

Rem: Сравниваем две даты между собой...
If DateDiff("d", dtDate1, dtDate2) < 0 Then Overload = True

End Function


В данном примере при первом запуске проверяется наличие значения в реестре.
Если программа ранее не запускалась, то значение не будет найдено, тогда Вы
вписываете его сами - строковое значение - текущая дата (Now). Если же
значение уже существует, т.е. программа уже запускалась хоть один раз и
запись в реестре была сделана, то проверяем и сравниваем две даты: первая -
текущая дата и вторая - дата записанная в реестре с добавляемым к ней 3-х
дней. Это делаем с помощью функции DateDiff("d", dtDate1, dtDate2). Если
значение dtDate1 будет больше dtDate2, то три дня еще не истекло, в
противном случае значение будет отрицательным, что говорит о превышении
срока в 3 дня и прерыванию дальнейшей работы программы.

Из-за объемности вышеуказанного ответа не буду писать о проверке серийного
номера. Она основывается все на тех же функциях чтения и записи в системном
реестре, а также фантазии программиста, кое-что (но далеко не все) есть в
прилагаемом примере.

Хочу также добавить, что вышеописанными примерами от опытных пользователей
вряд ли что скроете. Вам, скорее всего, необходимо будет обдумать алгоритм
шифрования Ваших данных, но это уже отдельная тема:


Скачать приложенный к ответу файл >>>

Оценка за ответ эксперту Игорь: 5 баллов

Вопрос # 231
Доброе время суток. Как или в каком элементе управления можно проиграть avi-файл, чтобы: -Файл проигрывался во весь или не во весь экран. -Файл проигрывался циклически, т.е, если закончился, то начался сначала. Заранее спасибо!

Отвечает
Bourn
используем MS Video Control 1.0 Type Library (msvidctl.dll)
размещаем объект на форме, код для работы следующий(размер
экрана устанавливаеться равный размеру формы):

Private Sub Form_Load()
MSVidCtl1.Height = Form1.Height
MSVidCtl1.Width = Form1.Width
MSVidCtl1.View ("путь к видео файлу")
MSVidCtl1.Run ' воспроизводим, если надо воспроизводить постоянно тогда не используем эту строчку
End Sub

Private Sub Form_Resize()
MSVidCtl1.Height = Form1.Height
MSVidCtl1.Width = Form1.Width
End Sub

Private Sub MSVidCtl1_StateChange(ByVal PrevState As MSVidCtlLibCtl.MSVidCtlStateList, ByVal CurrState As MSVidCtlLibCtl.MSVidCtlStateList) ' если не надо воспроизводить постоянно, не используем эту функцию
If CurrState = 0 Then MSVidCtl1.Run ' воспроизводим бесконечно, не используеться с аналогичной строчкой выше
End Sub

Оценка за ответ эксперту Bourn: 5 баллов

Вопрос # 235
Добрый день. Может вопрос не совсем по теме, но обращяюсь всюду где надеюсь получить ответ. Так вот, когда-то давно изучал MSX Basic потом GW Basic после этого был длительный перерыв, теперь вот хочу заняться изучением VisualBasic. Если такая есть подскажите инфу для обсалютного нуля в объектно-орентированом програмирование. Вобщем нужна литература с которой можно начать изучения. Спасибо всем кто ответит

Отвечает
Atan
Информатика и
информационные технологии.Н. Д. Угринович. Самый простой способ. Иначе будут сложности

Оценка за ответ эксперту Atan: 5 баллов


Отвечает
Timofeeva Oxana
http://www.beginning.ru/libvisualbasic/svisualbasibig/index.html- ПЮЕОШ РПДТПВОБС ЛОЙЗБ. пОБ ЦЕ - http://www.libray.narod.ru/Program/BooksVBasic6/index.html

Оценка за ответ эксперту Timofeeva Oxana: 5 баллов


Отвечает
Алексей Шишкин
Зайди на сайт издательского дома «Питер», там можно скачать файлы к книгам, которые у них издаются. Там их же web-магазин.
Для того чтобы начать – лучше не придумаешь
www.piter.com



Оценка за ответ эксперту Алексей Шишкин: 5 баллов


Отвечает
Red Wolf
В книжном магазине достаточно полно об Обьектно - ориентированном
программировании для VB.6 и VB.Net. Просто открой книгу и посмотри,
если для тебя понятно пишут. Желательно детальное описание об этом.
Денег не жалей аж на 1000 руб. Да понятная книга и бери. А дома
попрактикуй. Желаю тебе успехов в покупке.

Оценка за ответ эксперту Red Wolf: 5 баллов

Вопрос # 236
Вопрос маленький и простенький. Как прочитать имя файла в папке?

Отвечает
MsDos Microsoft

aPicture = Dir("d:\sd\pix\*.jpg") ' Получения имя первого файла
aPicture = Dir 'Получени имя следуюшего файла

Желаю удачи
_____________________
DELL

тут примерчик:

Скачать приложенный к ответу файл >>>

Оценка за ответ эксперту MsDos Microsoft: 5 баллов


Отвечает
*Casper*

Если имеется ввиду прочитать список файлов в папке, то вот

Sub GetFolderList()

Dim Files() as string, Index as long, S as string

index=0:redim Files(0)

s=dir("C:\Windows\*.*",VbArchive or VbNormal)

while s<>""

Index=Index+1

Redim Preserve Files(Index)

Files(Index)=S

wend

End sub



'В результате Index - Количество файлов в папке (соответствующих атрибутам "Нормальный" и "Архивный"), а массив Files() - имена файлов.

Оценка за ответ эксперту *Casper*: 5 баллов


Отвечает
Bourn
Разместить на форме FileListBox
Задать путь к папке через File1.Path=""
Задать отбор файлов по маске File1.Pattern="*.*"
И считывать файлы
For X = 0 To File1.ListCount - 1
Y=File1.List(X)
Next X

Оценка за ответ эксперту Bourn: 5 баллов

Вопрос # 238
Как можно в Excel автоматизировать преобразвание арабских цифр в текстовый формат на русском языке? Почему-то такая функция используется для преобразования на тайский язык??? Буду ждать ответа :-)

Отвечает
Denisk@
Ну если я правильно понял вопрос, то всё довольно просто! Даю код макроса:

Range("A1").Select // Выделяем ячейку A1 (ячейка, которая содержит твои
арабские цифры)
Selection.NumberFormat = "@" // выполняем преобразоваение.


Для того, чтобы автоматизировать преобразование,зная столбец,
который содержит арабские цифры, необходимо:

Range("C1:C17").Select // подразумеваеться, что именно в этом
диапазоне столбца С находяться арабские цифры.
Selection.NumberFormat = "@" // преобразовываем

Оценка за ответ эксперту Denisk@: 5 баллов

Вопрос # 239
Подскажите каким методом или свойством FSO проверить существует ли доступ к файлу, к примеру, для копирования или перемещения. Обработка ошибки 70 не подходит, так как просмотр всех файлов в каталоге происходит в цикле и в случае отказа в доступе необходимо пропустить файл и продолжить цикл.

Отвечает
*Casper*
А что с циклом?

Sub Test
dim ErFLG as boolean
On error goto MyErr
ErrFlg=False
For i=1 to 30000
'Тело цикла, вернее попытка чтения
if Not ErrFlg then
'Обработка без ошибки
else
ErrFlg=False 'Сброс флага на будущее
End if
Next
Exit sub
MyErr:
If err=70 then
ErrFlg=True
Resume next
else
msgbox "Непредвиденная ошибка"
end if
End sub

Оценка за ответ эксперту *Casper*: 5 баллов

Вопрос # 241
Здравствуйте, ! Создал программу на VB6: по клику выскакивает очередной Перл или Перл по набранному номеру. Вопрос: как спрограммировать "Поиск Перла по набранному Слову"?.Сама программа KvintEssencGrac.rar находится на http://graciologiy.narod.ru/, а также на http://freesoft.ru/?id=667597. По требованию вышлю исходники.

Отвечает
Bourn
'у нас есть массив с перлами
const max = 100
dim perl(1 to max) as string
'в цикле находим перл если удачно то выводим сообщение
for x = 1 to max
if instr(1,perl(x),"нужное слово")>0 then msgbox "перл найден"
next x

Оценка за ответ эксперту Bourn: 5 баллов

Вопрос # 242
Товарищи программисты, помогите, пожалуйста, кто может со следующим вопросом. Имеется два промежутка времени, например dtDate1 (01.11.2006 10:00:00) и dtDate2 (02.11.2006 14:50:10). Как определить, сколько секунд было между этими двумя промежутками, например, с 08:00 по 19:00 и с 19:00 по 23:00 и т.п. Спасибо.

Отвечает
Вова Перекладов
Это элементарно. В VB есть встроенная функция по этому поводу.
Называется она DateDiff.

А вот Ваш пример:
MsgBox DateDiff("s", dtDate1, dtDate2, vbMonday)
"s" - показывает, что надо измерять в секундах
dtDate1, dtDate2 - даты
vbMonday - первый день недели. По умолчанию воскресение, может некорректно работать с большими датами. Удачи!

Оценка за ответ эксперту Вова Перекладов: 5 баллов


Отвечает
Bourn
Dim d1 As Date
Dim d2 As Date
Dim sec As Long
d1 = "01.11.2006 10:00:00"
d2 = "02.11.2006 14:50:10"
sec = (d2 - d1) * 24 * 3600

Оценка за ответ эксперту Bourn: 4 баллов

Советуем подписаться на следующие рассылки

В избранное