Обсуждение программирования на Visual Basic в конференции ru.visual.basic
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 - revengecrew.org (2:5054/29.33) |
Пользователи и паpоли |
>> AT> Ты что сказать-то хотел? >> Только то, что у тебя фантазия пошаливает. AT> Присылай свой system.mdw - я тебе расскажу все твои пароли, грамотей AT> :) Hу давай, грамотей, расскажи мне об этом пароле: Я тебе даже алгоритм хеша назову - SHA256. WBR, Максим Лановой * Origin: Fas ast ab hoste doseri (2:463/1124.6) |
Re: Search and Replace |
From: Alexander Asyabrik Привет, 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" Hello, Roman! You wrote in conference fido7.ru.visual.basic to "A.Skrobov" 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) |