Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > 16-битный архиватор


Автор: razsagal 8.11.2007, 21:59
Здравия всем, у меня есть пара-тройка вопросов, в которых я хотел бы получить какую-нибудь(полезную) помощь:
1. Найти 16 битный архиватор с возможностью работы в команжной строке.
2. Используя данный архиватор (вызов осуществляется из своей программы), архивировать и разархивировать текстовые файлы. Архиватор должен находится в папке с программой.
3. Преподаватель сказал, что нужно делать через эмулятор. (но вот как его сделать).

Если кто знает как это осуществить буду рад выслушать. 

З.Ы. Архиватора у меня 16-битного нет. Java не знаю.

Автор: marcusmae 8.11.2007, 22:54
Цитата(razsagal @  8.11.2007,  21:59 Найти цитируемый пост)
Найти 16 битный архиватор с возможностью работы в команжной строке.


Ого  smile
Припоминаю, что в раннем детстве лет 15 назад имел дело со всякими архиваторами типа Zip, http://www.arjsoftware.com/arj.htm и другими. Дело было на 80286 - то есть, это, видимо, и была 16-битня машина, раз 32-битными стали только 80386. Чувствую себя живой историей smile На сайте Arj можно взять 16-битный архиватор. 16-битными операционными системами являются Dos и ранние Windows 3.11, 95. Так что в роли эмулятора мог бы выступить, например, http://dosbox.sourceforge.net/news.php?show_news=1. Он у них вроде как 32-битный, но если у Вас х64 Windows, то всё нормально - он тогда и сам будет эмулироваться через splwow64.exe. А вообще, интернет завален всяким жизнеспособным музейным ПО. То есть, может, Вы что-то по-лучше найдёте, если поищете.

Если не секрет, расскажите для чего это всё нужно (для конспирации??), а главное, что этот вопрос делает в разделе Общие вопросы по .NET и C#?

Автор: tdebugger 8.11.2007, 23:15
Извращенец этот преподаватель. Главное - не понятно, какая практическая польза от этих опытов...
1. Google в помощь, хоть с исходниками.
2. Класс Process.
3. NTVDM сам запустится...

Автор: razsagal 9.11.2007, 00:09
marcusmae, в этом разделе, потому что желательно (необходимо, обязательно, только и т.д.) написать на С sharp. На счет splwow64.exe, спасибо почитаю. Но если вы говорите, что через DOSBox работать будет на 32 битной системе, то как тогда в него отправить команды для архиватора.


tdebugger, преподаватель может и извращенец, но сделать надо, поэтому последую вашему совету и пойду исследовать 
Цитата
2. Класс Process.
3. NTVDM 
. Хотя по вашему первому пункту уже искал и, увы, не нашел.

Если я правильно понял marcusmae и tdebugger, то порядок такой:
- запуск своего приложения
- запуск из своего приложения эмулятора (Досбокс)
- передача в эмулятор команды на выполнение функции архиватора
- закрыте эмулятора

Тогда остается вопрос: Как это реализовать?

Автор: marcusmae 9.11.2007, 00:20
Не-не, не надо говорить, что Вы почитаете про splwow smile Я его упомянул, чтобы не смущало то, что досбокс - 32-битный, а система может и 64-битная. Это нормально, поедет.

tdebugger, видимо, считает, что можно обойтись без эмулятора. Очень любопытно, каким образом 16-битная программа будет писать на диск, который форматирован, скорее всего, в NTFS, а не в FAT16. А класс Process можно найти в пространстве имён System.Diagnostics...

Автор: razsagal 9.11.2007, 00:44
Хорошо, про splwow забыл. Итак, скачал ДосБокс, остается каким-то образом передать туда команду, но вот как? Или взять исходники и добавить их к своему проекту, вопрос остается, Как?

marcusmae, да система - NTFS.

Автор: tdebugger 9.11.2007, 00:57
Цитата(marcusmae @  9.11.2007,  00:20 Найти цитируемый пост)
tdebugger, видимо, считает, что можно обойтись без эмулятора.

Я этого не говорил, речь шла о том, что встроенная в винду виртуальная машина доса запускается в фоновом режиме без каких-либо дополнительных манипуляций, при этом дос-программа становится дочерним потоком(чтобы не быть голословным - запукаем CMD, а в ней COMMAND, открываем диспетчер задач, ищем ntvdm, убиваем, смотрим, что получилось...). 


Цитата(razsagal @  9.11.2007,  00:09 Найти цитируемый пост)
Хотя по вашему первому пункту уже искал и, увы, не нашел.

Первая же http://www.fdd5-25.net/archivators.php...

Автор: razsagal 9.11.2007, 01:12
Цитата

Первая же ссылка...

Не совсем так, это архиваторы, а вы говорили об исходниках, я именно исходники и не нашел в гугле.
З.Ы. архиватор я уже скачал и теперь пытаюсь закинеть в Досбокс комманду и тогда вопрос можно считать закрытым.

Добавлено через 5 минут и 53 секунды
Все, разобрался.
Создаем батничек, а внем пишем что хотим. потом открываем его в программе и, вуаля, все работает.
Пример содержания bat файла:  dosbox c:\users. монтируется дирректория c:\users.
Всем спасибо за помощь.

Автор: tdebugger 9.11.2007, 01:18
Цитата(razsagal @  9.11.2007,  00:44 Найти цитируемый пост)
остается каким-то образом передать туда команду, но вот как?

Хм...
Код

Process.Start("Dosbox.exe","Mario.exe"); 

Для упрощения программа и Mario.exe были скопированы в папку с ДосБоксом...

Автор: razsagal 9.11.2007, 01:36
tdebugger, ой вопросик маханький. Как, когда уже запущен досбокс с эмулируемым архиватором, запихнуть в этот архиватор аргументы?

Автор: tdebugger 9.11.2007, 01:46
Каюсь, для запуска программы с параметрами такой номер не пройдет, но разве это нас остановит?
 Создаем .bat файл, с подобным содержанием:
Код

rar.exe откуда.txt куда.rar

Конечный вариант программы:
Код

Process.Start("Dosbox.exe", "run.bat");


Итого одна строка кода... мда, подозрительно...

Автор: razsagal 9.11.2007, 01:59
Теперь точно работеат, все проверил. Ооочень благодарен за советы и примеры.

tdebugger
конечно.

Автор: tdebugger 9.11.2007, 02:05
Думаю, на наш форум ещё не раз придете...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)