Переписать в программы что это

Если нет инсталлятора: переносим приложения Windows без дистрибутива

Часто возникают ситуации, когда программа, установленная на одном компьютере, должна непременно оказаться на другой машине. Причем инсталлятора нет, простого копирования файлов не хватает, а человек, который ставил программу, куда-то пропал вместе с дистрибутивом.

В случае с редким или самописным софтом такая проблема случается сплошь и рядом. Практически каждая отдельно взятая контора может похвастаться, что какой-то местный кудесник-программист наколотил две-три тысячи строк кода, создавая очередную программу отчетности или ERP-систему. И все идет хорошо, пока этот компьютерный гуру не потеряется.

Стандартного инсталлятора нет, простое копирование папки с программой не помогает, а программу срочно нужно установить еще на одну машину. Кажется, пора начинать рвать на себе волосы? Но это не вариант для компьютерной нечисти! Что переносить?

Итак, самый главный вопрос: что переносить кроме папки с программой? Условно все необходимое можно разбить на три пункта:

Как очистить подсознание от негативных программ и установок.

  1. Файлы, к которым обращается программа.
  2. Ветки реестра, к которым обращается программа.
  3. Среда выполнения.

Если с пониманием первых двух пунктов проблем нет, то насчет третьего стоит сделать уточнение. Под средой выполнения здесь понимаются базы данных, драйвера устройств (псевдоустройств), именованные каналы (Named Pipes), мэйлслоты, COM/ActiveX компоненты и так далее. То есть, все, с чем работает программа (и что предоставлено сторонним софтом, а не операционной системой) через стандартные интерфейсы Windows — будь то сеть, IPC или тому подобное.

Среда является самым проблемным компонентом при переносе, и именно из-за среды приходится заморачиваться, чтобы ОС на обеих машинах совпадали.

Какие файлы и ветки реестра переносить?

Господа, давайте дружно поднимем бокалы с кофе, выпьем и почтим память безвременно ушедших утилит-мониторов NT Filemon и NT Regmon, которые отслеживали обращения любого процесса к файлам и ключам реестра соответственно. Злой гений Марка Руссиновича безжалостно аннигилировал их… а потом воссоздал из пепла в одном мощном и полезном инструменте. Встречайте, Process Monitor. Именно эта тулза будет основным оружием переноса и поможет нам разобраться, какие файлы использует программа и к каким ключам в реестре обращается. Для этого нам понадобятся две функции: Show Registry Activity и Show File System Activity.

Итак, открывай ProcMon, запускай переносимую софтину и дождись, пока она полностью загрузится. Затем ступай в ProcMon, отключи логирование, найди нужную программу (по имени исполняемого файла), жми правой кнопкой по записи в столбце Process Name и выбирай Include ‘SuperProg.exe’, где SuperProg.exe — это исходное приложение для переноса.

Ты увидишь, что Process Monitor отсеял все события, связанные с другими процессами. Можно было бы анализировать все в уме, отслеживая события, которые появляются в Process Monitor, но мы поступим иначе. Для удобства сохраним лог всех обращений в файл. Для этого нажимай «File -> Save…».

Python как сделать красивую программу под ПК за 10 минут?

В окне сохранения опцию «Events to save» выставляй в «Events displayed using current filter»(чекбокс «Also include profiling events» должен быть включен), а «Format» выбирай «Comma-Separated Values (CSV)». Сохрани куда-нибудь Logfile.csv и можешь заглянуть внутрь. Испугался?

Разобраться в этой помойке без помощи парсера сложно. Чтобы упростить задачу, я, когда сам занимался подобным переносом, набросал два Perl-скрипта (ищи их на диске). Положи эти скрипты в папку, где был сохранен Logfile.csv (или сразу сохраняй лог в папку к скриптам). Теперь запускай parse.pl. Этот скрипт отпарсит log-файл и создаст еще два лога: file.log будет содержать уникальные обращения к файлам и папкам, reg.log —уникальные обращения к веткам реестра.

Отделяем мух от котлет

  • Нужен программе;
  • Не нужен программе;
  • На дополнительное изучение.

Сортируя файлы, не забывай редактировать абсолютные (полные) пути до компонентов (DLL-библиотек, файлов настроек и прочего), если найдешь. Так мы получим REG-файлы, которые необходимо импортировать на целевой машине. Теперь по поводу файлов. В папке subdir скрипт воссоздал дерево обращений к файлам таким образом:

