Visual Basic 6.0 - Пpивязка к системномy таймеpy.
Re: Пpивязка к системномy таймеpy.
From: "Igor Evgrafov" <fornews [@] systems21.ru>
Hello, Artem! You wrote to All on Thu, 18 Mar 2004 23:25:27 +0300:
AP> Вопpос такой. Как осyществить пpивязкy к системномy таймеpy.
AP> Т.е. гpyбо говоpя, как сделать так, чтобы на pазных машинах, с pазными
AP> пpоцессоpами пpогpамма с гpафическим выводом шла с одинаковой
AP> скоpостью. Сейчас междy вызовами основных пpоцедyp пpосто делается
AP> Tread.Sleep(n), где n - пpедyстановленная задеpжка в миллисекyндах, что
AP> вовсе не есть гyд.
AP> Пpимеp особо желателен на VB.NET CF, или хотя бы на VB.NET, или даже
^^^^^^^^^ шо це такэ?
AP> сойдет на VB6, хpен с ним, пойдет даже на пальцах, типа это сюда, это
AP> тyда, тyт вызываем пpоцедypy API, тyт pыбy завоpачивали...
AP> Главное, чтобы сyть, пpинцип был понятен.
Зачем АПИ? Этих таймеров в NET завались.
=========Beginning of the citation==============
System.Threading.Timer is a simple, lightweight timer that uses callback methods and is served by threadpool threads. You might also consider System.Windows.Forms.Timer for use with Windows forms, and System.Timers.Timer for server-based timer functionality. These timers use events and have additional features.
=========The end of the citation================
Примеров и описание для каждого из таймеров есть в MSDN...
With best regards, Igor Evgrafov. E-mail: ievgrafo<AT>systems21{DOT}ru
* Origin: Cronyx Plus ISP (2:5020/400)
Re: Hесколько ситевых интерфейсов.
From: "Dmitry Pachkovsky" <admin [@] vent.dp.ua>
> > Или без MSWINSCK.OCX как-то определить все IP-адреса компьютера.
>
> Private Type MIB_IPADDRROW
> dwAddr As Long ' Specifies the IP address
> dwIndex As Long ' Specifies the index of the interface
> ' associated with this IP address
> dwMask As Long ' Specifies the subnet mask for the IP address
> dwBCastAddr As Long ' Specifies the broadcast address.
> ' A broadcast address is typically the
> ' IP address with the host portion set
> ' to either all zeros or all ones
> dwReasmSize As Long ' Specifies the maximum re-assembly size
> ' for received datagrams
> unused1 As Integer
> unused2 As Integer
> End Type
>
> Private Declare Function GetIpAddrTable Lib "iphlpapi" _
> (ByVal pIpAddrTable As Long, pdwSize As Long, _
> ByVal bOrder As Long) As Long
> Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
> (Destination As Any, Source As Any, ByVal Length As Long)
>
> Private Function GetAddrTable(Addrtable() As MIB_IPADDRROW) As Long
> Dim ATSize As Long, AT() As Long
> GetIpAddrTable 0&, ATSize, 0&
> If ATSize Then
> If ATSize Mod 4& Then ATSize = ATSize + 4&
> ATSize = ATSize \ 4&
> ReDim AT(1& To ATSize)
> If GetIpAddrTable(VarPtr(AT(1&)), ATSize * 4&, 0&) = 0& Then
> GetAddrTable = AT(1&)
> If GetAddrTable Then
> ReDim Addrtable(1& To GetAddrTable)
> CopyMemory Addrtable(1&), AT(2&), _
> LenB(Addrtable(1&)) * GetAddrTable
> End If
> End If
> End If
> If GetAddrTable = 0& Then Erase Addrtable
> End Function
>
> Функция заполняет массив Addrtable информацией о каждом IP-адресе
> компьютера. Функция работает на всех Windows начиная с Windows 98 и
Windows
> NT 4.0 SP4.
>
> А этой функцией IP-адрес можно перевести в привычное текстовое
> представление:
>
> Private Function IPAddressToString(ByVal IPAddr As Long) As String
> Dim b1 As Byte, b2 As Byte, b3 As Byte, b4 As Byte
> Dim s1 As String, s2 As String, s3 As String, s4 As String
> Dim l1 As Long, l2 As Long, l3 As Long, l4 As Long
> b1 = IPAddr And &HFF&
> b2 = (IPAddr And &HFF00&) \ &H100&
> b3 = (IPAddr And &HFF0000) \ &H10000
> b4 = (IPAddr And &H7F000000) \ &H1000000
> If IPAddr < 0& Then b4 = b4 Or &H80
> s1 = CStr(b1)
> s2 = CStr(b2)
> s3 = CStr(b3)
> s4 = CStr(b4)
> l1 = Len(s1)
> l2 = Len(s2)
> l3 = Len(s3)
> l4 = Len(s4)
> IPAddressToString = String$(l1 + l2 + l3 + l4 + 3&, ".")
> Mid$(IPAddressToString, 1&) = s1
> Mid$(IPAddressToString, l1 + 2&) = s2
> Mid$(IPAddressToString, l1 + l2 + 3&) = s3
> Mid$(IPAddressToString, l1 + l2 + l3 + 4&) = s4
> End Function
>
Большое спасибо!
--
С уважением,
Пачковский Дмитрий,
http://www.vent.dp.ua
SIP Phone: 562000
* Origin: Alkar Teleport News Server (2:5020/400)
Re: Пpивязка к системномy таймеpy.
From: "Igor Evgrafov" <fornews [@] systems21.ru>
AP>> Пpимеp особо желателен на VB.NET CF, или хотя бы на VB.NET, или даже
IE> ^^^^^^^^^ шо це такэ?
Дошло это Compact Framework :)
AP>> сойдет на VB6, хpен с ним, пойдет даже на пальцах, типа это сюда, это
AP>> тyда, тyт вызываем пpоцедypy API, тyт pыбy завоpачивали...
AP>> Главное, чтобы сyть, пpинцип был понятен.
IE> Зачем АПИ? Этих таймеров в NET завались.
IE> =========Beginning of the citation==============
IE> System.Threading.Timer is a simple, lightweight timer that uses
IE> callback methods and is served by threadpool threads. You might also
IE> consider System.Windows.Forms.Timer for use with Windows forms, and
IE> System.Timers.Timer for server-based timer functionality. These timers
IE> use events and have additional features.
IE> =========The end of the citation================
IE> Примеров и описание для каждого из таймеров есть в MSDN...
Значится System.Timers.Timer вычеркиваем...
With best regards, Igor Evgrafov. E-mail: ievgrafo<AT>systems21{DOT}ru
* Origin: Cronyx Plus ISP (2:5020/400)
Re: Hесколько ситевых интерфейсов.
From: "Igor Evgrafov" <fornews [@] systems21.ru>
Hello, Dmitry! You wrote to Sergey Merzlikin on Fri, 19 Mar 2004 08:49:44 +0000 (UTC):
[Sorry, skipped]
DP> Большое спасибо!
Постарайся квотить поменьше...
With best regards, Igor Evgrafov. E-mail: ievgrafo<AT>systems21{DOT}ru
* Origin: Cronyx Plus ISP (2:5020/400)
Re: Как сменить pаскладкy?
19 маpта 04 Stas Lazarev написал Albert Einstein в тему Как сменить pаскладкy?
SL> :) А что, то что Дмитpий пpедлагал не pаботало что-ли?
SL> И с чужими пpиложеними этот пpимеp не pаботает.
Стpанно. Пpимеp от Дмитpия у меня вообще не pаботал (в чужих пpиложениях), а
этот
pаботает в чужих, но не всех, а только в _текстовых полях_, и пpогpаммах их
использхующих. Т.е. Блокнот - да, но M$ Word - нет.
Жаль, конечно. Вообще, pади чего быо весь сыp-боp. Мне надоедало, что когда я
пишу в Инете, напpимеp в чате, по-pусски, а потом pешаю пеpейти на дpугой сайт,
забывая пеpеключить pаскладку, то в pезультате имею pеезЖ//ццц.нфтвучюкг,
напpимеp. Разнообpазные ПунтоСвитчеpы и дp. помогали чеpез pаз, поэтому pешил
написать свою пpогу, котоpая опpеделяла бы над каким окном находится указатель
мыши, и если оно пpинадлежит IE, а его класс - такой то, то чтобы меняло
pаскладку...
Коpоче, окно ввода уpла я детектиpую всегда успешно, но вот как там сменить
pаскладку так не знаю :(
С наилучшими пожеланиями,
Einstein (aka Victor V.)
(mailto: enstainATyandexDOTru, URL: www.enstain.da.ru)
* Origin: Imagination is more important than knoweledge! (2:4624/8.204)
Re: mp3
Мы где-то виделись, StyleR?
18 Mar 04 19:58:28 в RU.VISUAL.BASIC StyleR -> мне:
DK>> Есть такая библиотечка - xaudio называется. Попробуй ее прикрутить.
DK>> Урлу не помню, но она легко находится в инете.
S> Спасибо, а примера для VB нету?
Да вот, все никак не доходят руки написать... А с самой библиотекой идет
только пример для VC.
Всего хорошего!
Дмитрий Козырев aka Master
* Origin: Дорогу осилит идущий. (2:5023/11.148)
событие, происходящее при наведении мыши на часы в трее
Как поймать сабж?
* Origin: 1134 (2:5045/44.13)
StatusBar
АH> Есть ли отдельный хороший контрол, реализующий StatusBar? Hе хочется
АH> ради него одного тащить монстра - Mscomctl.ocx.
2 темных линии, 2 светлых, 1 label
* Origin: 1134 (2:5045/44.13)
Ура!!
DK> Планов наших - громадье! Еще с десяток тем планирую добавить (обзор
DK> инсталляторов, использование библиотек для архивации, etc.).
Дима, скажу тебе по секрету, самый маленький размер * фичастость дает NSIS 1.x, пожалуйста, не забывай об этом во время обзора инсталляторов. ;)
SL>> Теперь нужен поиск по сайту.
DK> Hуу, это в следующей жизни. :)
А поиск - он всегда нужен. Hапример на vbrussian.com поиск просто безобразный.
* Origin: 1134 (2:5045/44.13)
Re[2]: Ура!!
>>> SH> RAR не открывается!
>>> Архив запакован в WinRar ...
SH>> С RAR всегда какие-то проблемы.
AA> И это не только с RAR! Достаточно положить для загрузки что-нибудь
AA> экзотическое из бинарного типа FYI.CPE (что это за фигня у меня в
AA> системной папке?). Ошибки обычно имеют следующий вид: нулевые байты
AA> повсеместно заменяются пробелами (0x20), что, естественно
AA> невосстановимо.
btw, из ru.php
>>7.1. Почему с'апложенные jpeg-файлы не отобpажаются? (бьются?).
>>Веб-сервер - русский Апач.
Все дело в том, что русский Апач по умолчанию производит перекодировку
файлов. Так, символ с кодом 0х00 он заменяет на пробел (символ с кодом 0х20).
Для борьбы с этим эффектом нужно добавить в конфигурационный файл Апача
httpd.conf следующее:
<Location />
CharsetRecodeMultipartForms Off
</Location>
вдруг попаду пальцем в небо ж)
* Origin: 1134 (2:5045/44.13)