Witajcie.
Przepisuje program napisany w Delphi na WinAPI (zależy mi na jak najmniejszym rozmiarze i szybkości - aplikacja bezokienkowa) i pojawił się problem. Chcę odczytać adres pewnej aplikacji:
function MemReadString(Address: Integer): String;
var
NB: LongWord;
Temp: ARRAY [1..255] OF Byte;
I: Byte;
IDProcess, proc_ID: Cardinal;
begin
GetWindowThreadProcessID(FindWindow('NAZWA_OKIENKA_APLIKACJI', nil), @proc_ID);
IDProcess := OpenProcess(PROCESS_ALL_ACCESS, false, proc_ID);
Result := '';
ReadProcessMemory(IDProcess, Ptr(Address), @Temp[1], 255, NB);
for I := 1 to 255 do
begin
if ((Temp[I] = 0) or (Temp[I] = $0F)) then
Break;
Result := Result + Chr(Temp[I]);
end;
end;
Adresy aplikacji są dobre, funkcja też jest dobra - sprawdzone na zwykłej formie, a w WinAPI już nie chcę pójść.
Wyrzuca jakieś złe wartości.
Pozdrawiam