subdir
C (буква диска)
Program Files

…и так далее, до файлов включительно.

Непосредственный перенос

На новой машине скопируй папку с программой в C:Program Files (к примеру). Импортируй ключи реестра, которые ты определил в группу «Нужен программе». Из папки subdir восстанови структуру файлов и каталогов, отсутствующих в системе, на которую выполняется перенос. Надеюсь, ты понимаешь, что системные файлы и библиотеки заменять не надо.

Поэтому при переносе файлов нужно быть очень осторожным. Обязательно обращай внимание, где располагается перемещаемый файл — проведи аналогию с переменными окружения (изучи вывод команды «set» в консоли). Просмотри содержимое каждого файла, который, как тебе кажется, не является системным. Поправь значения опций, в которых задается полный путь до каких-либо компонентов, если найдешь файл(ы) настроек.

Если о защите системных библиотек Windows хоть как-то позаботится SFC (System File Checker), то в случае реестра такой помощи ждать не приходится. Поэтому при импортировании веток реестра с рабочей машины нужно быть вдвойне осторожным. Причем, как и в случае с файлами настроек, придется корректировать пути в строковых параметрах. Зарегистрируй COM-компоненты — их легко определить по наличию нескольких экспортируемых функций (DllRegisterServer, например).

Тем, кто забыл: регистрация производится командой regsvr32 component.dll, где component.dll является COM-сервером (кстати, COM-сервер может находиться и внутри exe-файла). Ценителям Total Commander будет приятно, что для их любимца есть listerплагин, который на раз определяет COM/ActiveX. Если программа использует какие-то специфические технологии, необходима дополнительная настройка. Скажем, в случае с использованием BDE(Borland Database Engine) необходимо внести соответствующие изменения у DataSource’ов, которые использует программа.

После этого остается только проинсталлировать и настроить среду, которая нужна нашему приложению (если нужна). Стандартные компоненты наподобие сервера БД ты установишь сам. Перенос среды должен быть легче всего, поскольку для серверов БД есть нормальные инсталляторы. Установить драйвер можно специальной утилитой, а зарегистрировать COM-сервер еще проще.

Читайте также:
Passist std что за программа

Перенос драйверов

А что делать, если программа работает с драйвером, единственный установщик которого потерян вместе с install.exe? Да и как вообще определить, что программа работает с драйвером? Какой-либо специальной тулзы я не нашел, поэтому воспользуемся OllyDbg. Чтобы работать через DeviceIoControl (через эту системную функцию драйверу устройств отправляются разные команды), сначала необходимо открыть созданное устройство через символическую ссылку вызовами CreateFileA/CreateFileW. От этого и будем плясать.

Загрузи программу в отладчик. Прямо на точке входа в окне дизассемблера жми , вводи CreateFileA и нажимай . Мы попали в начало функции открытия файла. На этом месте нажимай или в меню по правой кнопке «Breakpoint — Conditional log». В открывшемся окне в поле «Expression» вписывай DWORD PTR DS:[ESP+4] — по этому адресу лежит указатель на открываемый файл.

В комобоксе «Decode value of expression as» выбирай «Pointer to ASCII string» (для юникод-версии соответственно — «Pointer to UNICODE string»). Радио-кнопку выставляй в «Always». Остальные опции оставь по умолчанию. Нажимай и запускай программу.

Очень вероятно, что придется имитировать ее реальное использование, поскольку мы не знаем, в какой момент может произойти обращение к драйверу. Открывай в OllyDbg лог (комбинация клавиш ) и ищи подсвеченные строки, начинающиеся с COND. В кавычках будет указан файл, и если он начинается с . — считай, что это наш драйвер.

С помощью утилиты WinObj (кстати, написанной опять же Руссиновичем) выясни настоящее имя устройства. Оно должно выглядеть как DeviceDevName. Посредством той же WinObj убедись, что на другом компьютере этого устройства нет.

Настал черед поиска самого файла драйвера. Большинство драйверов располагаются в %SystemRoot%System32Drivers. Перейди в эту папку и ищи UNICODE-строку имени устройства (DeviceDevName). Если файла с такой строкой нет, то открывай «Сервис Менеджер».

Там ищи все драйвера, которые располагаются по нестандартному пути — искомая строка должна быть в одном из них. Этот же «Сервис Менеджер» поможет тебе перенести драйвер на другой компьютер (сделай скриншоты настроек, пропиши зависимости и так далее).

