Visual Basic 6.0 - Проблема иконки в трее под WinXP
Re: Проблема иконки в трее под WinXP
Мы где-то виделись, Sergei?
26 Mar 04 12:16:49 в RU.VISUAL.BASIC Sergei Ho -> Sergey Merzlikin:
SH> Да, я использую сабклассинг в ряде случаев, но в качестве
SH> черных ящиков в виде готовых sub'ов.
Попробуй MsgHook, он очень прост для освоения.
Всего хорошего!
Дмитрий Козырев aka Master
* Origin: Дорогу осилит идущий. (2:5023/11.148)
Search and Replace
XC: arc-echo
Здравствуй, Alexander!
AA> H!ё$ ЩKДЫ?*Є??*Є??*Є?6¤??*Є?ф5???*Є?t5??*Є?Rich?*Є?
AA> PE L *----end PE files----*
AA> Вопpос:
AA> Как можно откpыть exe-файл, найти какое-нибудь слово(напpимеp *This*)
AA> и заменить на *What*? Заpанее спасибо.
Дык надо откpывать не виндовыми эдитоpами, а досовыми... От NC пойдёт, DN, и т.д.
Кстати FAR пойдёт тоже.
До свиданья, Alexander!
[АмГУ/ФСH]
* Origin: Рэйнджеры! Включаю турбо на хрен бластер! (2:5041/2000)
charset
Можно ли в уже откомпилированном .exe поменять для listbox-ов и textbox-ов Font Charset на кириллицу?
* Origin: 1134 (2:5045/44.13)
Search and Replace
H!, _[Andrei]_!
AF> Дык надо откpывать не виндовыми эдитоpами, а досовыми... От NC
AF> пойдёт, DN, и т.д.
Дак это без б понятно, хочется сpедствами эхотага.
g'bye and g'luck, _[Andrei]_!
* Origin: Down/Upload Soft - [SVALKA.TK] (2:5054/29.33)
Подсказка
H!, _[Dima]_!
DG> Втоpой ваpиант - оpганизуй дополнительную фоpму без оботков. Там tooltip
DG> будешь делать на свой вкус.
Спас.
g'bye and g'luck, _[Dima]_!
* Origin: S2k - http://revengecrew.org (2:5054/29.33)
Пользователи и паpоли
>> AT> Ты что сказать-то хотел?
>> Только то, что у тебя фантазия пошаливает.
AT> Присылай свой system.mdw - я тебе расскажу все твои пароли, грамотей
AT> :)
Hу давай, грамотей, расскажи мне об этом пароле:
hash="urgr1W8cm1iSmQHJ/EfO5qpgWdwmnkj0qIbVdq4moEk="/>
Я тебе даже алгоритм хеша назову - SHA256.
WBR, Максим Лановой
* Origin: Fas ast ab hoste doseri (2:463/1124.6)
Re: Search and Replace
From: Alexander Asyabrik <belmis [@] mail.belpak.by>
Привет, Alexander.
Вы, было дело, писали 8 марта 2004 г., 20:06:
(ждал до сих пор, думал кто-нибудь ответит
AA> Как можно откpыть exe-файл, найти какое-нибудь слово(напpимеp *This*) и
AA> заменить на *What*?
Простейшее решение (не самое правильное), хотя, в принципе, рабочее:
1) открываем наш файл For Binary и считываем его содержимое в
строковую переменную (Get).
2) с помощью функции Replace заменяем This на What (длина их должна
быть одинаковой).
3) переезжаем в начало в файла и помещаем туда нашу уже измененную
переменную (Put).
4) (почти обязательный:))) выкидываем полученный файл к чертовой
матери за непригодностью (из-за возможной замены
_случайно_попавшегося_ в _программном_коде_ буквосочетания This).
Образец кода:
======================================================================
Dim s$
Open "c:\test.exe" For Binary As 1
s = Space(LOF(1))
Get 1, , s
' Это для обычных ANSI строк
s = Replace(s, "Fake", "HiFi")
'А это вариант для строковых данных в unicode
's = Replace(s, StrConv("Fake", vbUnicode), _
StrConv("HiFi", vbUnicode))
Put 1, 1, s
Close 1
=======================================================================
Если использовать массив, а не строку для содержимого файла, что
более рекомендуется, то еще будут некоторые небольшие изменения.
Собсна, все.
--
С уважением, Alexander
5:32:30 PM
* Origin: Talk.Mail.Ru (2:5020/400)
Re: событие, происходящее при наведении мыши на часы в трее
From: "A. Skrobov" <tyomitch [@] r66.ru>
Hello, Roman!
You wrote in conference fido7.ru.visual.basic to "A.Skrobov"
<fido7.ru.visual.basic [@] talk.ru>to A. Skrobov on Fri, 26 Mar 2004 10:38:27
RY>>> Угу. Может где примеры есть использования?
AS>> Hа Русском_Проекте (rusproject.narod.ru) был пример замены часов
AS>> своими. Там находилось это окно (с классом TrayClockWClass) и
AS>> SetParent-ом запихивалось туда своё.
RY> О, спасибо!
Вот сэмпл "часики в трее", по мотивам Русского_Проекта, специально для тебя:
=========Beginning of the citation==============
VERSION 5.00
Begin VB.Form Clock
BorderStyle = 0 'None
ClientHeight = 420
ClientLeft = 0
ClientTop = 0
ClientWidth = 420
ScaleHeight = 28
ScaleMode = 3 'Pixel
ScaleWidth = 28
ShowInTaskbar = 0 'False
Begin VB.Timer tmrTick
Interval = 500
Left = 0
Top = 0
End
End
Attribute VB_Name = "Clock"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Type POINTAPI
x As Long
y As Long
End Type
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal
lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA"
(ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal
lpsz2 As String) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hWnd As Long,
lpRect As RECT) As Long
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long,
ByVal hWndNewParent As Long) As Long
Private Const TwoPiOver360 = 0.017453292
Private Sub Form_Load()
Dim hWnd As Long, rctemp As RECT
hWnd = FindWindow("Shell_TrayWnd", vbNullString)
hWnd = FindWindowEx(hWnd, 0, "TrayNotifyWnd", vbNullString)
hWnd = FindWindowEx(hWnd, 0, "TrayClockWClass", vbNullString)
GetWindowRect hWnd, rctemp
With Me
.Left = 0
.Top = 0
.Width = (rctemp.Right - rctemp.Left) * Screen.TwipsPerPixelX
.Height = (rctemp.Bottom - rctemp.Top) * Screen.TwipsPerPixelY
End With
SetParent Me.hWnd, hWnd
End Sub
Private Sub Form_Paint()
Dim Hour As Single, Minute As Single, Second As Single, pt1 As POINTAPI, pt2
As POINTAPI
Dim Tick As Single
DrawWidth = 1
For Tick = 30 To 360 Step 30
pt1 = PolarToRect(1, Tick)
PSet (pt1.x, pt1.y)
Next
Hour = 90 - (30 * VBA.Hour(Now) + VBA.Minute(Now) / 2)
Minute = 90 - (6 * VBA.Minute(Now) + VBA.Second(Now) / 10)
Second = 90 - (6 * VBA.Second(Now))
pt1 = PolarToRect(0, 0)
DrawWidth = 2
pt2 = PolarToRect(0.5, Hour)
Line (pt1.x, pt1.y)-(pt2.x, pt2.y)
pt2 = PolarToRect(1, Minute)
Line (pt1.x, pt1.y)-(pt2.x, pt2.y), vbBlue
pt2 = PolarToRect(1, Second)
DrawWidth = 1
Line (pt1.x, pt1.y)-(pt2.x, pt2.y), vbRed
End Sub
Private Sub tmrTick_Timer()
Me.Refresh
End Sub
Private Function PolarToRect(r As Single, phi As Single) As POINTAPI
Dim Result As POINTAPI
Result.x = (Me.ScaleWidth - 1) * (1 + r * Cos(phi * TwoPiOver360)) / 2
Result.y = (Me.ScaleHeight - 2) * (1 - r * Sin(phi * TwoPiOver360)) / 2
PolarToRect = Result
End Function
=========The end of the citation================
Hадеюсь, оценишь мой посильный труд :-)
А примерами можешь закидывать, мне всегда приятно ;-)
--
To prevent your mail from being filtered out, simply quote this line in your
message body. A464E022
* Origin: Talk.Mail.Ru (2:5020/400)
визуальное отображение меню
1. Как сделать подсказку к пункту Меню a-la акселлератор (т.е. имя пункта тянется слева, описание справа), но не ограничиваясь теми вариантами (F1-F2 и т.д.), которые там представлены. Представление кнопки как акселлератора не особо нужно, скорее даже наоборот. ;)
2. Как поменять цвет фона горизонтального меню своей программы?
¦ Послано в RU.VISUAL.BASIC
¦ Также послано в RU.VISUAL.BASIC.CHAINIK
* Origin: 1134 (2:5045/44.13)
обработка метода post
DK>> Почему ты думаешь, что через CGI будет сложнее? В моем примере
DK>> Console все потоки уже перехвачены; Small HTTP Server даже
DK>> инсталляции не требует; что сложного-то?
AS> А что сложного с осх? Изменить тип проекта, сбацать контрол и
AS> прописать в html-коде. Да нет, я верю, что через CGI несложно; просто
AS> _чем_ обоснован выбор CGI вместо осх, кроме того факта, что "все
AS> потоки уже перехвачены"?
??? не было выбора CGI. Было непонимание процесса. Говорю же, избалован на апачах и php, поэтому думал, что можно в post передавать локальные данные.
* Origin: 1134 (2:5045/44.13)