Делаю на C# для Windows эмулятор ОС нужен совет!
Эй мне нужен совет по этому вопросу
Я создаю эмулятор windows, и мне нужно знать, с чего мне нужно начать
То, что я построил до сих пор, я не хочу выдавать свой код прямо сейчас, поэтому любой совет без примеров кода был бы лучше для меня, спасибо...
Я построил простой лаунчер на c#, который может запускать любой внешний exe-файл внутри родительской winform в visual studio, поэтому я иду по правильному пути, но мне нужно знать, как загрузить ОС windows на winform, которую я построил внутри родительской winform...
Я думаю, что другие эмуляторы используют что-то вроде freedos для установки и эмуляции ОС внутри родительской winform, но они также эмулируют аппаратное обеспечение, поэтому я блуждаю, если есть более простой способ сделать это без большого количества кодирования. Я просто хочу сэкономить много времени на этом, не тратя много времени на кодирование строк и строк кода я знаю, что мне нужно кодировать некоторые вещи, но я не хочу тратить много времени, поэтому любой совет будет очень признателен.....
Что я уже пробовал:
Я построил лаунчер, который может запускать любой внешний exe-файл внутри родительской winform в visual studio 2017
BillWoodruff
"Мне нужно знать, как загрузить ОС windows на winform, которую я построил внутри родительской winform"
Вы смотрели на Докера ?
John Nay
Да, мне не нравится этот вариант...
Dave Kreskowiak
Итак, как же вы написали этот "лаунчер" и заставили исполняемое окно появиться в вашей собственной форме?
Для меня это звучит так, как будто вы просто написали код вокруг экземпляра процесса для запуска целевого исполняемого файла и просто повторно создали главное окно приложения с вызовом функции Win32 setparent.
John Nay
Я использовал эту демонстрацию в качестве базовой точки вы можете получить ее здесь https://www.codeproject.com/Articles/9123/Hosting-EXE-Applications-in-a-WinForm-project
Затем я выбрал menustrip и добавил открытую функцию в menustrip, а затем написал этот вид кода c# для вызова exe-файла для запуска внутри родительской формы windows..
Процесс Р = процесс.Начало("C:\\Program файлы (x86)\\DOSBox-0.74\\DOSBox.exe");
Нить.Сон(500);
п. WaitForInputIdle();
Setparent осуществляет(п. MainWindowHandle, это.Ручка);
И он вызывает exe-файл и загружает его в мой winform launcher, который имеет инструмент application_control из набора инструментов, который поставляется с загрузкой, которую я отправил вам выше по этой ссылке, надеюсь, это ответит на ваш вопрос...
Кроме того, я убедился, что у меня есть isMidiContainer установлен в true
Richard MacCutchan
Использование Процесса.Start-это миллион миль от того, чтобы быть эмулятором ОС Windows. Вам нужно понять, как выделить место в памяти для нового процесса, как загрузить его в память вместе с соответствующими библиотеками и как установить связь с его основной отправной точкой. И это лишь малая часть конечного продукта.
Dave Kreskowiak
Да, эта статья нигде не находится на пути к "эмулятору Windows". Нет никакого способа расширить существующий проект для поддержки "загрузки Windows".
Серьезно, нет никакого способа написать среду виртуализации для выполнения "эмуляции" Windows, не написав "много кода".
То, что вы сделали, больше похоже на предоставление очень простого рабочего стола для отображения окон приложений, и ничего больше.
John Nay
Я загрузил видео для доказательства, если вам это нужно, лол!
Richard MacCutchan
- Куда же?
F-ES Sitecore
Если ты;
а) хотите написать эмулятор ОС, но не знаете, с чего начать
б) подумайте, что изменение родительского файла EXE на ваш winform-это начало
в) Хотите сделать это, не написав много кода
Г) даже не могу понять, что вам нужно использовать кнопку "ответить" при ответе на комментарии
..Я бы сказал со всей честностью, что эта задача в настоящее время вам не по силам. Это огромная вещь и потребует *много* кода, и, вероятно, даже невозможно использовать c#
John Nay
Well how about that I make one and let you eat your words if you think I cant do it that's funny there's always more ways of doing things kinda like the way I showed you when you thought that it would be difficult to make a exe run inside of a parent program when you even wanted to know how I pulled it off a good programmer knows not one way but many ways to doing a hard task That's what makes a great programmer and all honesty most programmer's lack this kind of skill and make comments like this to people I'm not hating on you but I do make a point for sure. I will post the download on this site when I'm finished to let you gaze at it in amazement for sure lol... mabe it might make you think a little about other ways of doing things because what I am good at is doing it the easier way That's what makes me stand out from the others for sure.
Dave Kreskowiak
Хахахахаха!!! Позвольте мне подсказать вам кое-что о вашем маленьком проекте, где вы хотите "загрузить Windows" в окне. То, что вы описываете, - это переписывание "VMware Workstation" с нуля. Если вы сможете это сделать, вы не будете писать статью здесь на CP, потому что, серьезно, их будут сотни! Вы будете слишком заняты, зарабатывая много денег, крадя кусок пирога VMware.
Удачи вам!