Текущий архив: 2003.03.03;
Скачать: CL | DM;
ВнизКак прочитать абсолютный адрес памяти? Найти похожие ветки
← →
Sharik_212 (2003-02-18 19:41) [0]В Паскале были директивы MemB, MemW, MemL. Чем можно их заменить? Конкретно надо прочитать два слова $401A и $401C. Спасибо.
← →
jack128 (2003-02-18 19:51) [1]ну например
var p : pointer;
begin
p := Poiter($401A);
Move(Buffer^,p^,dataSize);
end;
Только скорее всего AV получишь...
← →
Sharik_212 (2003-02-18 20:20) [2]не работает :-((
← →
ION T (2003-02-18 20:26) [3]для извращенцев:
var
buf: array [0..3] of byte;
Count: cardinal;
begin
ReadProcessMemory(GetCurrentProcess, Pointer($401A), @buf, 4, Count);
Caption := string(buf);
end;
← →
Sharik_212 (2003-02-18 21:20) [4]От мзвращенцев огромное спасибо ION T (серьезно)! Но, к сожалению, я не добился желаемого результата. Опишу задачу более глобально. Необходимо узнать время "неюзания" компьютера. Но! В 16-битных приложениях (DOS) вин-ловушка на клаву, к сожалению, не действует. А пользователи работают в 99% рабочего времени именно в этой программе. В DOS можно еще было прочитать порт 60h. Пробую
procedure TForm1.Timer1Timer(Sender: TObject);
var
kh : word;
begin
asm
in ax, 60h
mov kh, ax
end
caption:=inttostr(kh)
end;
Пишет всякую чушь.... Как побороть?
← →
Palladin (2003-02-18 22:42) [5]вин-ловушки я так понял это hook
если тебя интересуют дос-ловушки тебе самое время почитать про резидены и про прервания
в таком случае даже не пытайся читать про win32api
← →
Sharik_212 (2003-02-19 20:28) [6]Неохота вешать на каждое окно по резиденту, да и потом как обмениваться инфой с виндовыми приложениями?
Страницы: 1 вся ветка
Текущий архив: 2003.03.03;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.01 c