Несмотря на то, что мое длинное название портит довольно много моего вопроса, я постараюсь быть более конкретным здесь.Программная связь с несколькими несфокусированными экземплярами VMWare с C#
У меня есть 5 экземпляров VMWare, которые все имеют свои собственные задачи. Они размещаются на одном компьютере. Но мне нужна одна программа (которую я на самом деле пишу, duh), чтобы получать информацию и отправлять информацию, такую как нажатия клавиш и щелчки мышью. Но из того, что я до сих пор краснел, связь между программами довольно трудно достичь, и я не нашел способа отправить нажатия клавиш в несфокусированные или уменьшенные окна VMWare. Кроме того, мне нужно будет отправлять разные и конкретные нажатия клавиш для каждого из 5 экземпляров VMWare.
Моя программа начнет каждые 5 заданий в каждом из 5 окон. Заказ не имеет значения, если каждый экземпляр имеет свой собственный список задач. Мне нужен способ отслеживать индивидуальность каждого окна, поэтому я не посылаю, скажем, нажатия клавиш окна 4 в окно 5. Мне также нужно будет периодически проверять, будут ли выполняться все экземпляры VMWare. В дополнение к моим экземплярам VMWare все работает в среде win7.
Теперь, когда объясняется вся ситуация, я подведу итог вопросу, который я сейчас представляю. Есть ли способ, которым моя программа на C# отслеживает идентификаторы экземпляров VMWare и посылает нажатия клавиш (+ mouseclicks) и получает по крайней мере скриншоты того, что отображается на каждом из них, даже если они уменьшены или не сфокусированы?
Большое спасибо.
Есть ли способ, чтобы получить
«На самом деле, водители VMWare„захват“аппаратные и украсть эти события непосредственно из аппаратных средств, так что нет никакого реального способа для вашего приложения, чтобы имитировать человек, взаимодействующий с окном виртуальной машины.» Я понимаю. Ваше сообщение было действительно поучительным.Поэтому каждый экземпляр VMWare (который я не должен вызывать), по-моему, должен по крайней мере обмениваться одной и той же сетью и иметь возможность общаться друг с другом через эту сеть, не так ли? Таким образом, одним из способов достижения моей цели было бы иметь мое основное приложение для отправки информации через сеть. Или я не понимаю? –
(извините за двойную почту) Я понимаю, насколько сложно расстраивать ответы на тех, кто не дает достаточно информации. Помимо моих трудностей выразить себя и объяснить ситуацию (которая является основной причиной моей неспецифичности), я хотел получить довольно общий ответ, потому что знаю, что мне, возможно, придется снова справиться с той же проблемой в другой ситуации. Большое спасибо, действительно, за ваш ответ. И тот, который ниже тебя тоже, и я тоже загляну. По крайней мере, для обучения! –
@RobertArctor - Нет, это нормально назвать их экземплярами, но это экземпляры виртуальных машин, работающих на низком уровне аппаратного обеспечения. Да, в зависимости от того, как вы настроили виртуальные сетевые коммутаторы, все они могут совместно использовать общую сеть (включая совместное использование ее с хостом или даже с Интернетом). Да, вы отправляете и получаете информацию через сеть для отдельных «агентов», которые вы запускаете в каждом экземпляре виртуальной машины, эти «агенты» имеют полный доступ к гостевой ОС и приложениям (в зависимости от разрешений, которыми вы их управляете), чтобы делать то, что вы необходимость. –