Утилита хорошая, но, увы, не совсем корректно инсталлирует драйвера. Поэтому, после того, как установишь свой драйвер, выполни следующие действия: найди в редакторе реестра ветку HKEY_LOCAL_MACHINESystemCurrentControlSetServicesвыбранноеимядрайвера и удали ключи «Group» и «ObjectName» в этом разделе. Если ключи не удалить, то менеджер при запуске драйвера будет выдавать ошибку, сообщая, что указан некорректный путь, хотя путь тут как бы и не причем.

Подводные камни

Когда ты считаешь, что все перенес — запускай программу. С вероятностью 70-75% она запустится. Что-то пошло не так? Вполне ожидаемо. Мы тут не яичницу жарим. В общем случае придется применить технологию багхантинга. Брать в зубы дизассемблер, отладчик и ловить исключения (или ExitProcess, если программа вываливается безмолвно). Сложно дать какие-то рекомендации, но все же попробуем.

Просмотри внимательно еще раз REG-файлы. Возможно, ты не заметил что-то, что позволяло программе жить и процветать на прежней машине. Попробуй определить несистемные библиотеки из subdir и скопировать их с заменой. Если сообщение, с которым вываливается программа, более информативно, чем «Access violation», попробуй поискать в интернете текст ошибки (это может быть связано со средой исполнения). Но, в любом случае, твоим главным оружием здесь будет незаменимая связка: дизассемблер + отладчик + мозг и прямые руки.

Если есть возможность, то обязательно проводи все эксперименты только на виртуальной машине — так ты будешь уверен, что система не загажена и не повредишь основную операционку. Прежде чем мужественно рваться в бой, я тебе предлагаю попробовать свои силы на специально разработанной программе. Собственно, полезность от программы нулевая, но перенести ее просто так не получится.

Bdetest.exe работает с BDE через алиас «testBDE», за каким-то чертом обращается к драйверу и просто не может функционировать без определенной информации в реестре и файловой системе. На диске ты сможешь найти все необходимое: результат работы скриптов, скрин BDE-алиаса, драйвер, базу и саму программу.

Заключение

Перенос программ без инсталлятора — нетривиальная задача. Необходимо обладать знаниями во многих сферах IT — администрировании, программировании, дизассемблировании, отладке, базах данных. Но всегда помни: непереносимых программ не бывает! Ведь, как гласит манифест хакера, если компьютер совершает ошибку, то это ты напортачил.

Источник: xakep.ru

Статья Как изменить код программы без исходника

Бывают ситуации, когда под рукой нет исходника, а Вам срочно требуется внести изменения в коде, написанной ранее Вами программы. Например, дано приложение «TextEdit.exe» — текстовый редактор, написанный на языке c#, который имеет простой пользовательский интерфейс, состоящий из двух кнопок и текстового поля.

28381

При нажатии на кнопку “Чтение” из файла 1.txt считываются и выводятся все строки в окно элемента управления textBox, а при нажатии на кнопку “Запись” данные из текстового поля сохраняются в файле 2.txt

Для хранения путей в программе используются две текстовых переменных: filePathIn и filePathOut

28382

Прошёл год, как программа была написана и отдана заказчику, но вдруг ему потребовалось изменить имя папки, в которой должны храниться оба файла, c 123 на Text. Задача простая, но прошло уже много времени, и исходник был потерян, что делать в такой ситуации?

Для начала вспомним, как образуется .NET сборка

28383

Полученный в результате компиляции файл (сборка) содержит внутри себя метаданные, манифест, код на языке IL (MSIL).

Метаданные описывают типы данных и их члены

Манифест описывают саму сборку

MSIL код, полученный в результате компиляции файла исходного кода

То есть перед вами тот же исходник, только в другом формате. И для того, чтобы поработать с ним, Вам понадобиться специальный инструмент, который позволяет просматривать и редактировать данные внутри сборки.

Дизассемблер ILDASM

Данный инструмент входит состав пакета .Net Framework SDK, который является бесплатным и устанавливается вместе с Visual Studio (включая Express версию). С помощью него вы можете, как просматривать внутреннее содержимое сборки, так и изменять его.

Для удобства работы создадим отдельную папку, например: ”c:newasm” и поместим в неё файл TextEdit.exe

Читайте также:
Программа eraser что это

28384

Затем в меню “Пуск” открываем папку: «Visual Studio Tools»

28385

Запускаем командную строку разработчика

28386

