Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
Kolobuk
-
- Обычный пользователь

-
-
- Сообщения: 61
- Зарегистрирован: 24.10.2006 (Вт) 20:03
Kolobuk » 14.02.2007 (Ср) 20:43
- Код: Выделить всё
Dim X as Long
ReadProcessMemory pHandle, &H93DA580, X, 4, 0&
Text1 = X
- X получается 0, почему?
Если вместо Х считывать 4-х байтную строку, результат не нулевой (буковки корявые появляются всё время разные, т.к. значения в адресе меняется).
------------------------
В адресе значение не нулевое - это точно.
-
GSerg
-
- Шаман

-
-
- Сообщения: 14286
- Зарегистрирован: 14.12.2002 (Сб) 5:25
- Откуда: Магадан
GSerg » 14.02.2007 (Ср) 21:00
Задекларировано как?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас
-
Kolobuk
-
- Обычный пользователь

-
-
- Сообщения: 61
- Зарегистрирован: 24.10.2006 (Вт) 20:03
Kolobuk » 14.02.2007 (Ср) 21:01
- Код: Выделить всё
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAcess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddess As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWriten As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(Destination As Any, Source As Any, ByVal Length As Long)
Private Const PROCESS_ALL_ACCESS As Long = &H1F0FFF
-----------------------
Если X объявить как Single, снимается число близкое к 0 (2,505897E-39) - но это же не ноль. И Long не может показать ноль.
Последний раз редактировалось
Kolobuk 14.02.2007 (Ср) 21:05, всего редактировалось 1 раз.
-
_ae_
-
- Продвинутый пользователь

-
-
- Сообщения: 165
- Зарегистрирован: 08.10.2006 (Вс) 14:37
_ae_ » 14.02.2007 (Ср) 21:05
"ByVal lpBuffer As Any"=>"ByRef lpBuffer As Any"
-
Kolobuk
-
- Обычный пользователь

-
-
- Сообщения: 61
- Зарегистрирован: 24.10.2006 (Вт) 20:03
Kolobuk » 14.02.2007 (Ср) 21:07
Спасибо. Всё работает теперь

-
GSerg
-
- Шаман

-
-
- Сообщения: 14286
- Зарегистрирован: 14.12.2002 (Сб) 5:25
- Откуда: Магадан
GSerg » 17.02.2007 (Сб) 22:05
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: AhrefsBot, Majestic-12 [Bot], SemrushBot, Yandex-бот и гости: 0