[Spice-devel] How to send a custom resolution message to windows/linux guest vdagent

Thiago Nascimento Araujo taraujo at artit.com.br
Thu Mar 2 16:00:33 UTC 2017


Hi,

First of all, thank you all for the quick answers.

The cut off message was my fault, sorry about that.

I am trying to understand this:

Lets say I am connected to a win/lnx guest though remote-viewer and my remote-viewer is a window with the dimensions 1440x900, so:

When I resize the window from 1440x900 to 1024x768 (manually resize the remote-viewer window, not the screen resolution inside the guest), what is the process involved from the remote-viewer to communicate to the guest (with spice-guest-tools installed) to peform the guest resize ?

Is something like:
a) remote-viewer inform his new resolution sending a message ?
b) the agents capture this message ?
c) the agents set the new resolution inside the client ?

I want to understand how "arbitrary resolution" are possible.
I can't create an arbitrary resolution using the win-api, for example, all I can do is search for the available modes starting the devnode using enumdisplay from win-api. But using remote-viewer I can force a 672x350 resolution for example.

So, why I need this?

I am trying to create a way to grab a window resolution (the windows explorer at 700x500 window resolution, for example) and set the win guest screen resolution to match the same resolution of the explorer. Wrapping the remote-viewer window around the explorer and adapt when is needed.

I am implementing a VDi solution that works like a "terminal service app".

An user wants to use a notepad, for example, then I created a program that resides inside the win guest, that receives the desired app and hides everything else (desktop, taskbar, start menu, blocks win-menu and other keys bindings) and only present the user with notepad. (There's a similar solution for lnx as well in progress)

So far, everything is ok for win/lnx (most of it) guests - the only thing I can't do, is set arbitrary resolutions, specially on windows guests.

So I thought: I have to find a way to grab the notepad resolution (that part is done) and send it to the spice-channel and create the "wrapping effect around notepad".

Thank you all in advance.

PS: sorry about my english - still learning.


----- Mensagem original -----
De: "Jonathon Jongsma" <jjongsma at redhat.com>
Para: "Thiago Nascimento Araujo" <taraujo at artit.com.br>, spice-devel at lists.freedesktop.org
Enviadas: Quinta-feira, 2 de março de 2017 12:05:46
Assunto: Re: [Spice-devel] How to send a custom resolution message to windows/linux guest vdagent

On Thu, 2017-03-02 at 03:58 -0300, Thiago Nascimento Araujo wrote:
> Hello,
> 
> Is there a way to send a spice message, connect to pipe, or any other
> method to contact vdservice/vdagent to create/simulate a resize to an
> arbitrary resolution or full screen effect caused by remote-viewer?
> 
> Any other ways I can connect to the named pipes (windows guests or
> linux guests) and watch/debug/learn. I cant find or connect to the
> windows guest named pipe and I got connection refused trying to socat
> to a port in linux guest.
> 
> I really need some guidance to fully understand how arbitrary
> resolutions are created using win/lnx/spice api.
> 
> Thanks in advance.
> 
> Or a way to 
> ___________________

Hi Thiago,

Seems your message got cut off or something.

My main question is: what is your end goal exactly? You say you're
trying to simulate a resize and therefore you want to connect to a
named pipe to do that. But there are probably better ways to do that,
depending on your final goal. Also note that in recent linux guests,
the vdagent executable is not really involved in the resolution
changing process at all. Once we know what you're actually trying to do
it will probably be easier to help you.

Cheers,
Jonathon


More information about the Spice-devel mailing list