Ejemplo n.º 1
0
        public VirtualBoxControl(string name, int width, int height)
        {
            // boot
            Console.WriteLine("# booting vm");
            VirtualBox.VirtualBoxClass vbox = new VirtualBox.VirtualBoxClass();
            vm      = vbox.FindMachine(name);
            session = new VirtualBox.SessionClass();
            VirtualBox.IProgress progress = vbox.OpenRemoteSession(session, vm.Id, "gui", null);
            progress.WaitForCompletion(-1);
            vm.ShowConsoleWindow();

            // Wait
            while (vm.State != VirtualBox.MachineState.MachineState_Running)
            {
                Thread.Sleep(1000);
            }

            // buffer
            int x = 0, y = 0;

            session.Console.Display.GetFramebuffer((uint)0, out buffer, out x, out y);

            // disable mouse integration
            Thread.Sleep(3000);
            Console.WriteLine("disabling mouse integration");
            DisableMouseIntegration(name, width, height);
        }
Ejemplo n.º 2
0
 static unsafe void Screenshot(VirtualBox.Session session)
 {
     var img = new byte[10_000_000];