Откроется консоль, вводим первую команду: ildasm. Для выполнения команды нажмите клавишу Enter.

28387

Появиться главное окно программы.

28388

Переместим файл сборку TextEdit.exe в окно дизассемблера ILASM, в результате отобразиться её внутреннее содержимое.

28389

Убедимся, что в ней содержатся нужные нам данные (пути к файлам).

28390

Два поля на месте, теперь взглянем на метаданные.

28391

Для доступа к метаданным Вы так же можно использовать сочетание горячих клавиш: Ctrl+M. Затем с помощью кнопки Find, найдём имя одного из файлов.

28393

28394

28395

Как видно присутствуют оба. Пути найдены, и теперь их нужно изменить, но все данные, в текущий момент, доступны только для просмотра, и изменить их в самой дизассемблере нельзя, поэтому воспользуемся второй возможностью данной программы и выгрузим содержимое сборки в файл.

Выгрузка данных

Выберите пункт меню File -> Dump

28396

Появится меню. В данном примере, все пункты меню оставим без изменений и просто нажмём кнопку OK.

28397

Появится диалоговое окно

28398

Выберем ранее созданную папку “newasm”, затем укажем имя и тип файла и нажмём на кнопку “Сохранить”

28399

В результате в папке “newasm” должно появиться несколько новых файлов

28400

Закрываем окно ildasm, а так же удаляем файл Textedit.exe, больше он нам не понадобиться. Теперь нас интересует полученный файл texted.il и для начала откроем его любым текстовым редактором, например блокнотом.

28401

Снова воспользуемся поиском (Ctrl+F)

28402

Так же видим найденные строки, которые содержат пути к файлам.

28403

Изменим текущее имя папки 123 на новое название Text, для обоих файлов

28404

Сохраняем внесённые изменения и закрываем блокнот.

Ассемблер ILASM

Изменения внесены и теперь нужно преобразовать файл txted.il обратно в исполняемый файл (.exe) Для этого нам понабиться второй инструмент ILASM, ассемблер, который так же входит в состав пакета SDK и не требует отдельной установки.

файл (.il) -> компилятор ilasm = сборка (.exe и .dll)

Возвращаемся в консоль

28408

Вводим вторую команду:

ilasm /exe c:newasmtxted.il /output=c:newasmtextEdit.exe

Первый параметр: /exe указывает компилятору, что на выходе мы хотим получить файл с расширением .exe. Затем указываем файл, который содержит MSIL-код. С помощью второго параметра /output указываем имя и расширение нового файла.

28406

Если компиляции прошла успешно, то в окне консоли вы должны увидеть сообщение, которое выделено на картинке, а внутри папке “newasm” должен появиться новый файл TextEdit.exe, который теперь уже содержит новые пути к файлам.

28407

Вот таким не сложным способом можно выйти из данной ситуации, при этом не имея исходника под рукой.

  • Cоздание файла dll
  • Программное выравнивание текста по ширине
  • Как удалить параметр реестра Windows

Вложения

1554325668160.png
16,8 КБ · Просмотры: 442
1554325822178.png
8,4 КБ · Просмотры: 515

The Codeby

ООО Кодебай

The Codeby

ООО Кодебай

30.12.2015 4 624 6 661
Комментарии, перенесенные из блога

Сергей
Четверг на 02:09
Здравствуйте, когда пытаюсь открыть файл exe в редакторе LD DASM у меня появляется ошибка отсутствует допустимый заголовок CLR поэтому дизассемблирование невозможно что это? и можно как нибудь исправить?

admin
Пятница на 10:09
Программа (файл) на каком языке написана?

Иван
Суббота на 10:09
Добрый день. Такая же ситуация. Пытаюсь открыть файл exe в редакторе LD DASM у меня появляется ошибка «отсутствует допустимый заголовок CLR поэтому дизассемблирование невозможно». Файл написан на Delphi.

admin
Воскресенье на 09:09
Привет.
Эта утилита предназначена только для просмотра кода написанного на языке IL (MSIL) это промежуточный язык, в который компилируется код .NET языков. Полученный в результате компиляции файл (сборка) содержит CLR заголовок. Затем, во время запуска приложения, выполняется вторая компиляция, которая превращает полученный код IL в машинный.

В дельфи сборка не содержит CLR заголовок и код, если не ошибаюсь, сразу преобразуется в машинный.

Иван
Понедельник на 12:09
А как-то нормально можно посмотреть код, если есть уже окончательный exe и несколько dll проекта?

