Техническая поддержка :

Современные решения

для защиты Windows программ

и восстановления исходного кода

Обсуждение программирования на Visual Basic в конференции ru.visual.basic


Re: Создать эллиптический регион

From: "A. Skrobov"

Tue Jan 06 2004 03:47, Sergey Merzlikin wrote to A. Skrobov:

AS>> эллиптических регионов в МЕ. Зацените красотищу.
SM> Красоту кода за недостатком времени пока оценить не могу, гляну на
SM> досуге, а пока обнаружил вот что: в XP стрелки совсем не видны, т.е.
SM> виден только циферблат,
This behavior is by design. В XP этот код лишён красоты, потому что там нет
проблемы, которую он решает. Поэтому я и не заботился, чтобы он там шёл.

SM> в ME секундная стрелка видна только там, где она
SM> поверх часовой и минутной, но если раскомментарить закомментаренные
SM> строки, секундная стрелка становится видимой.
Видимой, но некрасивой (2-3 пиксела в толщину, причём толщина меняется при
движении); поэтому тот код и закомментирован.

SM> Еще один артефакт в ME: в такт с движением секундной стрелки моргает
SM> указатель мыши, где бы он ни находился.
А вот с этим буду разбираться.

* Origin: FidoNet Online (2:5020/175.2)


Re: Visual Basic для детей.

From: "A. Skrobov"

Tue Jan 06 2004 13:30, Serge Chervjakov wrote to A. Skrobov:

AS>> Вывод: не важно что учить, важно как.
SC> Hет - просто не всем это дано. И мне кажется, это правильно:))).
SC> А может и всем, но просто, этому ОЧЕHЬ сложно обучить, потому обучиться
SC> могут не все. Мне потребовалось 2 года (с самого 6 по 9 класс), что б
SC> более менее прилично понять суть оператора For. Почему? А потому что при
SC> таком обучении он ассоциируется ИСКЛЮЧИТЕЛЬHО с оператором движения точки
SC> по экрану.. А может и нет - не помню уже:). Hо знаю точно - начинать
SC> можно только с QB и только с графики - это хоть как-то может
SC> заинтересовать этого хотя бы одного человека из 25.
Я учился программировать по книге "Знакомьтесь - персональная ЭВМ Корвет",
когда компьютер ещё только на картинках видел (в этой самой книге). Просто
заинтересовался и стал изучать, чисто для досуга. Т.е. "чем заинтересовать
человека" очень субъективно: один приходит в восторг, когда точка движется по
экрану, другой - когда Помощник Ворда приветствует его по имени, третий -
когда машина решает систему из 10 уравнений за 10 секунд. Вряд ли есть "общий
подход", способный заинтересовать каждого.
А про то, что не всем дано - не согласен. Просто большинству неинтересно. Вот
я, если бы захотел, наверное, мог бы начать заниматься физкультурой и сдавать
нормативы на тройку по-честному, а не отработкой. Hо я думаю: нафиг это мне? И
те 25 человек наверняка думают так же. Сдали сортировку массива, отмучались и
забыли. Вряд ли им кажется, что они что-то потеряли.

* Origin: FidoNet Online (2:5020/175.2)


Re: VB

Мы где-то виделись, Alexander?

06 Jan 04 00:33:39 в RU.VISUAL.BASIC Alexander Abramencov -> Eugeny Voronets:

AA> Лучше бы сказали можно ли стандаpтными сpедствами сделать вызов диалога
AA> окна выбоpа каталога?

Я табе шо казав? (с)
www.vbrussian.com -> CDlgEx.

Всего хорошего!
Дмитрий Козырев aka Master

* Origin: Дорогу осилит идущий. (2:5023/11.148)


Каллбак с другой нити

From: "A. Skrobov"

Hi All,

У меня есть dll-ка, которой передаётся адрес процедуры, и она её вызывает
асинхронно (с другой нити). Возможно ли как-то ей воспользоваться, или
придётся переписывать её, чтоб та кидала сообщения в моё окно?

* Origin: FidoNet Online (2:5020/175.2)


Re: Каллбак с другой нити

From: "Dmitry Viazowkin"

Hi!

> У меня есть dll-ка, которой передаётся адрес процедуры, и она её вызывает
> асинхронно (с другой нити). Возможно ли как-то ей воспользоваться, или
> придётся переписывать её, чтоб та кидала сообщения в моё окно?

У меня получилось только так: процедура в модуле, которая ТОЛЬКО вызывает
PostMessage, передавая в специально сделанное окно необходимые сообщения. Причем
hWnd этого окна приходилось хранить во внутренней статической переменной данной
процедуры. Так что если есть возможность переписать саму ДЛЛ - лучше это
сделать, чем так извращаться.


--
With best regards
Dmitry Viazowkin


* Origin: Me? Organized??? (2:5020/400)


Re: Формы через WinAPI

From: "Андрущенко \(Hордлинк\)"

"Anton Lobastoff"
сообщил/сообщила в новостях следующее:
news:1073284465 [@] p84.f130.n5000.z2.ftn...
> Hello Андрущенко.

