Резидентной программой (или TSR-программой, от слов: Terminate but Stay Resident) называется программа, которая остается в памяти ЭВМ в то время, как операционная система выполняет свои обычные функции: исполняет команды, запускает другие (фоновые) программы и т.п. Резидентными являются многие системные программы.
В системе MS-DOS пользователь имеет возможность запускать и собственные резидентные программы. Чтобы программа была резидентной, нужно, чтобы операционная система считала занятой ту область памяти, в которой размещается эта программа, и не отдавала эту память для других целей.
При этом единственным способом для резидентной программы проявить каким-то образом себя на фоне обычной работы операционной системы является реакция на аппаратные или программные прерывания. Таким образом, резидентная программа – это всегда программа обработки прерываний. Наиболее часто резидентные программы используют прерывания по работе с клавиатурой (аппаратные или программные). Такая программа активизируется при нажатии специфичной для нее комбинации клавиш. Используются также прерывания от таймера, других устройств, программные прерывания BIOS и функции DOS.
Как правильно выбирать работы в IT и всегда развиваться — Как мы попали в IT – S0ER
Резидентная программа состоит, как правило, из нерезидентной и резидентной частей. Задача нерезидентной части – выполнить действия по начальной установке (загрузке) TSR-программы. Главное здесь – запоминание прежних значений перехватываемых векторов прерываний и установка новых значений, т.е. перехват прерываний. Кроме того, здесь может выполняться инициализация переменных, используемых затем при резидентной работе, чтение адреса флага DOS, выделение динамической памяти и другие начальные действия.
Резидентная часть программы представляет собой одну или несколько процедур обработки перехваченных прерываний. Желательно, чтобы при любых условиях такая процедура вызывала также и прежнюю подпрограмму, на которую указывал вектор до перехвата. Даже если программе не нужна стандартная обработка прерываний, может случиться, что вектор был ранее перехвачен другими TSR-программами, тогда по одному прерыванию могут успешно вызываться несколько программ. Если старый вектор сохранен в памяти (скажем, в двойном слове OldVector), то его вызов из TSR-программы выполняется либо командами
(при этом возврат происходит в TSR-программу), либо командой
(с возвратом прямо в фоновую программу).
Как и всякая подпрограмма обработки прерываний, TSR- программа должна сохранять и затем восстанавливать значения всех регистров, за исключением тех регистров, через которые соответствующее программное прерывание возвращает результаты. Надо также иметь в виду, что многие прерывания и функции DOS изменяют значения некоторых флагов, поэтому перехватывающие их TSR-программы должны обеспечивать правильные значения регистра флагов и заканчивать работу не командой IRET, а командой RET 2 (т.е. без восстановления флагов вызывающей программы). Важный момент при запуске TSR-программы – предотвратить повторную загрузку программы, если она уже была ранее загружена.
КАРЬЕРА ХАКЕРА. Книга 1 — Основы MASM32. Глава 4 — Резидентная программа
Повторная загрузка, как минимум, без пользы уменьшает размер памяти, доступной DOS, а часто приводит и к неверной работе TSR-программы (необходимые действия выполняются два раза). Чтобы предотвратить это, программа еще до перехвата векторов должна проверить, не были ли они уже перехвачены при предыдущем запуске той же программы.
Для этого обычно проверяются ключевые значения, хранящиеся на определенном смещении в сегменте из перехватываемого вектора. Если этот ключ совпадает с заданным (например, это может быть определенное число или даже название самой программы), то вектор, очевидно, уже указывает на данную программу, т.е. он перехвачен. Такой способ не дает стопроцентной гарантии, поскольку возможно, что векторы были второй раз перехвачены другой программой, сквозь которую трудно разглядеть первый перехват. Иногда применяют более радикальное решение: ищут ключ в ОЗУ, перебирая подряд все значения адреса сегмента, меньшие, чем текущий адрес PSP.
В конце работы нерезидентной части она должна выполнить функцию DOS, которая завершает выполнение программы, оставляя заданную часть резидентной.
Функция 31h: Завершить, оставив резидентной.
AL – код завершения.
DX – размер резидентной части в параграфах.
Код завершения принимается равным 0, если программа проработала нормально. Размер резидентной части отсчитывается от начала PSP (а не от начала кодового сегмента!). Для уменьшения занимаемой памяти принято размещать резидентную часть в начале программы, а нерезидентную – в конце.
Чтобы подсчитать требуемый размер, обычно используют метку, которую ставят сразу после конца резидентной части. Смещение этой метки относительно CS делят на 16, получая число параграфов, которое для EXE-программы следует еще увеличить на разность между значением в CS и адресом PSP. Напомним, что в момент запуска EXE-программы адрес PSP содержится в регистрах DS и ES (а для COM-программ еще и в CS и SS).
Иногда предусматривается возможность выгрузки TSR-программы с освобождением занимаемой ею памяти. Здесь, однако, есть серьезные проблемы в том случае, если после данной TSR-программы была загружена другая TSR-программа, тем более перехватывающая те же векторы. Поэтому чаще TSR-программа остается в памяти вплоть до перезагрузки DOS.
Гораздо проще предусмотреть возможность деактивации TSR-программы без ее выгрузки. Для этого надо по определенной комбинации клавиш устанавливать в программе флаг, заставляющий ее при последующих вызовах просто вызывать старую подпрограмму обработки прерывания без вмешательства в ее работу. В тот момент, когда TSR-программа получает управление по прерыванию, значения в регистрах DS, SS, и ES принадлежат фоновой программе и могут быть произвольными. Это требует осторожности при использовании стека и данных в памяти.
Один из вариантов работы с данными – вообще не использовать в резидентной программе сегмент данных и адресовать переменные в памяти относительно CS, задав в программе директиву:
и описав все переменные в сегменте кода.
Другой вариант – использовать сегмент данных как обычно, но в резидентной части при каждом вызове записывать в DS адрес своего сегмента данных (после сохранения прежнего значения DS).
Резидентная программа может использовать для своих нужд стек фоновой программы, работавшей в момент вызова, при этом TSR не изменяет значение регистра SS. При аккуратном обращении со стеком (каждому PUSH – свой POP!) это может вызвать ошибку только в случае переполнения стека фоновой программы.
Если программист достаточно осторожен, чтобы этого опасаться, он может зарезервировать место для стека в резидентной части программы, в виде отдельного сегмента или в сегменте кода. При вызове TSR следует тогда сохранить прежние значения SS и SP, но только не в старом стеке! Общее правило гласит: использовать функции DOS в TSR-программах нельзя.
Более точно запрет формулируется так: нельзя вызывать функцию DOS в момент, когда еще выполняется предыдущий вызов какой-либо функции DOS. Как принято говорить, прерывание 21h нереентерабельно, т.е. его нельзя вызывать второй раз, пока не закончена обработка первого вызова.
А поскольку при вызове TSR трудно гарантировать, что система не обрабатывала в момент вызова какую-либо функцию (особенно если TSR обрабатывает аппаратное прерывание), то из этого и вытекает запрет на использование функций DOS в TSR-программах. Еще более точная формулировка: при выполнении функций 01h – 0ch нельзя вызывать функции из этого же диапазона номеров, но можно вызывать остальные, и наоборот: при выполнении остальных функций можно использовать только функции 01h – 0ch. Причина нереентерабельности функций DOS в том, что при входе в прерывание 21h система устанавливает сегмент стека SS на собственный стек DOS, сохраняя прежнее (пользовательское) значение SS в отдельной переменной (а не в стеке, что кажется более естественным, но не так-то просто осуществить!). В результате при повторном вызове в эту переменную будет записано значение SS перед вторым вызовом, и оно затрет значение пользовательского SS, делая невозможным возврат в вызвавшую программу.
Несмотря на досадный запрет, резидентные программы нередко все же используют функции DOS, соблюдая при этом определенные предосторожности. При входе в прерывание 21h система записывает значение 1 в определенный байт ОЗУ, называемый флагом DOS. Перед выходом из прерывания 21h флаг DOS обнуляется. Учитывая это обстоятельство, резидентная программа может использовать следующую стратегию.
При вызове (например, по нажатию комбинации клавиш) TSR-программа не пытается выполнить функцию DOS, а только устанавливает свой собственный флаг, означающий наличие запроса на выполнение. Другой же блок TSR-программы, работающий по прерываниям от таймера, постоянно проверяет наличие запроса и флаг DOS. Как только флаг DOS становится равным 0, запрос выполняется и флаг запроса сбрасывается. Адрес флага DOS может быть получен еще до запуска TSR с помощью функции DOS 34h.
Функция 34h: Адрес флага DOS.
ES:BX – адрес флага DOS.
К сожалению, эта функция не упомянута в официальной документации по MS-DOS, а это значит, что ее правильная работа не гарантируется, тем более в будущих версиях MS-DOS. Тем не менее, она довольно широко используется. Если программист все же не хочет использовать недокументированную функцию, то он без труда сам может отслеживать состояние DOS, перехватывая прерывание 21h.
К еще большему сожалению, проверка флага DOS еще не решает проблему использования функций DOS в TSR-программах. Беда в том, что некоторые функции DOS, а именно, работающие с клавиатурой, могут выполняться неограниченно долго. Это относится прежде всего к функции ввода строки 0ah, которая может «висеть» часами, пока пользователь не нажмет «Enter». В этих условиях TSR-программа будет вынуждена ждать окончания ввода, что не всегда приемлемо.
Многие резидентные программы используют еще одну недокументированную возможность – перехват прерывания 28h. Это прерывание вызывается не программами пользователя, а самой DOS в те моменты, когда функции 01h – 0ch ожидают нажатия клавиши. Фактически при этом выполняется цикл, состоящий из проверки наличия нажатой клавиши и, если ее нет, вызова прерывания 28h. Таким образом, если программа пользователя перехватила прерывание 28h, то можно быть уверенным, что в этот момент DOS находится в состоянии выполнения одной из функций 01h – 0ch, и поэтому можно безбоязненно вызывать остальные функции DOS.
Источник: studopedia.su
Резидентные программы
Программы, обеспечивающие функционирование вычислительной системы, должны постоянно находиться в памяти и мгновенно реагировать на запросы пользователя или на какие-то события, происходящие в вычислительной системе.
Такие программы носят название программ, резидентных в памяти. Сделать резидентной можно как программу типа .СОМ, так и программу типа .EXE. Программы типа .СОМ компактнее и занимают меньше места в памяти, поэтому чаще используются в качестве резидентных.
Программа, которая остается резидентной, обычно содержит процедуру и инициализирующую часть, которая должна записать в определенном месте оперативной памяти адрес точки входа в процедуру и оставить процедуру резидентной в оперативной памяти после загрузки.
В тексте программы процедура размещается в начале, инициализирующая — за ней. Следует отметить, что после загрузки программы резидентной остается только процедура, а инициализирующая часть отбрасывается.
Для того чтобы активизировать резидентную программу, ей надо передать управление, и в некоторых случаях параметры.
Запустить резидентную программу можно тремя способами:
- с помощью синхронного (программного) прерывания из транзитной программы;
- вызвать ее оператором CALL как подпрограмму из транзитной программы;
- использовать механизм асинхронных (аппаратных) прерываний.
2. Особенности структуры программы типа com
Существуют определенные различия между программой, выполняемой как EXE-файл и программой, выполняемой как СОМ-файл. Файлы с расширением .СОМ не нуждаются в привязке, поскольку они хранятся в таком виде, что им не требуется фиксация сегмента. Все в программе хранится относительно начала кодового сегмента, включая все данные и стек.
По этой причине программа не может превышать 65535 байт по длине. В файлах с расширением .СОМ все сегментные регистры указывают на начало PSP.
Для представления программы в виде файла .СОМ требуется соблюдение следующих правил: 1. Поместите в начало программы оператор ORG 100H, который устанавливает счетчик команд IP на начало кода (программы типа .СОМ начинаются с относительного адреса 100Н вслед за PSP). 2. Для обхода данных и возможности начать выполнение с любого оператора поместите по адресу 100Н инструкцию JMP.
3. Оператор ASSUME должен устанавливать регистры DS, ES, SS таким образом, чтобы они совпадали со значением кодового сегмента. 4. Данные можно помещать в любом месте программы, но не перемешивать с кодом. Лучше начинать программы с области данных, обеспечив обход их с помощью оператора JMP. 5. Стековый сегмент должен быть опущен, т.к. программа генерирует стек автоматически, а указатель стека SP инициализируется на вершину адресного пространства 64К, используемого программой.
3. Требования к структуре резидентной программы, запускаемой с помощью программного прерывания
- саму процедуру, которая заканчивается командой IRET;
- команды инициализации
- команды, оставляющие программу резидентной
Источник: studfile.net
Резидентские программы. Что это такое, для чего они нужны и как отключить резидентные программы в памяти.
E Вкратце Я хочу начать серию статей по повышению безопасности наших компьютеров. В этих статьях мы увидим, как установить различные антишпионские программы (антишпионские программы), такие как Поиск и уничтожение Spybot o el Ad-Aware и важно, чтобы вы знали, что это резидентная программа, чтобы в дальнейшем избежать головной боли, когда мы начнем говорить о них в этих статьях.
Что такое резидентская программа?
Резидентная программа — это программа, которая остается в памяти компьютера, поэтому мы говорим о резидентных программах в памяти. Любое приложение, которое вы используете на своем компьютере (игра, p2p, редактор изображений, слово и т. Д.), Занимает определенный объем памяти, но когда вы закрываете программу, память освобождается и может использоваться для других целей. Резидентные программы остаются в памяти все время, даже если вы не используете их в это время, и поэтому постоянно занимают часть памяти вашего компьютера.
P Чтобы было немного понятнее, предположим, что, например, когда вы прекращаете играть в одну из своих игр, она полностью освобождает память, но если вы используете антивирус для анализа файла, после его анализа антивирус остается в памяти, защищая ваш компьютер.
Для чего нужны резидентные программы?
Каждый раз, когда вы включаете компьютер, резидентные программы, такие как антивирус, загружаются вместе с операционной системой, так что эти программы доступны с первого момента. В случае с антивирусом это позволяет защитить систему с момента запуска компьютера без необходимости открывать антивирус при каждом включении компьютера.
C Как видите, хорошо, что такие программы, как антивирус, запускаются автоматически при включении компьютера и остаются в памяти для непрерывного использования. Другие программы, которые также находятся в памяти, предназначены для ускорения загрузки приложения, например, программа Acrobat Reader, который используется для открытия файлов PDF, частично находится в памяти, ожидая, когда вы захотите открыть файл PDF, таким образом, когда вы открываете один из этих файлов, программа уже частично загружается, и загрузка выполняется быстрее (если вы хотите заменить Acrobat Reader подумайте о Фоксит PDF).
P С другой стороны, может случиться так, что на вашем компьютере установлено много программ, что-то вполне нормальное, и что многие из этих программ хотят частично загружаться при запуске, чтобы они были доступны более быстрым способом, это означает, что запуск компьютера замедляется. (одна из проблем медленного компьютера в том) и что все эти резидентские программы в памяти потребляют большую часть памяти, доступной в системе. Поэтому то, что на первый взгляд может показаться преимуществом, в конечном итоге становится неудобством, поскольку компьютер замедляется, потребление ЦП без надобности и последнее тоже может привести к чрезмерному нагреву процессора (особенно летом).
P Правда, если вы посмотрите в правый нижний угол рабочего стола (в Windows XP), вы увидите множество значков, каждый из которых представляет программу, которая запускается при запуске и остается резидентной в памяти. Мы уже говорили, что некоторые из них необходимы, например антивирус, но другие потребляют ресурсы только без надобности. Например, предположим, что вы устанавливаете Winamp Потому что по выходным вы любите слушать музыку на компьютере, но в течение недели вы работаете со своим компьютером и не используете его, при установке Winamp он всегда запускается вместе с компьютером, так что остается в памяти до тех пор. так как ваш компьютер ждет, когда вы воспользуетесь плеером, но вы используете его только по выходным, поэтому Зачем хранить эту программу в памяти, если вы не собираетесь ее использовать?. С другой стороны, даже если вы используете программу каждый день, разница между запуском ее с нуля и запуском из памяти минимальна, но все время, когда вы не используете плеер, он будет занимать ресурсы. Не лучше ли запретить запуск программы при запуске ПК и предотвратить ее сохранение в памяти?.
Как предотвратить загрузку программы в память при запуске компьютера
P Чтобы программа не загружалась в память и не запускалась с операционной системой, у нас есть несколько методов, но мы увидим только один, который для меня самый простой.
1-й) Перейдите в меню «Пуск» и нажмите «Выполнить»:
2-й) Откроется окно с названием «Выполнить», в котором необходимо ввести «Msconfig» (без кавычек). Затем нажмите «Принять».
3-й) Откроется окно «Утилита настройки системы», нажмите на последнюю вкладку выше, где написано «Пуск».
4-й) Теперь вы можете увидеть все программы, которые загружаются при включении компьютера.
5-й) Чтобы ни один из них не загружался, снимите соответствующий флажок. Например, чтобы предотвратить загрузку Winamp, снимите флажок рядом с «winampa», который соответствует «агенту Winamp», программе Winamp, которая загружается при запуске.
6-й) После того, как мы сняли все флажки, соответствующие программам, которые мы НЕ хотим загружать в начале, мы должны нажать «Применить», а затем «Закрыть». Важно, чтобы вы не начинали снимать флажки как сумасшедшие и снимали только те, которые, как вы знаете, соответствуют программам, которые вы хотите удалить с самого начала. После нажатия на «Close» появится следующее окно, в котором вы должны выбрать между перезапуском системы сейчас или позже.
B Ну вот и все, при перезагрузке компьютера появится окно, информирующее о том, что использовалась утилита настройки системы, установите флажок, чтобы она больше не показывалась вам, и закройте окно. Выбранные вами программы больше не будут загружаться, это не означает, что вы их удалили, вы просто запретили им запускаться вместе с операционной системой и потреблять ресурсы. Помните, что есть резидентные программы, такие как антивирус и другие программы операционной системы, которые не следует отключать. По любым вопросам используйте комментарии. Поздравления с виноградниками.
Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.
Полный путь к статье: Новости гаджета » Общие » Software » Резидентские программы. Что это такое, для чего они нужны и как отключить резидентные программы в памяти.
37 комментариев, оставьте свой
Оставьте свой комментарий Отменить ответ
Убийственный уксус сказал
тому назад 16 лет
Привет Alfredo Рад, что вы здесь и что вам понравилась страница. Большое спасибо за ваш комментарий и приветствия для вас и за многочисленные визиты из вашей страны.
Juli сказал
тому назад 3 лет
Зачем хранить эту программу в памяти, если вы не собираетесь ее использовать? Вы можете ответить на этот вопрос
Alfredo сказал
тому назад 16 лет
Я действительно многому научился из ваших комментариев сегодня, 19 сентября 2007 г. Я нашел вашу страницу, прошло 4 часа, и я не устаю читать все ваши комментарии, которые очень важны и интересны, легко читаются и поучительны. Вам и спасибо за ваше обучение. Привет.
Альфредо (Арекипа — Перу — Южная Америка)
Edson сказал
тому назад 16 лет
Здравствуйте, Альфредо, вам нужно узнать, в какой части или разделе памяти находится антивирус.
Другое — это то, где именно находится команда com, и если вы можете получить доступ к этому разделу, да или нет, и почему, спасибо, я надеюсь, что вы ответите мне здесь и на мою электронную почту, если это не проблема, и большое спасибо
Питер сказал
тому назад 16 лет
Спасибо, что помогли мне с небольшой программой, которая мешала мне при запуске Windows
Убийственный уксус сказал
тому назад 16 лет
Добро пожаловать Питер довольно часто можно встретить назойливые надоедливые программы, которые устанавливаются в начале Windows и не оставляют нас в покое. Привет.
Марьяна сказал
тому назад 16 лет
Что ж, первый раз, когда я вошел на эту страницу, это было случайно, и это действительно послужило мне; потому что у меня было много сомнений относительно информатики! Спасибо Береги себя . Приветствую
Америка сказал
тому назад 16 лет
ps они не помогли мне с тем, что я хотел знать
ничего не появилось, что я сомневался
Мне показалось все, кроме того, что я искал
Я хотел узнать, что такое консультационные программы
как энкарта, словарь и т. д.
Это потому, что в школе мне давали домашнее задание искать это
Я знаю, для чего они нужны, но мне хотелось получить более сложную информацию, но я все еще не нашел ее Спасибо за вашу помощь!!
Убийственный уксус сказал
тому назад 16 лет
Добро пожаловать, Мариана, заходите время от времени в блог и смотрите, разрешатся ли ваши сомнения. Всего наилучшего.
Луис сказал
тому назад 16 лет
Большое спасибо за объяснение. Я также хотел бы знать, является ли Outlook Express резидентным и можно ли его удалить из конфигурации загрузки, поскольку я использую другие программы. Также как я могу получить доступ к папкам, в которые были загружены заставки и фоны рабочего стола.
Большое спасибо за страницу и за помощь.
Убийственный уксус сказал
тому назад 16 лет
Луис, я знаю, что Outlook Express не запускается при запуске компьютера, это нужно делать вручную.
Папка будет зависеть от местоположения, которое вы выбрали при загрузке, по умолчанию обычно это Мои документы. Попытайтесь увидеть. Привет.
Nacho сказал
тому назад 16 лет
Спасибо за информацию о резидентных программах. Привет, Начо.
Маврикий сказал
тому назад 16 лет
привет уксус: нет сомнений, что вы супер умны, чтобы объяснить, что у меня всегда было желание иметь движущуюся заставку, и благодаря вам она у меня уже есть. привет из Мехико. продолжайте учить нас.
Убийственный уксус сказал
тому назад 15 лет
Дэни, ключ, о котором ты спрашиваешь, это Shift (прописные буквы), тот, что со стрелкой, а не Caps Lock. Если удерживать ее нажатой во время запуска Windows, программы, размещенные в меню «Пуск», не загружаются. Всего наилучшего.
Фер лопес сказал
тому назад 15 лет
В том немногом, что я прочитал на этом сайте, я увидел много объективности и точности в информации, которую они предлагают.
Рад был познакомиться с ними «они уже в моих любимых»
Эдит сказал
тому назад 15 лет
Я не могу найти то что нужно
Мария сказал
тому назад 15 лет
Здравствуйте, я впервые захожу на вашу страничку и в восторге от всего, что там нахожу; нет сомнений, что вы уже попали на мои любимые страницы.
Пока …… .и удачи.
Луу сказал
тому назад 15 лет
Привет, привет, это помогло мне понять мою домашнюю работу, хорошо, что вы проводите такое исследование
Cuidate
до скорой встречи
Луу! сказал
тому назад 15 лет
Здравствуй! Это мне действительно очень помогло!
Введите, и это показалось очень хорошим объяснением и информацией. Привет всем. Лурдес
Луис сказал
тому назад 15 лет
Спасибо за вашу помощь! Хотелось бы узнать еще немного! до свидания !!
Уильям сказал
тому назад 14 лет
Как мне деинсталлировать программу, которая установлена, но не отображается в списке установленных программ?
Ханна альманза сказал
тому назад 14 лет
Ханна альманза сказал
тому назад 14 лет
хаоооооооооооооооооооооооооооооооооооооо
Radair сказал
тому назад 14 лет
Эти советы были мне очень полезны, чтобы немного ускорить память моего старого компьютера.
Radair сказал
тому назад 14 лет
скоро до свидания
ЛУИС сказал
тому назад 14 лет
уроки очень хорошие и простые …… и у меня есть вопрос, какой антивирус лучше и что они говорят мне о kasperky, и если у вас есть ключи к этому… пожалуйста, спасибо
ЛУИС сказал
тому назад 14 лет
дайте мне пожалуйста адрес где я могу скачать ключи от касперского
МОРОНЫ сказал
тому назад 13 лет
это первый раз, когда я вхожу и гузто куидатэ
Луис сказал
тому назад 13 лет
Спасибо за информацию о запуске резидентных программ. Очень своевременно.
Palito сказал
тому назад 13 лет
Спасибо Вам большое за информацию! Она мне очень помогала, и она мне была нужна для практической работы в школе. Еще раз спасибо
салу2!
Луис сказал
тому назад 13 лет
нет, эта информация мне очень помогла
курица jhon сказал
тому назад 13 лет
Спасибо, очень хорошо объяснил, отличный пост
Мигель сказал
тому назад 13 лет
Правда, и это не для того, чтобы дать коба, заключается в том, что необходимо больше таких ваших постов, которые объясняют вещи не очень опытным простым и понятным образом.
Я хотел бы спросить, какие резидентные программы должны быть необходимы при запуске компьютера, кроме, конечно, антивируса? Большое спасибо .
эмм, нет. сказал
тому назад 13 лет
Эта страница очень хороша . на ней есть все, что вы ищете . отлично!! удачи, увидимся! .
Габриель сказал
тому назад 11 лет
Здравствуйте, это то, что я всегда хотел сделать, но до сегодняшнего дня я понимаю, как это сделать, хотя моя операционная система не XP, а Vista, я посмотрю, смогу ли я это сделать. Спасибо.
АльбаМеркьюри358 сказал
тому назад 10 лет
Большое спасибо, я отчаянно пытался установить The Sims 2, и у меня не было памяти из-за резидентных программ !! Кстати, вы очень хорошо это объясняете
АльбаМеркьюри358 сказал
тому назад 10 лет
* Вы очень хорошо это объясняете, даже такой кот, как я, умеет без проблем узнавать! Еще раз спасибо!!
Источник: www.actualidadgadget.com