Devil9313 Опубликовано 20 мая, 2017 Поделиться Опубликовано 20 мая, 2017 Здравствуйте подскажите как записать значение типа Float (-669.56872343) В Delphi Ссылка на комментарий Поделиться на другие сайты Поделиться
roma912 Опубликовано 20 мая, 2017 Поделиться Опубликовано 20 мая, 2017 float x; x := -669.56;? Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 20 мая, 2017 Поделиться Опубликовано 20 мая, 2017 В дельфи вроде бы используется тип real, а не float real x := -669.569; Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 21 мая, 2017 Поделиться Опубликовано 21 мая, 2017 В делфи все переменные объявляются в секции var с указанием типа ) x: Real; И только потом в коде идет присвоение значения x := -669.569; Ссылка на комментарий Поделиться на другие сайты Поделиться
Devil9313 Опубликовано 21 мая, 2017 Автор Поделиться Опубликовано 21 мая, 2017 (изменено) 6 минут назад, Xipho сказал: В делфи все переменные объявляются в секции var с указанием типа ) x: Real; И только потом в коде идет присвоение значения x := -669.569; Спасибо, сейчас попробую. Изменено 21 мая, 2017 пользователем Devil9313 Ссылка на комментарий Поделиться на другие сайты Поделиться
Devil9313 Опубликовано 21 мая, 2017 Автор Поделиться Опубликовано 21 мая, 2017 Что-то у меня не выходит, может что не так делаю, посмотрите пожалуйста исходник. Исходник Ссылка на комментарий Поделиться на другие сайты Поделиться
Devil9313 Опубликовано 21 мая, 2017 Автор Поделиться Опубликовано 21 мая, 2017 Нужно выводит значение координат в label сохранять текущие и телепортироваться на сохраненные Ссылка на комментарий Поделиться на другие сайты Поделиться
Devil9313 Опубликовано 21 мая, 2017 Автор Поделиться Опубликовано 21 мая, 2017 (изменено) Ребят сможете помочь ? если конечно не трудно за помощь буду благодарен я просто не работал со значениями типа Float не приходилось а теперь понадобилось но вот не знаю как прочитать значения и записывать их Изменено 21 мая, 2017 пользователем Devil9313 Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 21 мая, 2017 Поделиться Опубликовано 21 мая, 2017 9 минут назад, Devil9313 сказал: Ребят сможете помочь ? ПервоеВтороеТретьеЧетвертое Я не знаю поможет это тебе иль нет но все же стоит почитать. Ссылка на комментарий Поделиться на другие сайты Поделиться
Vlad2 Опубликовано 21 мая, 2017 Поделиться Опубликовано 21 мая, 2017 (изменено) Твоя процедура MemoryWriteValue принимает тип Cardinal (целое число), а ты передаешь ей значение типа Real. Отсюда и конфликт. Поправил твой модуль. Можешь теперь передавить процедуре MemoryWriteValue два типа данных: Cardinal, Double (тип с плавающей запятой); P.S. Тебе лучше использовать Double, вместо Real. MemoryHack.pas Изменено 21 мая, 2017 пользователем Vlad2 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 21 мая, 2017 Поделиться Опубликовано 21 мая, 2017 43 минуты назад, Devil9313 сказал: Ребят сможете помочь ? Также можешь посмотреть подобную тему на нашем форуме. Ссылка на комментарий Поделиться на другие сайты Поделиться
Devil9313 Опубликовано 21 мая, 2017 Автор Поделиться Опубликовано 21 мая, 2017 43 минуты назад, Vlad2 сказал: Твоя процедура MemoryWriteValue принимает тип Cardinal (целое число), а ты передаешь ей значение типа Real. Отсюда и конфликт. Поправил твой модуль. Можешь теперь передавить процедуре MemoryWriteValue два типа данных: Cardinal, Double (тип с плавающей запятой); P.S. Тебе лучше использовать Double, вместо Real. MemoryHack.pas Огромное спасибо за помощь!!! Сейчас посмотрю что там. Ссылка на комментарий Поделиться на другие сайты Поделиться
Devil9313 Опубликовано 21 мая, 2017 Автор Поделиться Опубликовано 21 мая, 2017 45 минут назад, Vlad2 сказал: Влад не подскажешь как прочитать значение по адресу все 3 координаты мне нужно их прочитать сохранить по кнопке и переместится по другой кнопке Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 21 мая, 2017 Поделиться Опубликовано 21 мая, 2017 Только что, Devil9313 сказал: Можешь подсказать какой у тебя Delphi? И где скачал . Ссылка на комментарий Поделиться на другие сайты Поделиться
Devil9313 Опубликовано 21 мая, 2017 Автор Поделиться Опубликовано 21 мая, 2017 Да конечно без проблем Delphi XE7 Ссылка на комментарий Поделиться на другие сайты Поделиться
Devil9313 Опубликовано 21 мая, 2017 Автор Поделиться Опубликовано 21 мая, 2017 и перемещение по координатам срабатывает почему-то 1 раз нажал кнопку переместился потом отошел от этого места куда переместился и нажал снова и не сработало второй раз Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 21 мая, 2017 Поделиться Опубликовано 21 мая, 2017 1 минуту назад, Devil9313 сказал: Да конечно без проблем Delphi XE7 А ссылку в ЛС сможешь скинуть если есть конечно. Ссылка на комментарий Поделиться на другие сайты Поделиться
Devil9313 Опубликовано 21 мая, 2017 Автор Поделиться Опубликовано 21 мая, 2017 Нет нету сейчас найду скину Ссылка на комментарий Поделиться на другие сайты Поделиться
Devil9313 Опубликовано 21 мая, 2017 Автор Поделиться Опубликовано 21 мая, 2017 ребят кто нибудь поможет нужно прочитать значение и по нажатию на кнопку сохранять позицию и желательно выводит координаты в label Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 21 мая, 2017 Поделиться Опубликовано 21 мая, 2017 15 минут назад, Devil9313 сказал: ребят кто нибудь поможет нужно прочитать значение и по нажатию на кнопку сохранять позицию и желательно выводит координаты в label Это уже посмотрел? Не помогло? Ссылка на комментарий Поделиться на другие сайты Поделиться
Devil9313 Опубликовано 21 мая, 2017 Автор Поделиться Опубликовано 21 мая, 2017 Читает но почему-то не то значение указал адрес считывает но значения совсем разные Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 21 мая, 2017 Поделиться Опубликовано 21 мая, 2017 42 минуты назад, Devil9313 сказал: Читает но почему-то не то значение указал адрес считывает но значения совсем разные Если ты используешь скрипт @Vlad2, то он. как мне кажется второпях, не удалил твою версию процедуры MemoryWriteValue и нужно так: Скрытый текст unit MemoryHack; interface uses Winapi.Windows, SysUtils, Vcl.Dialogs, Winapi.TlHelp32; function GetProcessID(Name: string) : Cardinal; function Read(Pattern: Cardinal): Cardinal; procedure MemoryWriteValue(Address: Integer; WriteValue: Double); Overload; procedure MemoryWriteByte(Address: Integer; WriteBytes: array of Byte); var ProcessID: Cardinal; Protect_OFF, Protect_ON: DWORD; Handle: LongInt; P: Cardinal; NumRead: DWORD_PTR; NumWritten: DWORD_PTR; implementation function GetProcessID(Name: string): Cardinal; var SnapShot : THandle; process : TProcessEntry32; begin Result := 0; SnapShot := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0); process.dwSize := SizeOf(Process); Process32First(SnapShot, Process); repeat if process.szExeFile = name then begin Result := process.th32ProcessID; CloseHandle(SnapShot); exit; end; until Process32Next(SnapShot, Process) <> True; CloseHandle(SnapShot); end; function Read(Pattern: Cardinal): Cardinal; begin ProcessID := OpenProcess(PROCESS_VM_READ or PROCESS_VM_WRITE or PROCESS_VM_OPERATION,False,ProcessID); if ProcessID <> 0 then begin if ReadProcessMemory(ProcessID,Ptr(Pattern),@P,SizeOf(P),NumRead) then Result := P; CloseHandle(ProcessID); end; end; procedure MemoryWriteValue(Address: Integer; WriteValue: Double); overload; begin ProcessID := OpenProcess(PROCESS_VM_READ or PROCESS_VM_WRITE or PROCESS_VM_OPERATION,False,ProcessID); if ProcessID <> 0 then begin VirtualProtectEx(ProcessID,Ptr(Address),SizeOf(WriteValue),PAGE_EXECUTE_READWRITE,Protect_ON); WriteProcessMemory(ProcessID,Ptr(Address),@WriteValue,SizeOf(WriteValue),NumWritten); VirtualProtectEx(ProcessID,Ptr(Address),SizeOf(WriteValue),Protect_OFF,Protect_ON); CloseHandle(ProcessID); end; end; procedure MemoryWriteByte(Address: Integer; WriteBytes: array of Byte); begin ProcessID := OpenProcess(PROCESS_VM_READ or PROCESS_VM_WRITE or PROCESS_VM_OPERATION,False,ProcessID); if ProcessID <> 0 then begin VirtualProtectEx(ProcessID,Ptr(Address),SizeOf(WriteBytes),PAGE_EXECUTE_READWRITE,Protect_ON); WriteProcessMemory(ProcessID,Ptr(Address),@WriteBytes,SizeOf(WriteBytes),NumWritten); VirtualProtectEx(ProcessID,Ptr(Address),SizeOf(WriteBytes),Protect_OFF,Protect_ON); CloseHandle(ProcessID); end; end; end. Ссылка на комментарий Поделиться на другие сайты Поделиться
Devil9313 Опубликовано 21 мая, 2017 Автор Поделиться Опубликовано 21 мая, 2017 Я название процедуры изменил все нормально так то все работает но не могу прочитать значение и сохранить Ссылка на комментарий Поделиться на другие сайты Поделиться
Devil9313 Опубликовано 21 мая, 2017 Автор Поделиться Опубликовано 21 мая, 2017 Ребят никто не поможет ? Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 21 мая, 2017 Поделиться Опубликовано 21 мая, 2017 22 минуты назад, Devil9313 сказал: Ребят никто не поможет ? Я бы помог, но ЯП не знаю. В СЕ ассемблер всё это делается просто. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения