Ошибка delphi может возникнуть при попытке загрузки какого-либо приложения или игры. Данный файл является частью системной библиотеки Windows, и причин неполадок, связанных с ним, может быть не так много...
Искал на просторах Интернета решение задачи запуска первой копии программы вместо второй. Трудно пришлось. Но всё-таки после тщательного анализа и опробования многих предложений вот что получилось: {------------} program arm_usi_tcp; uses Forms, Windows, ..... , Messages, main in 'main.pas' {Form1}, ........ {$R *.RES} var hMutex: THandle; hwndPrev: HWND; begin HMutex := CreateMutex (nil, True, 'svc_arm_usi_tcp'); if WaitForSingleObject (hMutex, 0) <> wait_TimeOut then begin {------первый запуск программы} Application.Initialize; Application.HelpFile := ''; Application...
Сказать по правде, в планах было написание статьи совсем на другую тему, а именно анонс обновления софта для 5D/7D/VR, но занимаясь этим самым обновлением обнаружил интересный момент в работе с командами консоли, с которым прежде не сталкивался... Кто-то может сказать, мол, ну а что ж тут сложного? Юзай winexec и будет тебе счастье! Да, но это годится только для простых задач, когда надо выполнить действие, не контролируя его исполнение и без намерений получить какой-либо результат... И тут уж нам никак не обойтись без нашего любимого CreateProcess и WaitForSingleObject...
-------------------
Ссылки на части: _часть 1 _часть 2
_получаем патч-байты для SCUM.v0.9.113.75065
------------------- Привет. Продолжаем кодить, создадим необходимые нам структуры record, вверху, сразу после type sections = record ... end; пишем код:
type //входит в dataForPatchBytes
patchBytesRec = record
offsetAdresPatch:DWORD64; //смещение от найденного адреса сигнатуры
//отсчёт смещения (true - вычитанием, то есть смещение вверх, иначе в низ) от offsetAdresPatch
...