![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 24.07.2013
Сообщений: 1
|
![]()
Хотел создать свой трейнер-русификатор для игры но есть одна проблема, я не мастер на Delphi и мало знаю языков программирования. Пожалуйся, помогите.
Вопрос: Как сделать так чтоб в указанных байтах значение менялось не на число а на текст! Я много пытался но так и не получилось, вылазила ошибка что Кардинал и Стринг используется одновременно и что-то в этом роде. Вот сам код: var Form1: TForm1; WindowName: integer;// Для удобства объявим как глобальные переменные. ProcessId: integer; // Все эти переменные нужны для того, чтобы найти ThreadId: integer; // процесс с игрой. HandleWindow: Integer; // write: cardinal; // В эту переменную попадёт количество записанных байтов. (И как тут быть?) buf: dword; // Тут будет содержаться значение, на которое будем изменять. (Что это я не понял) const WindowTitle = 'Наша игра'; // Заголовок окна с игрой Address = $83C4BF64; // Адрес, по которому будем изменять значение на текстовое. NumberOfBytes = 4; // Количество байт, которые будем заменять. Что тут писать? Вроде надо оставить 4, потому что 4 байтовый адрес implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin WindowName := FindWindow(nil,WindowTitle); If WindowName = 0 then begin // Если окошка у нас нет, то и изменять нечего. MessageDlg('Игра должна быть запущена до трейнера. Запустите ее, потом трейнер', mtwarning,[mbOK],0); end; ThreadId := GetWindowThreadProcessId(WindowName ,@ProcessId); // Ищем хэндл процесса HandleWindow := OpenProcess(PROCESS_ALL_ACCESS,Fals e,ProcessId); // с нашей игрой. buf:=$DEAD; // DEADh = 57005d WriteProcessMemory(HandleWindow, ptr(address), @buf, 4, write); // Изменяем значение по этому адресу на наше. end; Пожалуйста, помогите. Подробности: нужно сделать так чтоб в байтах было не числовое Value ставилось а ТЕКСТОВОЕ - string, у меня не получается. Заранее спасибо. Например: я нашел через ArtMoney текстовое значение 'Hello' и я копирую байты и вставляю в наш код и мне надо чтоб ставилось не число а перевод вместо 'Hello' при нажатий на кнопку трейнер переиминовывал его в 'Привет' Последний раз редактировалось rainzek; 24.07.2013 в 22:08. |
![]() |
![]() |
![]() |
#2 | |
Заблокирован
Регистрация: 24.07.2013
Сообщений: 41
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Текст слишком длинный не помещается в System::String | askerpro | Visual C++ | 1 | 09.05.2012 12:55 |
Текст string | Deli | Помощь студентам | 0 | 06.12.2011 16:44 |
Загрузить текст из file.txt в объект String | apromix | JavaScript, Ajax | 3 | 10.10.2011 09:06 |
Добавляем форматированный текст в RichEdit из String | Jetro | Общие вопросы Delphi | 10 | 24.06.2011 15:40 |
текст String | death65 | Помощь студентам | 4 | 25.11.2010 19:15 |