admin
Понедельник на 09:09 ПП
Что значит нормально посмотреть код ?

Иван
Среда на 03:09 ПП
Ну чтобы взять код себе в другой проект

admin
Четверг на 11:09
Есть вроде какие-то, но не помню названия, потому что не использую их.

Анатолий
Четверг на 12:02 ПП
Можете, помочь как я хочу переписать лаунчер для игры, что бы изменить проверку файлов но не могу никак открыть его. Пробывал через ресторатор 2007 но оно не может прочитать пату файлов точнее отобразить язык.

Источник: codeby.net

Дорабатывать или переписывать

Основная мысль этой статьи: переписывайте с нуля работающий и внедренный проект только под дулом пистолета.

Далее, представим, что вы работаете один, и ни с кем не делитесь печеньками.

Ситуэйшн №1: маленький проект

Представьте, что вы студент. Пишете ваш первый студенческий проект – больше, чем лабораторная, но меньше, чем реальный коммерческий проект. Размер примерно 1000 строк кода.
Вы написали его и захотели улучшить. Но вдруг обнаружили, что в архитектуре у вас ошибка, и исправление проблемно. Переписали. Потом еще раз. Станете ли вы переписывать его в четвертый раз?

Возможно.
Небольшие проекты можно переписывать бесконечно, пока они не будут доведены до совершенства. Но вот проблема: где эта грань между совершенством и сумасшествием?
Я думаю, что хоть немного средний проект нельзя довести до совершенства, ведь сегодня вам кажется, что совершенны одни методы, а завтра – другие. А время будет потеряно. В конце концов вы можете сдать полурабочий проект, который застрял на стадии третьего переписывания (вы ведь студент, и в первом проекте решили не использовать VCS, ведь это мейнстрим).

Ситуэйшн №2: свободное плавание

Теперь вы уже продвинутый студент, и захотели пофрилансить. А может просто создать свой проект, свою игру, свой аукцион с блекджеком и… ну вы поняли.
Есть отличная идея, вы ее описали, запрограммировали, сделали, оптимизировали. Дали протестить тестерам. Казалось бы, ничего не предвещало беды.
Но вот вы обнаруживаете, что встраивать новые возможности вам все сложнее, а где-то в глубине души вас грызет червь переписывания.
Подумайте, цените ли вы свое время и результаты своей работы, чтобы переписать ваш чудесный проект размером 5000 строк кода. Если не цените, то пожалуйста, начинайте с чистого листа. Помните, что в этом случае, ваш проект врядли будет закончен.

Читайте также:
Сон что за программа

Ситуэйшн №3: чужой код

Это самый опасный путь, скользкая, мерзкая и пакостная дорожка. Итак, представьте, что свой студенческий проект вы кое как сдали, свой личный проект забросили (извините, конечно же отложили, чтобы вернуться, когда будет время!).
И вот, к вам попадает чужой код в 10-15 тысяч строк. Говнокод. По-вашим представлениям. Внедрение обновлений равносильно выстрелу себе в ногу. Переписываем?
Не торопитесь. Сначала оцените свои возможности. Сколько времени вам потребуется, чтобы это переписать? Как это будет оплачено? Заложено ли нужное время?
Переписывание чужого кода чревато несколькими проблемами.
Первая проблема: код, скорее всего, уже внедрен и работает. В этом случае, вам не только нужно будет заново разработать весь его функционал, но и учесть все костыли, на которые наткнулся бывший говнокодер.
Вторая проблема: вы можете не потянуть проект, начать прокрастинировать, и в конечном итоге, окончательно завалите проект.
Третья проблема: почему вы так уверены, что вы сами не напишете такой же говнокод?

Ситуэйшн №4: устаревший проект или специфичные инструменты

Возможно, это единственное частичное оправдание полному переписыванию проекта. Известно, что сейчас многие работающие программы стары, как дерьмо мамонта, но люди продолжают ими пользоваться. Потому что они работают, отлажены, и ошибки в них возникают известно где.

Такой проект действительно можно переписать с нуля, при учете жестко и четко сформулированных требований, моря тестов и многих часов отладки. Однако помните, что даже в этом случае нет гарантий, что проект заработает сразу, как нужно. Возможно поэтому до сих пор существуют программы, старые как… ну вы поняли.