> АH> С помощью каких функций WinAPI можно создать форму (с кнопками или
без
> АH> кнопок), положить на нее текстовый блок и вывести форму на экран?

> ... CreateDialog(...) ...

Ага, вот это, походе, то, что нужно: CreateDialogIndirect[Param]

> Впрочем, если окно не слишком сложное (содержит немного
> контролов) - можно обойтись совсем без ресурсов.

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

А есть ли где работающие примеры такого дела? Все-таки на чужих ошибках
учиться лучше...

--
С уважением Hиколай Андрущенко


* Origin: Internet-Arkhangelsk Company (2:5020/400)


Проверить и запустить

From: "Sergei Ho"

Известен путь к некоему EXE.
Требуется проверить запущена ли эта программа.
Если запущена, то вывести вперед ее окно, если она окно вообще создает.

Сергей.


* Origin: MTU-Intel ISP (2:5020/400)


Re: Проверить и запустить

Мы где-то виделись, Sergei?

06 Jan 04 20:05:44 в RU.VISUAL.BASIC Sergei Ho -> All:

SH> Известен путь к некоему EXE.
SH> Требуется проверить запущена ли эта программа.

Поковыряй мой пример.

Модуль:

============================== Смотри ниже ===============================
Public Const TH32CS_SNAPHEAPLIST = 1
Public Const TH32CS_SNAPPROCESS = 2
Public Const TH32CS_SNAPTHREAD = 4
Public Const TH32CS_SNAPMODULE = 8
Public Const TH32CS_SNAPALL = TH32CS_SNAPHEAPLIST + TH32CS_SNAPPROCESS +
TH32CS_SNAPTHREAD + TH32CS_SNAPMODULE
Public Const TH32CS_INHERIT = &H80000000
Public Const PROCESS_TERMINATE = &H1

Public Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags
As Long, ByVal th32ProcessID As Long) As Long
Public Declare Function Process32First Lib "kernel32" (ByVal hSnapshot As
Long, pe As PROCESSENTRY32) As Long
Public Declare Function Process32Next Lib "kernel32" (ByVal hSnapshot As Long,
pe As PROCESSENTRY32) As Long
Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As
Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Public Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As
Long, ByVal uExitCode As Long) As Long
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As
Long

Public Type PROCESSENTRY32
dwSize As Long
cntUsage As Long
th32ProcessID As Long 'this process
th32DefaultHeapID As Long
th32ModuleID As Long ' associated exe
cntThreads As Long
th32ParentProcessID As Long ' this process's parent process
pcPriClassBase As Long ' Base priority of process's threads
dwFlags As Long
szExeFile As String * 255 ' Path
End Type
============================== Смотри выше ===============================

============================== Смотри ниже ===============================
Private Sub Command1_Click()
Dim hProc&
If Me.List1.ListIndex <> -1 Then
hProc = OpenProcess(PROCESS_TERMINATE, 0,
Me.List1.ItemData(Me.List1.ListIndex))
TerminateProcess hProc, 0
If Err.LastDllError <> 0 Then MsgBox "Hе получилось. :(", vbExclamation
CloseHandle hProc
End If
Call Command2_Click
End Sub

Private Sub Command2_Click()
Dim pe As PROCESSENTRY32, hSS&, LastItem&
LastItem = Me.List1.ListIndex
Me.List1.Clear
pe.dwSize = LenB(pe)
hSS = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
Process32First hSS, pe
Do
Me.List1.AddItem pe.szExeFile
Me.List1.ItemData(Me.List1.ListCount - 1) = pe.th32ProcessID
Loop While Process32Next(hSS, pe)
If LastItem < Me.List1.ListCount Then Me.List1.ListIndex = LastItem
End Sub

Private Sub Form_Load()
Call Command2_Click
End Sub
============================== Смотри выше ===============================

Одна кнопка выводит список процессов, другая прибивает процесс.

SH> Если запущена, то вывести вперед ее окно, если она окно вообще создает.

EnumWindows -> GetWindowThreadProcessId; SetForegroundWindow (?).

Всего хорошего!
Дмитрий Козырев aka Master

* Origin: Дорогу осилит идущий. (2:5023/11.148)


Re: CommonDialog не дает Charset или я дурак невыспавшийся?

From: "A. Skrobov"

Hello, Dmitriy!
You wrote in conference fido7.ru.visual.basic to "A.Skrobov" to A. Skrobov on Mon, 05 Jan 2004
10:22:42 +0300:

AS>> Метод борьбы с глюком меню, всплывающего из трея, сам узнал с
AS>> удивлением. Спасибо.
DK> Самое интересное, что у меня он не работал. ;)
Только что проверил на 2000 и МЕ, в обоих случаях работает.


--
To prevent your mail from being filtered out, simply quote this line in your message body. A464E022



* Origin: Talk.Mail.Ru (2:5020/400)


Re: Ресурсы по VBDOS

From: "Alex Pitch"

Hello, A.!

AS> А есть ли где-нибудь сабж?

Есть. 3.5 метра в мыло могу кинуть.

Joker


* Origin: Demos online service (2:5020/400)



Назад Содержание Вперед




Главная     Программы     Статьи     Разное     Форум     Контакты