Итак, когда не надо переписывать проект:
1) Когда вы дорожите своим временем, и временем других людей, которое они вложили в проект;
2) Когда вы не уверены, что сможете точно повторить функционал проекта;
3) Когда вы не до конца разобрались с проектом, не знаете его особенностей;
4) Когда вы говнокодер;
5) Когда никто не угрожает вашему любимому хомячку.
6) Размер проекта превышает 10000 кода, без учета инструментов и фреймворков. Даже этого будет много чтобы оценить, стоит ли овчинка выделки.

Когда, возможно, стоит переписать проект:
1) Когда внедрение доработок занимает чрезвычайно много времени и/или очень много средств из-за чрезмерной сложности системы;
2) Когда вы изучили проект досконально и знаете каждую его деталь;
3) Когда вам доставляет удовольствие в пятидесятый раз переписывать свой любимый калькулятор;
4) Когда заказчик пришел к вам домой и настойчиво утверждает, что ваш или чей-то чужой говнокод очень плохо работает, и он хочет, чтобы вы сделали все замечательно с первого раза;
5) Когда вам предлагают невообразимую кучу денег за небольшой проект.

И еще помните, что серьезные люди считают, что переписывание проектов с нуля – это признак непрофессионализма.
Удачи.

  • создание проекта
  • ведение проекта
  • переписывание

Источник: habr.com

Как перенести программы с компьютера на компьютер

Скопировать программу с компьютера на компьютер необходимо в том случае, если на другом компьютере возможно обеспечение более высокого быстродействия программы либо возникла необходимость в использовании программы на другом компьютере. Как бы то ни было, в случае если поставлена задача перенести либо все программы с компьютера на компьютер либо личные настройки, возможны несколько вариантов, с помощью которых это можно сделать, если программа при установке не делает записей в реестре.

Как перенести программы с компьютера на компьютер

Статьи по теме:

  • Как перенести программы с компьютера на компьютер
  • Как скопировать установленную программу
  • Как переместить программу

Вам понадобится

  • — Компьютер №1
  • — Интернет
  • — CD
  • — Съёмный диск
  • — Компьютер №2

Инструкция

Дислоцируйте местонахождение папки, в которую была установлена папка программы. Для этого нажмите правой кнопкой мышки на ярлык программы и нажмите «свойства».

В открывшемся окошке найдите строку «размещение». В ней указан путь до файла, запускающего программу.

Откройте эту папку. Выделите все ее содержимое и скопируйте в папку, которую создадите на рабочем столе.

Заархивируйте папку с программой. Вставьте съемный диск и скопируйте на него архив.
Извлеките съемный диск и вставьте его в другой компьютер. Разархивируйте программу на рабочий стол.

В случае, если съемного диска нет в наличии, вы можете записать данный архив на CD, а после этого скопировать на другой компьютер, после чего разархивировать и использовать программу.

Если оба вышеописанных способа недоступны, используйте Интернет. Загрузите файл на файлообменник, при необходимости разбив архив на несколько частей. После этого дождитесь окончания загрузки файла и скачайте архив с другого компьютера. Разархивируйте папку и и запустите программу.

Видео по теме
Обратите внимание

В случае, если при установке программа делает записи в реестре, скопировать ее не удастся, возможна будет только полная установка с инсталляционного файла.

  • как перенести программу

Совет полезен?
Статьи по теме:

  • Как перебросить файл с компьютера на компьютер
  • Как перенести установленную программу
  • Как перенести игру с одного компьютера на другой

Добавить комментарий к статье
Похожие советы

  • Как выгрузить программу с компьютера в 2017 году
  • Как сохранить установленную программу
  • Как скопировать программу
  • Как копировать игры на компьютер
  • Как записывать программы на флешку
  • Как передать файлы с ноутбука на ноутбук
  • Как переносить файлы с компьютера на компьютер
  • Как передавать файлы с компьютера на ноутбук
  • Как передавать игры
  • Как передать данные с одного компьютера на другой
  • Как передать информацию с одного компьютера на другой
  • Как перенести файлы из компьютера на ноутбук
  • Как перенести Консультант
  • Как скопировать лицензионную игру
  • Как передать файл с компьютера на компьютер через wifi
  • Как переместить программу в другую папку
  • Как скопировать файлы xp
  • Как перекинуть информацию с одного компьютера на другой
  • Как копировать файлы с компьютера
  • Как установить программу в компьютер
  • Как установить с диска программу на компьютер
  • Как загрузить программу с флешки
  • Как устанавливать программы на компьютере
  • Как установить удаленно программу

Источник: www.kakprosto.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru